마지막으로 자주_하는_실수_모음 페이지를 읽으시면서 혹시 해당되는 사항이 있진 않은지 생각해 보세요.
위 내용이 지켜지지 않은 질문은 답변이 오래 걸릴 수 있습니다.
아래 '편집하기' 버튼을 눌러 글을 쓰실 수 있습니다.
#include <iostream>#include <fstream>usingnamespacestd;inttestCase;//테스트 케이스 수intsCount;// 학생의 수intfCount;// 친구쌍의 수boolareFriends[10][10];// taken[i] = i번째 학생이 짝을 이미 찾았으면 true, 아니면 falseintcountPairings(booltaken[10]){//남은 학생들 중 가장 번호가 빠른 학생을 찾는다.intfirstFree=-1;for(inti=0;i<sCount;++i){if(!taken[i]){firstFree=i;break;}}//기저 사례 : 모든 학생이 짝을 찾았으면 한 가지 방법을 찾았으니 종료한다.if(firstFree==-1)return1;intret=0;// 이 학생과 짝지을 학생을 결정한다.for(intpairWith=firstFree+1;pairWith<sCount;++pairWith){if(!taken[pairWith]&&areFriends[firstFree][pairWith]){taken[firstFree]=taken[pairWith]=true;ret+=countPairings(taken);taken[firstFree]=taken[pairWith]=false;}}returnret;}intmain(void){intx,y;intresult;//결과booltaken[10];ifstreamfin;ofstreamfout;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(inti=0;i<fCount;++i){fin>>x;fin>>y;areFriends[x][y]=true;areFriends[y][x]=true;}result=countPairings(taken);fout<<result<<endl;testCase--;for(inti=0;i<10;++i)for(intj=0;j<10;j++)areFriends[i][j]=false;for(inti=0;i<10;++i)taken[i]=false;}return0;}
ghkd0205
문단을 구분하기 위해 앞과 뒤에 빈 줄 하나씩을 반드시 추가하셔야 합니다.
마지막으로 자주_하는_실수_모음 페이지를 읽으시면서 혹시 해당되는 사항이 있진 않은지 생각해 보세요.
위 내용이 지켜지지 않은 질문은 답변이 오래 걸릴 수 있습니다.
아래 '편집하기' 버튼을 눌러 글을 쓰실 수 있습니다.
9년 전