一道关于ACM,OJ系统的C++问题

2024-11-23 12:55:28
推荐回答(1个)
回答(1):

这个题如果真的像题目描述中去做的话,不但代码长,而且比较费时间,如果这是作业的话,不得不说需要按照题目中说的去写,如果是ACM题目的话,当然是用的内存最少,代码量最低和效率最高,我建议用c++STL中的map映射来做:

#include 
#include 
#include 

using namespace std;

map  mp;//定义映射,从string映射到int

int 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的介绍。。。。。。。