알고스팟에 처음 제출해봤는데 nonzero return code뜨는데 무슨 의미인지 모르겠습니다. ㅠㅠ

  • ghkd0205
    ghkd0205
    #include <cstdio>
    
    int main(){
        printf("Hello world!\n");
    }
    

    문단을 구분하기 위해 앞과 뒤에 빈 줄 하나씩을 반드시 추가하셔야 합니다.


    마지막으로 자주_하는_실수_모음 페이지를 읽으시면서 혹시 해당되는 사항이 있진 않은지 생각해 보세요.

    위 내용이 지켜지지 않은 질문은 답변이 오래 걸릴 수 있습니다.

    아래 '편집하기' 버튼을 눌러 글을 쓰실 수 있습니다.

    #include <iostream>
    #include <fstream>
    using namespace std;
    
    int testCase; //테스트 케이스 수
    int sCount; // 학생의 수
    int fCount; // 친구쌍의 수
    bool areFriends[10][10];
    // taken[i] = i번째 학생이 짝을 이미 찾았으면 true, 아니면 false
    int countPairings(bool taken[10]){
        //남은 학생들 중 가장 번호가 빠른 학생을 찾는다.
        int firstFree = -1;
        for(int i = 0; i < sCount; ++i) {
            if(!taken[i]) {
                firstFree = i;
                break;
            }
        }
        //기저 사례 : 모든 학생이 짝을 찾았으면 한 가지 방법을 찾았으니 종료한다.
        if(firstFree == -1) return 1;
        int ret = 0;
        // 이 학생과 짝지을 학생을 결정한다.
        for(int pairWith = firstFree+1; pairWith < sCount; ++pairWith){
            if(!taken[pairWith] && areFriends[firstFree][pairWith]){
                taken[firstFree] = taken[pairWith] = true;
                ret += countPairings(taken);
                taken[firstFree] = taken[pairWith] = false;
            }
        }
        return ret;
    }
    
    int main(void)
    {
    
        int x, y;
        int result; //결과
        bool taken[10];
        ifstream fin;
        ofstream fout;
    
        fin.open("a.in.txt");
        if(fin.is_open() == false){
            cout<<"파일 오픈 실패 !!"<<endl;
            return -1;
        }
        fout.open("a.out.txt");
        fin>>testCase;
    
        while(testCase >0){
            fin>>sCount;
            fin>>fCount;
            for(int i=0; i<fCount; ++i)
            {
                fin>>x;
                fin>>y;
                areFriends[x][y] = true;
                areFriends[y][x] = true;
            }
            result = countPairings(taken);
            fout<<result<<endl;
            testCase--;
    
            for(int i=0; i<10; ++i)
                for(int j=0; j<10; j++)
                    areFriends[i][j] = false;
    
            for(int i=0; i<10; ++i)
                taken[i] = false;
        }
    
        return 0;
    }
    

    9년 전
4개의 댓글이 있습니다.
  • 5tarbuck5
    5tarbuck5

    파일 입출력 없이 그냥 cin 하시면 돼요~


    9년 전 link
  • ghkd0205
    ghkd0205

    답변 감사합니다. 그런데 정확히 이해가 안되서 그러는데
    입력 값들을 파일로 받아들어야 하는거 아닌가요?
    그냥 제가 임의로 cmd 창에 입력하는 식으로 작성해도 되는 건가요?


    9년 전 link
  • 5tarbuck5
    5tarbuck5

    네! 파일로 안 하셔도 되고, cmd창에 직접 인풋 입력하여 테스트 해 보세요. 채점 시스템은 출력한 것들만 확인한다고 생각하시면 됩니다


    9년 전 link
  • ghkd0205
    ghkd0205

    넵 감샇바니다.


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