POJ-1145

来源:互联网 发布:服务器网络不稳定 编辑:程序博客网 时间:2024/05/16 15:28
#include<stdio.h>int rtol;int left;int dfs(int sum) {    int num1, num2;    short t1, t2;    t1 = t2 = 0;    // 左结点    while (getchar() != '(')          ;    left++;    if (scanf("%d", &num1)) {       if (dfs(sum+num1))          return 1;       t1 = 1;    }    while (getchar() != ')')          ;    left--;    if (!left) return 0;    // 右结点    while (getchar() != '(')          ;    left++;    if (scanf("%d", &num2)) {       if (dfs(sum+num2))          return 1;       t2 = 1;    }    while (getchar() != ')')          ;    left--;    // 没有左右结点,则判断是等于rtol    if (!t1 && !t2 && rtol == sum) {          return 1;    }    return 0;}int main(){    int num;    while (scanf("%d", &rtol) != EOF) {          if (dfs(0))             printf("yes\n");          else              printf("no\n");          do {              switch (getchar()) {                     case '(' : left++ ; break;                     case ')' : left--; break;              }          }while (left);    }    return 0;}

原创粉丝点击