推 AE5096:謝謝cutecpu大大 受小弟一拜 <(_ _)> 07/03 11:06
※ 引述《AE5096 (XD)》之銘言:
: ( *[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;
/*不加底下紅色這行的話,下面的測資會錯唷 ^.<
1 ( 1 () () )
1 ()
0 ()
*/
IsLeaf=0;
: 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: 60.248.4.114