picnic 코드 좀 봐주세요

  • nicesdr
    nicesdr
    #include <iostream>
    #include <vector>
    using namespace std;
    
    bool couple[10][10] = { false };
    int n;
    
    int check_out(bool student[]) {
        int first = -1;
    
        for (int i = 0; i < n; i++)
        {
            if (student[i] == false) {
                first = i;
                break;
            }
        }
        if (first == -1)
            return 1;
    
        int ret = 0;
        for (int next = first + 1; next < n; next++) {
            if (student[next] == false && couple[first][next] == true)
            {
                student[first] = student[next] = true;
                ret += check_out(student);
                student[first] = student[next] = false;
            }
        }
        return ret;
    }
    
    int main() {
        int C;
        cin >> C;
        vector<int> answer;
        bool student[10] = { false };
        for (int i = 0; i < C; i++) {
            int m;
            cin >> n >> m;
            for (int j = 0; j < m; j++) {
                int a, b;
                cin >> a >> b;
                couple[a][b] = couple[b][a] = true;
            }
            answer.push_back(check_out(student));
        }
        for (int i = 0; i < answer.size(); i++)
            cout << answer[i] << "\n";
    }
    

    이게 왜 실행이 안되는건지 이해가 안되네요 ㅠㅠ


    8년 전
1개의 댓글이 있습니다.
  • hyejinJ
    hyejinJ

    다 본건 아니지만 일단 각 케이스마다 couple이 초기화 되어야 하는데 안되고 있는것 같네요~


    8년 전 link
  • 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.