Cod sursa(job #1903752)

Utilizator raduzxstefanescu radu raduzx Data 5 martie 2017 12:45:29
Problema Hashuri Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 1.21 kb
#include <fstream>

using namespace std;
ifstream f("hashuri.in");
ofstream g("hashuri.out");
#define mod 666013
struct nod
{
    int val;
    nod *urm;
};
typedef nod *pnod;
pnod p,prec,v[666014],sf[666014];
int nr,i,j,x,y;
pnod value(int x)
{
    nr=x%mod;
    p=v[nr]->urm;
    prec=v[nr];
    while(p and p->val!=x)
    {
        prec=p;
        p=p->urm;
    }
    return prec;
}
void adaug(int x)
{
    p=value(x);
    nr=x%mod;
    if(p->urm==0)
    {
        prec=new nod;
        prec->val=x;
        prec->urm=0;
        sf[nr]->urm=prec;
        sf[nr]=prec;
    }
}
void sterg(int x)
{
    p=value(x);
    if(p->urm!=0)
    {
        prec=p->urm;
        p->urm=prec->urm;
        delete prec;
    }
}
int main()
{
    int n,tip;
    f>>n;
    for(i=0;i<=666012;i++)
    {
        v[i]=new nod;
        v[i]->urm=0;
        sf[i]=v[i];
    }
    for(i=1;i<=n;i++)
    {
        f>>tip>>x;
        if(tip==3)
            if(value(x)->urm==0)
                g<<"0"<<'\n';
            else
                g<<"1"<<'\n';
        else
            if(tip==1)
                adaug(x);
                else
                    sterg(x);
    }
    return 0;
}