Pagini recente » Cod sursa (job #2393460) | Cod sursa (job #1876146) | Cod sursa (job #907865) | Cod sursa (job #134720) | Cod sursa (job #2592576)
#include<cstdio>
#include<cctype>
#include<set>
#define HEAP_SIZE 200000
#define BUF_SIZE 1 << 18
using namespace std;
set<int> h;
char buf[BUF_SIZE];
int v[HEAP_SIZE + 1], k, pos = BUF_SIZE;
inline char getChar(FILE* fin) {
if(pos == BUF_SIZE) {
fread(buf, 1, BUF_SIZE, fin);
pos = 0;
}
return buf[pos++];
}
inline int read(FILE* fin) {
int res = 0;
char ch;
do {
ch = getChar(fin);
}while(!isdigit(ch));
do {
res = 10*res + ch - '0';
ch = getChar(fin);
}while(isdigit(ch));
return res;
}
int main() {
FILE* fin, *fout;
fin = fopen("heapuri.in", "r");
fout = fopen("heapuri.out", "w");
int op, x, n;
fscanf(fin,"%d", &n);
for(int i = 0; i < n; ++i) {
fscanf(fin,"%d", &op);
if(op < 3)
fscanf(fin,"%d", &x);
if(op == 1) {
v[++k] = x;
h.insert(x);
} else if(op == 2) {
h.erase(v[x]);
} else fprintf(fout,"%d\n", *h.begin());
}
fclose(fin);
fclose(fout);
return 0;
}