我们用STL的queue重写这道题
#include <iostream>
#include <cstdio>
#include <queue>
using namespace std;
struct node
{
char s[11];
int t;
};
int main()
{
int n,q,t;
scanf("%d %d",&n,&q);
queue<node> Q;
node d;
while(n--)
{
scanf("%s %d",&d.s,&d.t);
Q.push(d);
}
int elaps=0;
while(!Q.empty())
{
d=Q.front(); Q.pop();
if(d.t<=q)
{
elaps+=d.t;
printf("%s %d\n",d.s,elaps);
}
else
{
elaps+=q;
d.t-=q;
Q.push(d);
}
}
return 0;
}