Cod sursa(job #2337985)

Utilizator Cristian25Cristian Stanciu Cristian25 Data 6 februarie 2019 21:10:58
Problema Heapuri Scor 40
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.02 kb
#include <fstream>
#include <vector>
#define date "heapuri.in"
#define rezultate "heapuri.out"
#define pb push_back
#define len 100000010
#define minn(a, b) (a < b ? a : b)

using namespace std;

typedef unsigned int uint;
typedef unsigned short ushort;

ifstream in(date);
ofstream out(rezultate);

vector<int> v;

uint N, ap[len], cmin;

uint new_min()
{
    for(uint i = cmin + 1; ; ++i)
        if(ap[i])
            return i;
}

int main()
{
    in >> N;
    for(uint i = 1; i <= N; ++i)
    {
        ushort cod;
        in >> cod;
        if(cod == 1 || cod == 2)
        {
            uint x;
            in >> x;
            if(cod == 1)
            {
                ++ap[x];
                cmin = minn(cmin, x);
                v.pb(x);
            }
            else{
                --ap[v[x - 1]];
                v[x - 1] = -1;
            }
            continue;
        }
        if(!ap[cmin])
            cmin = new_min();
        out << cmin << '\n';
    }
    return 0;
}