4개의 댓글이 있습니다.
-
-
nailbrainz -
음..while문을 돌 땐 c를 감소시켜가는데
가운데에 있는 ans[3-c]=countPairings(find,n,student); 때문에 그런 거 아닐까요? 케이스 개수가 3개일지 아닐지는 잘 모르니까요
10년 전 link
-
-
정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.
auddn521
런타임에러잡는 질문 찾아봤는데 배열 할당에서 문제가생길 확률이 높대서 다시한번 점검했는데.. 모르겠습니다.
코드가 길어서 설명하자면
cin 으로 c 입력받고
입력받은 c 만큼 답의 개수를 (int * ans) 에 동적할당해줍니다.
다음으로 n 과 m 을 입력받고
n 개수만큼 (bool **student) 에 n*n 배열을 동적할당하구요
m 만큼 루프돌며 해당배열을 채웁니다.
재귀부분으로 연산하고 연산이 끝난답은 ans[0]부터 저장하구요
다음 n 입력받기 전에 할당해준 n*n 배열 delete 해주고,
친구인지 검사하는 배열 bool *find 도 delete 해주고..
n과 m 이 다시 입력될때 다시 할당합니다...
도저히 모르겠어요.. 알고스팟 이용하는게 처음이라서 더욱 ㅠㅠ
도와주시면 감사하겠습니다
~c++
#include
using namespace std;
int countPairings(bool * & taken,int n, bool * * & areFriends);
int main()
{
int c; //테스트케이스수
int n; // 학생수 짝수 ( 2이상)
int m; //짝인 학생수 (0<= m <= n(n-1)/2)
bool * * student; //학생친구관계 저장할 2차원배열 할당
int * ans; //답 할당 동적할당
int frd1,frd2; //친구표시 입력받을 임시변수
bool * find;// 친구를 찾았을경우 true 표시;
cin>> c; //테이스케이스 입력
ans = new int[c];
}
int countPairings(bool * &taken,int n,bool * * & areFriends)
{
int firstFree = -1;
}
10년 전