Cod sursa(job #2119110)

Utilizator DeanWinchesterdean winchester DeanWinchester Data 31 ianuarie 2018 17:40:59
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.23 kb
#include <fstream>
using namespace std;
ifstream cin("hashuri.in");
ofstream cout("hashuri.out");
struct elm
{
    int info;
    elm * urm;
};
elm * v[666015],*p;
const int mod=666013;
int x,n,i,op;
void adaug(int x)
{
    elm *p;
    p=new elm;
    p->info=x;
    p->urm=v[x%mod];
    v[x%mod]=p;

}
void sterg(int x)
{
    elm *q;
    if(v[x%mod]!=0 && v[x%mod]->info==x)
    {
        q=v[x%mod];
        v[x%mod]=q->urm;
        delete q;
        return;
    }
    for(elm *p=v[x%mod];p->urm!=NULL;p=p->urm)
        {
            if(p->urm->info==x)
                q=p->urm;
                p->urm=q->urm;
                delete q;
                return;
        }

}
bool apartine(int x)
{
    for(elm *p=v[x%mod];p!=0;p=p->urm)
    {
        if(p->info==x)
            return 1;
    }
        return 0;
}
int main()
{
    cin>>n;
    for(i=1;i<=n;i++)
    {
        cin>>op>>x;
        if(op==1)
        {
            if(apartine(x)==0)
                adaug(x);
        }
        else
            if(op==2)
            {
                if(apartine(x)==1)
                    sterg(x);
            }
            else
                cout<<apartine(x)<<'\n';
    }
    return 0;
}