Cod sursa(job #903065)

Utilizator Kira96Denis Mita Kira96 Data 1 martie 2013 18:19:58
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.88 kb
#include<fstream>
#define MOD 666013
#define DIM 1000001
using namespace std;
ifstream f("hashuri.in");
ofstream g("hashuri.out");
int v[DIM],p[DIM],h[MOD],i,n,t,x,type;
void add(int x);
void del(int x);
void add(int x);
int find(int x);
void write(int x);
int main ()
{
    f>>n;
    for(i=1;i<=n;++i)
    {
        f>>type>>x;
        switch(type)
        {
            case 1:add(x); break;
            case 2:del(find(x)); break;
            case 3:write(x); break;
        }
    }
    return 0;
}
void add(int x)
{
    v[++t]=x;
    p[t]=h[x%MOD];
    h[x%MOD]=t;
}
void del(int poz)
{
    if(find(x))
    v[find(x)]=-1;
}
int find(int x)
{
    int poz=h[x%MOD];
    while(v[poz]!=x&&poz)
    poz=p[poz];
    if(v[poz]==x)
    return poz;
    else
    return 0;
}
void write(int x)
{
    if(find(x))
    g<<"1\n";
    else
    g<<"0\n";
}