Cod sursa(job #2455176)

Utilizator alex.cojocaruAlex Cojocaru alex.cojocaru Data 10 septembrie 2019 21:27:04
Problema Heapuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.02 kb
#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;
}