Cod sursa(job #1654763)

Utilizator KOzarmOvidiu Badea KOzarm Data 17 martie 2016 14:22:20
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.19 kb
#include <fstream>

using namespace std;
ifstream fin("hashuri.in");
ofstream fout("hashuri.out");
int n,i,x,op;
struct nod
{
    int x;
    nod *next;
}*p[666013];
int verificare(int x)
{
    int w=x%666013;
    for(nod *q=p[w];q!=NULL;q=q->next)
        if(q->x==x)
            return 1;
    return 0;
}
void adaugare(int x)
{
    if(!verificare(x))
    {
        nod *q;
        int w=x%666013;
        q=new nod;
        q->next=p[w];
        q->x=x;
        p[w]=q;
    }
}
void scoatere(int x)
{
    int w=x%666013;
    if(p[w]!=NULL)
    if(p[w]->x==x)
        p[w]=p[w]->next;
    else
    {
        nod *q=p[w];
        for(nod *crt=q->next;crt!=NULL;crt=crt->next)
        {
            if(crt->x==x)
            {
                q->next=crt->next;
                return;
            }
            else
                q=crt;
        }
    }
}
int main()
{
    fin>>n;
    for(i=1;i<=n;i++)
    {
        fin>>op>>x;
        switch(op)
        {
        case 1:
            adaugare(x);break;
        case 2:
            scoatere(x);break;
        case 3:
            fout<<verificare(x)<<"\n";break;
        }
    }
    return 0;
}