UVA327暴力讨论所有情况
2015-08-26 12:31
169 查看
这题是个水题,和UVA112一样,暴力讨论所有情况即可。
#include<iostream> #include<cstdio> #include<cstring> #include<cstdlib> #include<string> #include<cctype> #include<cmath> #include<map> #include<set> #include<vector> #include<queue> #include<stack> #include<ctime> #include<algorithm> #include<sstream> #define LL long long using namespace std; int main() { string s; while(getline(cin,s)) { int i=0; // while(s[i]==' ') i++; cout<<"Expression: "<<s<<endl; // for(;i<s.length();i++) // cout<<s[i]; // cout<<endl; string ss=""; for(int i=0;i<s.length();i++) if(s[i]!=' ') ss=ss+s[i]; int value=0; int a[30]; for(int i=0;i<26;i++) a[i]=i+1; int flag[30]; memset(flag,0,sizeof(flag)); int sum=0; for(int i=0;i<ss.length();i++) { if(islower(ss[i])) { if(i==0) { sum=sum+(ss[i]-'a'+1); } else { if(ss[i-2]!=ss[i-1]) { if(ss[i-1]=='-') sum=sum-(ss[i]-'a'+1); else sum=sum+(ss[i]-'a'+1); } else { if(ss[i-2]=='-') { a[ss[i]-'a']--; // sum--; } else if(ss[i-2]=='+') { a[ss[i]-'a']++; // sum++; } if(i-3>0&&ss[i-3]=='-') sum=sum-a[ss[i]-'a']; else sum=sum+a[ss[i]-'a']; } } if(i+2<ss.length()&&ss[i+2]==ss[i+1]&&ss[i+2]=='-') { a[ss[i]-'a']--; } else if(i+2<ss.length()&&ss[i+2]==ss[i+1]&&ss[i+2]=='+') { a[ss[i]-'a']++; } flag[ss[i]-'a']=1; // cout<<sum<<endl; } } cout<<" value = "<<sum<<endl; for(int i=0;i<26;i++) if(flag[i]) { printf(" %c = %d\n",'a'+i,a[i]); } } return 0; }
相关文章推荐
- 获取正在运行的进程列表
- 全排列
- Gradle入门系列(3):依赖管理
- c# 面相对象4-多态性
- Android布局特效(一)
- 翻译:Gradle之依赖管理
- UVALive 6959 Judging Troubles map应用
- 实现SSH/SCP不用输入帐号密码
- (译)缓存在AFNetworking中是如何工作的?AFImageCache和NSUrlCache给你答案
- [LeedCode OJ]#171 Excel Sheet Column Number
- UVALive 6959 Judging Troubles map应用
- tcpdump使用详解
- Resin Thread Dump
- Android 安全概述
- [关于jQuery的事件代理] jQuery的.bind()、.live()和.delegate()之间区别
- leetcode 203: Remove Linked List Elements
- jQuery实现的简洁下拉菜单导航效果代码
- 暑期报修项目经验分享二(附原码)
- 最老程序员创业开发实训2---采用MVC架构的应用Splash页面实现
- 二进制文件与文本文件区别