您的位置:首页 > 其它

UVA 10562 - Undraw the Trees

2013-02-07 14:08 267 查看
/* 将输入转化为树

*/

#include<cstdio>

#include<cstring>

#include<cstdlib>

char s[210],t[210][222];

int lc;

int dfs(int cur,int p)

{

if(cur==lc)

return 0;

printf("%c",t[cur][p]);

if(t[cur+1][p]!='|')

{

printf("()");

return 0;

}

printf("(");

int x=p,y=p;

while(t[cur+2][x]=='-')

x--;

x++;

while(t[cur+2][y]=='-')

y++;

y--;

//printf("%d %d %d...\n",x,y,p);

for(int i = x; i <= y; i++)

{

if(t[cur+3][i]!=' '&&t[cur+3][i]!=0&&cur+3<lc)

{

//printf("%c",t[cur+3][i]);

//if(t[cur+3][i]=='|')

dfs(cur+3,i);

}

}

printf(")");

}

int main()

{

int tcase;

scanf("%d",&tcase);

getchar();

while(tcase--)

{

lc=0;

while(1)

{

gets(s);

//printf("%s..\n",s);

if(s[0]=='#') break;

if(s[0]=='\n') continue;

strcpy(t[lc++],s);

}

//printf("%d...\n",lc);

//for(int i = 0; i < lc;i++)

//puts(t[i]);

if(lc==0)

{

printf("()\n");

continue;

}

printf("(");

for(int i = 0; i < strlen(t[0]); i++)

if(t[0][i]!=' ')

{

dfs(0,i);

break;

}

printf(")\n");

memset(t,0,sizeof(t));

}

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: