您的位置:首页 > 其它

uva10562 Undraw the Trees

2015-02-09 23:05 351 查看
简简单单 单单纯纯 我就是想坚持下去 到以后发现我竟然是这样入门的 自己是不是都会觉得很奇葩

#include<cstdio>
#include<cctype>
#include<cstring>
using namespace std;
const int maxn = 200 + 10;
int n;
char buf[maxn][maxn];
void dfs(int r, int c) {
    printf("%c(", buf[r][c]);
    if(r+1 < n && buf[r+1][c] == '|'){
        int i = c;
        while(i-1 >= 0 && buf[r+2][i-1] == '-') i--;
        while(buf[r+2][i] == '-' && buf[r+3][i] != '\0'){
            if(!isspace(buf[r+3][i])) dfs(r+3, i);
            i++;
        }
    }
    printf(")");
}
void solve()
{
    n = 0;
    for(;;){
        fgets(buf
, maxn, stdin);
        if(buf
[0] == '#') break; else n++;
    }
    printf("(");
    if(n){
        for(int i = 0; i < strlen(buf[0]); i++)
            if(buf[0][i] != ' ') { dfs(0, i); break; }
    }
    printf(")\n");
}

int main()
{
    int T;
    fgets(buf[0], maxn, stdin);
    sscanf(buf[0], "%d", &T);
    while(T--) solve();
    return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: