ABC T4
  • 板块学术版
  • 楼主canwen
  • 当前回复10
  • 已保存回复11
  • 发布时间2024/10/1 20:41
  • 上次更新2024/10/1 23:36:44
查看原帖
ABC T4
1284815
canwen楼主2024/10/1 20:41

测试样例都能过,其他全 00

#include<bits/stdc++.h>
using namespace std;
#define int long long
map <int,int> m;
map <int,int> mm;
int in(){
	int ans=0;
	char a=getchar();
	while(a>'9'||a<'0') a=getchar();
	while(a<='9'&&a>='0'){
		ans = ans*10 + a - '0';
		a=getchar();
	}
	return ans;
}
signed main(){
	int q = in();
	int cnt = 0;
	while(q--){
		int opt=in(),x,y;
		if(opt==1||opt==2||opt==4) x=in();
		if(opt==1||opt==2) y=in();
		if(opt==1) {
			if(mm[x]<cnt){
				mm[x]++;
				if(m[x]>0) m[x]=1;
			}
			m[x]+=y;
		}
		else if(opt==2){
			if(m[x]==0) continue;
			if(mm[x]<cnt){
				mm[x]++;
				if(m[x]>0) m[x]=1;
			}
			m[x]-=min(m[x],y);
		}
		else if(opt==3) {
			cnt++;
		}else{
			if(mm[x]<cnt){
				mm[x]++;
				if(m[x]>0) m[x]=1;
			}
			printf("%lld\n",m[x]);
		}
	}
	return 0;
}
2024/10/1 20:41
加载中...