Cod sursa(job #1550051)

Utilizator KOzarmOvidiu Badea KOzarm Data 13 decembrie 2015 09:10:52
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.34 kb
#include <fstream>

using namespace std;
ifstream fin("hashuri.in");
ofstream fout("hashuri.out");
int n,i,x,op,k,b[666013],p;
struct wertyu
{
    int x; int y;
}a[666013];
void op1(int x)
{
    int c=x%p;
    int q=b[c];
    bool ok=1;
    while(q!=0)
    {
        if(x==a[q].x)
        {
            ok=0;
            break;
        }
        q=a[q].y;
    }
    if(ok==1)
    {
        a[++k].x=x;
        a[k].y=b[c];
        b[c]=k;
    }
}
void op2(int x)
{
    int c=x%p;
    int q=b[c];
    bool ok=1;
    int pz;
    int poz;
    while(q!=0)
    {
        if(x==a[q].x)
        {
            ok=0;
            poz=q;
            break;
        }
        pz=q;
        q=a[q].y;
    }
    if(ok==0)
    {
        a[pz].y=a[poz].y;
        a[poz].x=0;
    }
}
void op3(int x)
{
    int c=x%p;
    int q=b[c];
    bool ok=1;
    int pz;
    while(q!=0)
    {
        if(x==a[q].x)
        {
            ok=0;
            break;
        }
        q=a[q].y;
    }
    if(ok==0)
        fout<<"1\n";
    else
        fout<<"0\n";
}
int main()
{
    fin>>n;
    p=666013;
    k=0;
    for(i=1;i<=n;i++)
    {
        fin>>op>>x;
        if(op==1)
            op1(x);
        else
        if(op==2)
            op2(x);
        else
            op3(x);
    }
    return 0;
}