作者AE5096 (XD)
看板C_and_CPP
標題[ACM ] 112 WA
時間Mon Jun 28 14:20:06 2010
( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 )
( 未必需要依照此格式,文章條理清楚即可 )
題號:112
遇到的問題:
我自己不管是用VC2008 或是linux 怎麼跑都覺得是對的
但是上傳都是WA ◢▆▅▄▃崩╰(〒皿〒)╯潰▃▄▅▇◣
已經爬過文了 但我還是不知道我錯在哪裡
所以想問問其他高手們
我所用的方法 大概就是一直去讀input
一邊讀tree 一邊判斷現在走到哪裡 目前的總和是多少
如果讀到leaf 就判斷現在的總和和key是否相同
有問題的code: (請善用置底文的標色功能)
#include<stdio.h>
char judge(char s){
if(s=='(' || s==')' || s=='-') return 1;
if(s>='0' && s<='9') return 1;
return 0;
}
int main(){
int key,sum,depth,node,tree[100000],IsLeaf;
char s;
bool YN;
while(scanf("%d",&key)>0){
sum=0;
depth=0;
YN=false;
while(1){
s=getchar();
if(judge(s)==0) {
continue;
}
if(s=='('){
depth++;
if(scanf("%d",&node)>0){
sum+=node;
tree[depth]=node;
IsLeaf=0;
//IsLeaf: empty child count
}else{
while(getchar()!=')');
depth--;
IsLeaf++;
if(IsLeaf==2){
// printf("%d,",sum);
if(sum==key)YN=true;
}
}
}else if(s==')'){
sum-=tree[depth];
depth--;
IsLeaf=0;
}
if(depth==0) break;
}
if(YN)printf("yes\n");
else printf("no\n");
}
return 0;
}
補充說明:
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.102.109
推 ledia:他沒有提到過 tree depth 最深是 100000 過 ? 06/28 16:16
→ AE5096:他沒有提... 不過我開多少都死 都是WA RUN TIME 0.06x 06/28 16:18
→ AE5096:看來也沒有人知道我這code死在哪裡 orz 06/29 00:21