Cod sursa(job #903069)

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