2023-01-08
题目传送门
翻译
难度&重要性(1~10):1
题目来源
AtCoder
题目算法
模拟,优先队列
解题思路
用优先队列存储下加入的元素编号,对操作 \(2\) 把所有的 \(k\) 存在一起。
完成状态
已完成
易错点
注意,操作 \(2\) 只对已加入的编号 \(+k\)。所以在新加入编号时要先拿编号减去 \(k\),最后才能直接加 \(k\)。
Code
#include<bits/stdc++.h>
using namespace std;
long long n,m;
priority_queue<long long,vector<long long>,greater<long long>>q;
int main(){
cin>>n;
while(n--){
long long int x,a;
cin>>x;
if(x==1){
cin>>a;
q.push(a-m);
}else if(x==2){
cin>>a;
m+=a;
}else{
cout<<q.top()+m<<endl;
q.pop();
}
}
return 0;
}
标签:Querying,题目,cin,long,ABC212D,编号,Multiset
From: https://www.cnblogs.com/OIerBoy/p/17350572.html