(문제 해결이 안되어 다른분 코드를 볼 수 없어 답답한 마음에 문의를 드리게 되었습니다;)
컴파일 에러나는 코드 첨부하여드립니다;
#include <stdio.h>//#include <time.h>intTC;charstr[1000+1];unsignedlongstrlen;chartree[21][1099511627776];// 컴파일 에러 나는 부분입니다.intdepth;unsignedlongloc[21];voidmakeTree(void){for(intj=0;j<strlen;j++){switch(str[j]){case'x':{tree[depth][loc[depth]]='x';depth+=1;loc[depth]=loc[depth-1]*4;}break;case'w':{tree[depth][loc[depth]]='w';if((loc[depth]+1)%4==0)depth--;loc[depth]+=1;}break;case'b':{tree[depth][loc[depth]]='b';if((loc[depth]+1)%4==0)depth--;loc[depth]+=1;}break;}}}voidsearchTree(void){// only 1 nodeif(tree[0][0]!='x'){printf("%c",tree[0][0]);return;}printf("x");depth=1;loc[depth]=2;for(inti=0;i<strlen-1;i++)// because of first 'x', condition is "i<strlen-1" {switch(tree[depth][loc[depth]]){case'x':{printf("x");depth+=1;loc[depth]=loc[depth-1]*4+2;}break;case'w':{printf("w");if((loc[depth]+3)%4==0)depth--;loc[depth]+=1;if(loc[depth]%4==0)loc[depth]-=4;}break;case'b':{printf("b");if((loc[depth]+3)%4==0)depth--;loc[depth]+=1;if(loc[depth]%4==0)loc[depth]-=4;}break;}}}intmain(void){//clock_t st = clock();freopen("input.txt","r",stdin);//setbuf(stdout, NULL);scanf("%d",&TC);for(inti=0;i<TC;i++){// initfor(intj=0;j<1001;j++)str[j]=0;strlen=0;for(intj=0;j<11;j++)for(intk=0;k<1048576;k++)tree[j][k]=0;for(intj=0;j<11;j++)loc[j]=0;depth=0;// input strscanf("%s",&str);for(char*ptr=str;*ptr!=0;ptr++)strlen++;makeTree();// initfor(intj=0;j<11;j++)loc[j]=0;depth=0;searchTree();// DFS by 34,12 orderprintf("\n");}//printf("time : %d\n",clock()-st);return0;}
gloryof11
혼자힘으로(^^;) 트리를 이용해서 풀어보려고 했지만, 배열 크기 문제로 Runtime Error 가 발생하고 있습니다...
혹시 QUADTREE 문제를 stdio.h 만 사용하여 해결하신 분이 계실까요?
(문제 해결이 안되어 다른분 코드를 볼 수 없어 답답한 마음에 문의를 드리게 되었습니다;)
컴파일 에러나는 코드 첨부하여드립니다;
9년 전