PICNIC문제 질문드립니다 ybg7955 #include <iostream> using namespace std; int n; bool areFriends[10][10]; int countPairings(bool taken[10]) { int firstFree = -1; for (int i = 0; i < n; i++) { if (!taken[i]) { firstFree = i; break; } } if (firstFree == -1) return 1; int ret = 0; for (int pairWith = firstFree + 1; pairWith < n; pairWith++) { if (!taken[pairWith] && areFriends[firstFree][pairWith]) { taken[firstFree] = taken[pairWith] = true; ret += countPairings(taken); taken[firstFree] = taken[pairWith] = false; } } return ret; } int main() { bool friends[10]; int testCase; int m; cin >> testCase; if (testCase > 50 && testCase <= 0) return 0; for (int C = 0; C < testCase; C++) { cin >> n; if (n < 2 && n>10) return 0; cin >> m; if (m < 0 && m>(n*(n - 1)/2)) return 0; int pairs[2]; for (int pair = 0; pair < m; pair++) { cin >> pairs[0]; cin >> pairs[1]; areFriends[pairs[0]][pairs[1]] = true; areFriends[pairs[1]][pairs[0]] = true; } countPairings(friends); cout << "result : " <<countPairings(friends) << endl; for (int i = 0; i < 10; i++) { friends[i] = false; for (int j = 0; j < 10;j++) { areFriends[i][j] = false; } } } return 0; } 이게 책에도 있는 문제여서 책그대로 하고 제가 main만 짰는데 예제 케이스는 똑같이 나오거든요. 그리고 제약조건들 한것같고.. 근데 왜 오답이 나오는지 궁금합니다. 7년 전
1개의 댓글이 있습니다. Corea 아래 문제점이 있습니다. friends 변수를 처음에 초기화를 하지 않았습니다. 초기화 해주세요. countPairings 함수를 두 번 부르는데, 두 번 부르면 두 번째 결과는 다르지 않나요? 출력 앞에 "result : "는 제거해주세요. 7년 전 link 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.
ybg7955
이게 책에도 있는 문제여서 책그대로 하고 제가 main만 짰는데 예제 케이스는 똑같이 나오거든요. 그리고 제약조건들 한것같고.. 근데 왜
오답이 나오는지 궁금합니다.
7년 전