POJ3481 Double Queue

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<set>
 4 #include<utility>
 5 using namespace std;
 6 int flag=1;
 7 typedef pair<int,int> p;
 8 typedef set<p>::iterator setit;
 9 set<p> s;
10 int main(){
11     while(flag){
12         scanf("%d",&flag);
13         if(!flag) break;
14         if(flag==2) {
15         if(s.empty()) {
16             printf("%d\n",0);continue;
17         }
18         setit i=--s.end();
19         printf("%d\n",(*(i)).second);
20         s.erase(i);
21         }
22         if(flag==3) {
23         if(s.empty()) {
24             printf("%d\n",0);continue;
25         }
26         setit i=s.begin();
27         printf("%d\n",(*(i)).second);
28         s.erase(i);}
29         if(flag==1){
30             int x,y;
31             scanf("%d%d",&x,&y);
32             s.insert(make_pair(y,x));
33         }
34     }
35     return 0;
36 }

猜你喜欢

转载自www.cnblogs.com/yu-xing/p/10351286.html