题目链接:http://7xjob4.com1.z0.glb.clouddn.com/46a7c6bdfdd8392f6c8ba9188333d1d2
题目思路:记录周期和开始的时间,优先队列的简单应用。
下面是AC代码:
#include<cstdio>
#include<queue>
using namespace std;
struct Item
{
int QNum,Period,Time;
bool operator <(const Item& a)const
{
return Time>a.Time||(Time==a.Time&&QNum > a.QNum);
}
};
int main()
{
priority_queue<Item>pq;
char s[20];
while(scanf("%s",s)&&s[0]!='#')
{
Item item;
scanf("%d%d",&item.QNum,&item.Period);
item.Time=item.Period;
pq.push(item);
}
int k;
scanf("%d",&k);
while(k--)
{
Item r=pq.top();
pq.pop();
printf("%d\n",r.QNum);
r.Time+=r.Period;
pq.push(r);
}
return 0;
}