BRAVE 문제 막혔습니다. 도와주십쇼! sjc1117 BRAVE 쌍을 입력받을 때 마다 증가하도록 했습니다. 예제 문제와 제가 직접 테스트케이스를 입력해도 답은잘 뜨는것같습니다. 혹시 제가 생각하지 못한 예외상황이 있나요? #include <stdio.h> #include <string.h> int gold[100001]; int conn[100001]; int *p[100001]; int max(int a, int b){return a>b?a:b;} int main() { int n, i, k; int nn; int mx; int n1, n2; int cnt; scanf("%d", &n); for(i=0; i<n; i++) { scanf("%d %d", &k, &nn); cnt=0; mx = 0; memset(gold, -1, sizeof(gold)); memset(conn, 0, sizeof(conn)); while(nn--) { scanf("%d %d", &n1, &n2); if(gold[n1] == -1 && gold[n2] == -1) { gold[n1] = gold[n2] = cnt; conn[cnt] += 2; p[cnt] = &conn[cnt]; mx = max(mx, conn[cnt++]); } else if(gold[n1] > -1 && gold[n2] > -1) { if(p[gold[n1]] == p[gold[n2]]) continue; *p[gold[n1]] += *p[gold[n2]]; p[gold[n2]] = p[gold[n1]]; mx = max(mx, *p[gold[n1]]); } else if(gold[n1] > -1 && gold[n2] == -1) { gold[n2] = gold[n1]; (*p[gold[n1]])++; mx = max(mx, *p[gold[n1]]); } else if(gold[n2] > -1 && gold[n1] == -1) { gold[n1] = gold[n2]; (*p[gold[n2]])++; mx = max(mx, *p[gold[n1]]); } } printf("%d\n", mx); } return 0; } 9년 전
0개의 댓글이 있습니다. 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.
sjc1117
BRAVE
9년 전