这个题如果真的像题目描述中去做的话,不但代码长,而且比较费时间,如果这是作业的话,不得不说需要按照题目中说的去写,如果是ACM题目的话,当然是用的内存最少,代码量最低和效率最高,我建议用c++STL中的map映射来做:
#include #include #include using namespace std;map mp;//定义映射,从string映射到intint main(){ string name; int x; int opt; int n,m; map ::iterator it;//定义迭代器 cin>>n; while(n--) { cin>>name>>x; mp[name] = x; } cin>>m; while(m--) { cin>>name>>opt>>x; if(opt) mp[name] -= x; else mp[name] += x; } for(it = mp.begin();it != mp.end();it++) { cout<first<<" "<second< } return 0;}
上面有不会的地方可以看一下C++STL中对map的介绍。。。。。。。