操作序列--------------------stl大法

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

解析:
stl模拟


#include<bits/stdc++.h>
using namespace std;
int t;
map<int,int> mp; 
int main()
{
	cin>>t;
	while(t--)
	{
		int n,m;
		char c;
		scanf("%d%c",&n,&c);
		if(c==' ')
		{
			int f=0;
			scanf("%d",&m);
			for(int i=n-30;i<=n+30;i++) //判断[t-30,t+30]区间有没有不为0的数 
			{
				if(mp.count(i)) f=1;
			}
			if(f==0) mp[n]+=m;
		}
		else if(n==-1) //但要删除的时候 
		{
			if(mp.size()==0) //判断有没有不为0的数 
			{
				cout<<"skipped"<<endl;
			}
			else
			{
				cout<<mp.begin()->second<<endl; //如果有肯定就是第一个 
				mp.erase(mp.begin());//删除 
			}
		}
		else//输出下标为t的 
		{
			if(mp.count(n)) cout<<mp[n]<<endl;
			else cout<<0<<endl; 
		}
	}
}
发布了491 篇原创文章 · 获赞 11 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_43690454/article/details/104760842