Cod sursa(job #1320726)

Utilizator claudiu.gatinaFMI Claudiu Gatina claudiu.gatina Data 18 ianuarie 2015 13:59:44
Problema Hashuri Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.3 kb
#include <cstdio>
#define hashsize 666013

struct nod
{
    int x;
    nod *urm;
}*r;

void inserare(int n, nod *h[])
{
    r=h[n/hashsize];
    while(r->urm)
    {
        if(r->urm->x==n)
            return;
        r=r->urm;
    }
    r->urm = new nod;
    r->urm->x = n;
    r->urm->urm=NULL;
}

void stergere(int n, nod *h[])
{
    r=h[n%hashsize];
    while(r->urm)
    {
        if(r->urm->x==n)
        {
            nod *p = r->urm;
            r->urm = r->urm->urm;
            delete p;
            return;
        }
        r=r->urm;
    }
}

void afisare(int n, nod *h[])
{
    r=h[n%hashsize];
    while(r->urm)
    {
        if(r->urm->x==n)
        {
            printf("1\n");
            return;
        }
        r=r->urm;
    }
    printf("0\n");
    return;
}

int main()
{
    int n,i,op,x;
    nod *h[hashsize];
    freopen("hashuri.in", "r", stdin);
    freopen("hashuri.out", "w", stdout);
    scanf("%d ", &n);
    for(i=0;i<hashsize;i++)
    {
        h[i] = new nod;
        h[i]->urm = NULL;
    }
    for(i=1;i<=n;i++)
    {
        scanf("%d %d ", &op, &x);
        if(op==1)
            inserare(x, h);
        if(op==2)
            stergere(x, h);
        if(op==3)
            afisare(x, h);
    }

    return 0;
}