Pagini recente » Cod sursa (job #1322514) | Cod sursa (job #1240818) | Cod sursa (job #1036032) | Cod sursa (job #1968751) | Cod sursa (job #2455176)
#include <iostream>
#include <set>
#define NMAX 200000
using namespace std;
struct elem {
int val ;
int pozinit ;
};
multiset <int> s ;
int poz [ NMAX + 1 ] ; /// ce valoare are elem al x lea
int main () {
FILE *fin, *fout ;
fin = fopen ("heapuri.in", "r" ) ;
fout = fopen ("heapuri.out", "w" ) ;
int n, op, i, x, count ;
fscanf (fin, "%d", &n ) ;
count = 1 ;
for (i = 1 ; i <= n ; i++ ) {
fscanf (fin, "%d", &op ) ;
switch (op) {
case 1 : {
fscanf (fin, "%d", &x ) ;
s.insert(x) ;
poz[count] = x ;
//printf ("%d\n", s.size() ) ;
count++;
break ;
}
case 2 : {
fscanf (fin, "%d", &x ) ;
s.erase(poz[x]) ;
break ;
}
case 3 : {
fprintf (fout, "%d\n", (*s.begin()) ) ;
break ;
}
}
// multiset<int>::iterator j ;
//for ( j = s.begin() ; j != s.end() ; j++ )
// printf ( "%d ", *j ) ;
// printf ("\n" ) ;
}
return 0;
}