Cod sursa(job #370849)

Utilizator cristikIvan Cristian cristik Data 2 decembrie 2009 16:21:54
Problema Hashuri Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.89 kb
#include <stdio.h>
#define mod 666013
struct lista
{
    int val;
    lista *urm;
};
lista *g[mod],*p;
int i,op,n,x,a[mod];
void inserare(int x)
{
    int i=x%mod;
    p=new lista;
    p->val=x;
    p->urm=g[i];
    g[i]=p;
}
void stergere(int x)
{
    int i=x%mod,ok=0;
    lista *q;
    p=g[i];
    while(p)
    {
        if(p->val==x) { q=p; p=p->urm; delete q; ok=1;}
        if(ok) break;
        else p=p->urm;
    }
}
int cauta(int x)
{
    int i=x%mod;
    p=g[i];
    while(p)
    {
        if(p->val==x) return 1;
        p=p->urm;
    }
    return 0;
}
int main()
{
    freopen("hashuri.in","r",stdin);
    freopen("hashuri.out","w",stdout);
    scanf("%d",&n);
    for(; n>0; n--)
    {
        scanf("%d%d",&op,&x);
        if(op==1) inserare(x);
        if(op==2) stergere(x);
        if(op==3) printf("%d\n",cauta(x));
    }
    return 0;
}