MSE07B - Double Queue
Tác giả: ll931110
Ngôn ngữ: C++
#include <iostream>
#include <set>
#include <iterator>
#include <utility>
using namespace std;
set< pair<int,int> > s;
int main()
{
// freopen("mn.in","r",stdin);
// freopen("mn.ou","w",stdout);
int q;
pair<int,int> u;
int k1,k2;
do
{
// cout << s.size() << endl;
scanf("%d", &q);
if (q == 0) break;
if (q == 1)
{
scanf("%d%d", &k2, &k1);
u = make_pair(k1,k2);
s.insert(u);
}
else
{
if (s.empty()) printf("%d\n", 0);
else
{
if (q == 2) u = *--s.end(); else u = *s.begin();
printf("%d\n", u.second);
s.erase(u);
};
};
}
while (q != 0);
};