Cod sursa(job #1568502)

Utilizator mihnea00Duican Mihnea mihnea00 Data 14 ianuarie 2016 12:49:36
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb
#include <fstream>
#define p 666013
using namespace std;
ifstream fin("hashuri.in");
ofstream fout("hashuri.out");

int a[3][1000001],h[1000001],x,c,n,i,v,e,r;

int gasire(int x)
{
    int r=x%p;
    int y=h[r];
    while(y)
    {
        if(a[1][y]==x)return y;
        y=a[2][y];
    }
    return 0;
}

void adaugare(int x)
{
    int r=x%p;
    if(gasire(x))return;
    e++;
    a[1][e]=x;
    a[2][e]=h[r];
    h[r]=e;
}

void stergere(int x)
{
    int r=x%p,y=gasire(x);
    if(!y)return;
    a[1][y]=-1;
}

int main()
{
    fin>>n;
    for(i=1; i<=n; i++)
    {
        fin>>c>>x;
        switch(c)
        {
            case 1:adaugare(x);break;
            case 2: stergere(x);break;
            case 3: fout<<(gasire(x)?"1\n":"0\n");break;
        }
    }
    return 0;
}