Cod sursa(job #906668)

Utilizator mihai10stoicaFMI - Stoica Mihai mihai10stoica Data 6 martie 2013 23:38:55
Problema Hashuri Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.86 kb
#include<cstdio>
#include<cstdlib>
#define mod1 666013
#define mod2 391939
int H[mod1];
void insert(int x,int ex=0)
{
    int p;
    p=x%mod1;
    if(H[p]==ex) p=x%mod2;
    if(H[p]==0 || H[p]==x)
    {
        H[p]=x;
        return;
    }
    else
    {
        int y;
        y=H[p];
        H[p]=x;
        insert(y,x);
    }
}
void remove(int x)
{
    int p;
    p=x%mod1;if(H[p]==x) H[p]=0;
    p=x%mod2;if(H[p]==x) H[p]=0;
}
int find(int x)
{
    if(H[x%mod1]==x || H[x%mod2]==x) return 1;
    return 0;
}
int main()
{
    FILE *f=fopen("hashuri.in", "r"),*g=fopen("hashuri.out", "w");
    int n,i,op,x;
    fscanf(f,"%d",&n);
    for(i=0;i<n;i++)
    {
        fscanf(f,"%d%d",&op,&x);
        if(op==1) insert(x);
        else if(op==2) remove(x);
        else if(op==3) fprintf(g,"%d\n",find(x));
    }
    return 0;
}