→题目链接←
【想说的话】
听说03年不让用stl...
所以就会产生这样的题...
【题解】
用优先队列按照题意模拟就好了
【代码】
#include<bits/stdc++.h>
using namespace std;
struct node{
int num,ti,t,x;
friend bool operator < (node a,node b){
if(a.x==b.x)return a.ti>b.ti;
return a.x<b.x;
}
};
int a,b,c,d,T=0;
priority_queue<node>q;
int main(){
while(~scanf("%d%d%d%d",&a,&b,&c,&d)){
while(!q.empty() && T<b){
node tmp=q.top();
q.pop();
T=max(T,tmp.ti);
int s=min(b-T,tmp.t);
T+=s;
tmp.t-=s;
if(tmp.t)q.push(tmp);
else printf("%d %d\n",tmp.num,T);
}
q.push((node){a,b,c,d});
}
while(!q.empty()){
node tmp=q.top();
q.pop();
printf("%d %d\n",tmp.num,T+=tmp.t);
}
return 0;
}