这是一个优先队列的简单应用!
[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
}
}rt,R;
int main() {
int n;
while(cin>>n) {
priority_queue
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
}
}rt,R;
int main() {
int n;
while(cin>>n) {
priority_queue
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;
}