abc 379D
作者:
Air1222
,
2024-11-10 18:54:02
,
所有人可见
,
阅读 1
//因为每一次取得的一定是先建立的花盆
//因此可以用优先队列维护,每一次取最小值
//判断当前t和放入花盆的t差值书否满足k即可
//注意先判断队列是否为空再q.top(),否则会RE
//复杂度O(mlogm)
#include <iostream>
#include <queue>
using namespace std;
typedef long long LL;
priority_queue<LL,vector<LL>,greater<LL>>q;
int main()
{
int n;
cin>>n;
LL t=0;
while(n--)
{
int op;
cin>>op;
if(op==1) q.push(t);
else if(op==2)
{
LL x;
cin>>x;
t+=x;
}
else
{
LL x;
cin>>x;
LL cnt=0;
while(q.size()&&t-q.top()>=x)
{
q.pop();
cnt++;
}
cout<<cnt<<endl;
}
}
return 0;
}