Cod sursa(job #2760119)

Utilizator Vlad_CalomfirescuVlad calo Vlad_Calomfirescu Data 23 iunie 2021 09:25:47
Problema Heapuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.77 kb
//
//  main.cpp
//  heap1
//
//  Created by Vlad Calomfirescu on 27.04.2021.
//

#include <iostream>
#include <fstream>
#include <set>

using namespace std;

//ifstream fin("heapuri.in");
//ofstream fout("heapuri.out");
//int  f[200000];
//set<int> heap;


//int main()
//{
//    int val,val1,n,op,k=1;
//    fin>>n;
//    for (int i = 0; i<n; i++)
//    {
//        fin>>op;
//        switch (op)
//        {
//            case 1:
//                fin>>val;
//                heap.insert(val);
//                f[++k] = val;
//                break;
//            case 2:
//                fin>>val1;
//                heap.erase(f[val1]);
//                break;
//            case 3:
//                fout<<*heap.begin()<<endl;
//                break;
//        }
//    }
//    return 0;
//}

//int n, val, op, k;
//
//int main() {
//
//    fin>>n;
//
//    for (int i = 1; i <= n; i++) {
//        fin>>op;
//        if (op==1) {
//            fin>> val;
//            heap.insert(val);
//            f[++k] = val;
//        }
//        else {
//            if (op == 2) {
//                fin >>val;
//                heap.erase(f[val]);
//            } else {
//                fout<< *heap.begin()<<endl;
//            }
//        }
//    }
//
//    return 0;
//}


ifstream f("heapuri.in");
ofstream g("heapuri.out");
 
set <int> heap;
int N, v[200001], x, tip, k;
 
int main() {
 
    f>>N;
 
    for (int i = 1; i <= N; i++) {
        f >> tip;
        if (tip == 1) {
            f >> x;
            heap.insert(x);
            v[++k] = x;
        }
        else {
            if (tip == 2) {
                f >> x;
                heap.erase(v[x]);
            } else {
                g << *heap.begin() << '\n';
            }
        }
    }
 
    g.close();
    f.close();
 
    return 0;
}