boj 11725
https://www.acmicpc.net/problem/11725
#include <stdio.h>
int main(){
int n,c=1;
scanf("%d",&n);
char cnt[n+1][n+1],grade[n+1][n+1],visited[n+1];
for(int q=1;q<=n;q++){for(int w=1;w<=n;w++)cnt[q][w]=grade[q][w]=0;visited[q]=0;}
for(int t=1;t<n;t++){
int a,b;
scanf("%d %d",&a,&b);
cnt[a][b]=cnt[b][a]=1;
}
grade[1][1]=1;
visited[1]=1;
/*{
for(int q=1;q<=n;q++){for(int w=1;w<=n;w++)printf("%d ",cnt[q][w]);printf("\n");}
printf("\n");
for(int q=1;q<=n;q++){for(int w=1;w<=n;w++)printf("%d ",grade[q][w]);printf("\n");}
printf("\n");
for(int q=1;q<=n;q++)printf("%d ",visited[q]);printf("\n");
printf("\n");
}*/
for(int q=1;q<=n;q++){
for(int w=1;w<=n;w++)if(grade[q][w]>0){
for(int e=1;e<=n;e++){
if(cnt[w][e]==1&&visited[e]==0){visited[e]=q+1;grade[q+1][e]=w;c++;}
if(c==n)break;
}
if(c==n)break;
}
if(c==n)break;
/*{
for(int q=1;q<=n;q++){for(int w=1;w<=n;w++)printf("%d ",grade[q][w]);printf("\n");}
printf("\n");
for(int q=1;q<=n;q++)printf("%d ",visited[q]);printf("\n");
printf("\n");
}*/
}
/*{
for(int q=1;q<=n;q++){for(int w=1;w<=n;w++)printf("%d ",grade[q][w]);printf("\n");}
printf("\n");
for(int q=1;q<=n;q++)printf("%d ",visited[q]);printf("\n");
printf("\n");
}*/
for(int t=2;t<=n;t++)printf("%d\n",grade[visited[t]][t]);
return 0;
}
이렇게 코드 짜서 코드 잘 돌아가고 예제 넣어봤을 때 결과값도 이상없는데 제출하면 segfault가 뜨는데 이유가 뭘까요