题:https://www.cometoj.com/problem/1046
#includeusing namespace std;typedef long long ll;struct node{ int id,daoda,xiaohao,val; bool operator<(const node &b)const{ if(val==b.val) return daoda>b.daoda; return val ans;priority_queue que;int main(){ node p; int lasttime=0; while(~scanf("%d%d%d%d",&p.id,&p.daoda,&p.xiaohao,&p.val)){ if(que.empty()){ lasttime=p.daoda; que.push(p); continue; } //cout<<"!!!!"< =que.top().xiaohao){ u=que.top(); que.pop(); sumti-=u.xiaohao; curti+=u.xiaohao; q.id=u.id; q.ti=curti; ans.push_back(q); } if(!que.empty()&&sumti!=0){ u=que.top(); que.pop(); u.xiaohao=max(0,u.xiaohao-sumti); curti+=u.xiaohao; if(u.xiaohao>0) que.push(u); else{ q.id=u.id; q.ti=curti; ans.push_back(q); } } que.push(p); lasttime=p.daoda; } while(!que.empty()){ //cout<<"!!"<