HDU 1873 看病要排队 优先队列

2014-11-24 02:57:04 · 作者: · 浏览: 1

这是一个优先队列的简单应用!


[cpp]
#include
#include
#include
#include
#include
#include
#include
#include
#include

using namespace std;
const int inf=10000000;

struct node {
int num;
int k;
bool operator < (const node& x) const {
if(k!=x.k)return k else return num>x.num;
}
}rt,R;

int main() {
int n;
while(cin>>n) {
priority_queueM[4];
for(int i=1,t=1; i<=n; ++i) {
string cmd; cin>>cmd;
if(cmd=="IN") {
int a,b; cin>>a>>b;
rt.num=t++, rt.k=b;
M[a].push(rt);
}
if(cmd=="OUT") {
int a; cin>>a;
if(M[a].empty())puts("EMPTY");
else {
R=M[a].top();M[a].pop();
cout< }
}
}
}
return 0;
}

#include
#include
#include
#include
#include
#include
#include
#include
#include

using namespace std;
const int inf=10000000;

struct node {
int num;
int k;
bool operator < (const node& x) const {
if(k!=x.k)return k else return num>x.num;
}
}rt,R;

int main() {
int n;
while(cin>>n) {
priority_queueM[4];
for(int i=1,t=1; i<=n; ++i) {
string cmd; cin>>cmd;
if(cmd=="IN") {
int a,b; cin>>a>>b;
rt.num=t++, rt.k=b;
M[a].push(rt);
}
if(cmd=="OUT") {
int a; cin>>a;
if(M[a].empty())puts("EMPTY");
else {
R=M[a].top();M[a].pop();
cout< }
}
}
}
return 0;
}