PKU 3337 Expression Evaluator

超多的if
 1#include<stdio.h>
 2char str[500];
 3int a[50],ans,j,m,l,t,f[50];
 4int main()
 5{
 6    int KASE,i;
 7    scanf("%d",&KASE);
 8    gets(str);
 9    while(KASE--)
10    {
11        ans=0;j=0;m=0;l=0,t=0;
12        for(i=1;i<=26;i++){a[i]=i;f[i]=0;}
13        gets(str);
14        i=-1;
15        while(str[++i])
16        {
17            if(str[i]==' ');
18            else if(str[i]=='+'){j++;t=1;}
19            else if(str[i]=='-'){m++;t=-1;}
20            else
21            {
22
23                if(j+m==3)
24                {
25                    if(j==2)
26                    {
27                        if(t==1){a[str[i]-'a'+1]++;ans-=a[str[i]-'a'+1];}
28                        if(t==-1){a[l]++;ans-=a[str[i]-'a'+1];}
29                    }

30                    if(j==1)
31                    {
32                        if(t==1){a[l]--;ans+=a[str[i]-'a'+1];}
33                        if(t==-1){a[str[i]-'a'+1]--;ans+=a[str[i]-'a'+1];}
34                    }

35                    //printf("*******%d\n",ans);
36                }

37                else if(j+m==2)
38                {
39                    a[str[i]-'a'+1]+=t;
40                }

41                else if(j+m==1)
42                {
43                    ans=ans+a[str[i]-'a'+1]*t;
44                }

45                if(!l)ans=a[str[i]-'a'+1];
46                l=str[i]-'a'+1;
47                f[l]=1;
48                j=0;m=0;
49                //printf("afadfadfadfadf%d %d\n",l,ans);
50            }

51            if(j==2 && m==0 && l){a[l]++;j=0;}
52            if(m==2 && j==0 && l){a[l]--;m=0;}
53        }

54        printf("Expression: %s\n",str);
55        printf("value = %d\n",ans);
56        for(i=1;i<=26;i++)
57            if(f[i])
58                printf("%c = %d\n",i+'a'-1,a[i]);
59    }

60    return 0;
61}

62
63

posted on 2008-07-18 16:44 gong 阅读(276) 评论(4)  编辑 收藏 引用

评论

# re: PKU 3337 Expression Evaluator 2008-07-19 00:48 hadn't

WA的很郁闷  回复  更多评论   

# re: PKU 3337 Expression Evaluator 2008-07-19 01:11 gong

我也是莫名奇妙的就过了。
写完以后感觉很多地方都考虑不到。
但是交上去就是过了?
你poj上不是也过了吗?  回复  更多评论   

# re: PKU 3337 Expression Evaluator 2008-07-20 10:27 未央

哈哈,大家都在这里啊,又一个基地  回复  更多评论   

# re: PKU 3337 Expression Evaluator 2008-07-20 11:51 gong

你怎么找到我blog的啊  回复  更多评论   


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2008年7月>
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789

导航

统计

常用链接

留言簿(6)

随笔档案

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜