Cod sursa(job #1443561)

Utilizator FeriCsiki Francisc Alexandru Feri Data 28 mai 2015 09:44:06
Problema Hashuri Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.95 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream in("hashuri.in");
ofstream out("hashuri.out");

int lst[666019],urm[1000001],val[1000001],nr;
const int M=666019;
void add(int x)
{
    int r=x%M;
    nr++;
    val[nr]=x;
    urm[nr]=lst[r];
    lst[r]=nr;
}

bool caut(int x)
{
    int p=lst[x%M];
    while(p!=0)
    {
        if(val[p]==x)
            return true;
        p=urm[p];
    }
    return false;
}

void sterg(int x)
{
    int r=x%M,p;
    p=lst[r];
    if(x==val[p])
    {
        lst[r]=urm[p];
        return;
    }
    while(urm[p]!=0)
        if(val[urm[p]]==x)
            urm[p]=urm[urm[p]];
        else
            p=urm[p];
}

int main()
{
    int n,i,a,b;
    in>>n;
    for(i=1;i<=n;i++)
    {
        in>>a>>b;
        if(a==1)
            add(b);
        if(a==2)
            sterg(b);
        if(a==3)
            if(caut(b)==true)
                out<<"1 ";
            else
                out<<"0 ";
    }
    return 0;
}