Cod sursa(job #823122)

Utilizator mlupseLupse-Turpan Mircea mlupse Data 24 noiembrie 2012 17:15:48
Problema Heapuri Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.87 kb
#include <cstdio>
using namespace std;

const int kMaxN = 200005;
int N,K,V[kMaxN], NH, H[kMaxN], P[kMaxN],Value;

void Erase(int p)
{
int i;
    for(i=p;i<K;i++)
        {
        V[i]=V[i+1];
        P[i]=P[i+1];
        }
--K;
}
int Minim()
{
int i,m=1000000005;
for(i=1;i<=K;i++)
if (V[i]<m)
m=V[i];
return m;
}

int main() {
    int i;
    freopen("heapuri.in", "r", stdin);
    freopen("heapuri.out", "w", stdout);
    int M; scanf("%d", &M);
    for (; M; --M) {
        int Type; scanf("%d", &Type);
        if (Type == 1) {
            scanf("%d", &Value);
            V[++K]=Value;
            P[++N]=K;
        }
        if (Type == 2) {
            int X; scanf("%d", &X);
            for(i=1;i<=K;i++)
                if(P[i]==X) Erase(i);
        }
        if (Type == 3)
            printf("%d\n", Minim());
    }
    return 0;
}