作为一个有图的题,竟然描述如此不清楚,表示愤慨
其实就是个堆……可这是个语文题啊语文题!!!!
题目描述
在幻想乡中,蓬莱山辉夜是月球公主,居住在永远亭上,二次设定说她成天宅在家里玩电脑,亦称NEET姬
一天,她要她帮忙升级月球的网络服务器,应为注册用户过多(月兔和地球上的巫女都注册了……),所以作为代理管理员(俗称网管)的她,非常蛋疼。
注册用户格式:
TouhouMaiden 2004 200
其中前面的Touhoumaiden是预设,不做更改,第一个数是标识,第二个数是每次接受信息访问的间隔用时。
你要做的事,就是给定一群用户及n,求出这n次信息访问中,访问到了谁?
presented by Izayoi sakuya
输入描述
以题目预设格式输入,另起一行以‘#’结束,在其一行输入n
输出描述
n行,每行输出第行次后,信息访问到了谁?若在一个时间有若干少女被访问到,输出字典序最小的那位少女的标识
样例输入
TouhouMaiden 2004 200
TouhouMaiden 2005 300
#
5
样例输出
2004
2005
2004
2004
2005
关于这个样例,貌似没去重……?
那这句话是想说啥……算了不管了……
若在一个时间有若干少女被访问到,输出字典序最小的那位少女的标识
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <queue>
using namespace std;
struct zt
{
int n,k;
int i;
bool operator < (const zt b)const
{
return n > b.n || (n == b.n && i > b.i);
}
};
priority_queue <zt> q;
int n;
void xfs()
{
while(n--)
{
zt u = q.top();
q.pop();
u.n += u.k;
printf("%d\n",u.i);
q.push(u);
}
return;
}
int num,k;
int main()
{
while(scanf("TouhouMaiden %d %d\n",&num,&k))
q.push((zt){k,k,num});
getchar();
scanf("%d",&n);
xfs();
return 0;
}