Cod sursa(job #2119092)

Utilizator Stefan352000Corneteanu Stefan Stefan352000 Data 31 ianuarie 2018 17:22:41
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.16 kb
#include <fstream>
using namespace std;
ifstream fin("hashuri.in");
ofstream fout("hashuri.out");
struct elem
{
    int info;
    elem *urm;
}*v[666015];
int n,i,op,x;
const int MOD=666013;
void adaugare (int x)
{
    elem*p;
    p=new elem;
    p->info=x;
    p->urm=v[x%MOD];
    v[x%MOD]=p;
}
void stergere (int x)
{
    elem *q;
    if (v[x%MOD]->info==x)
    {
        q=v[x%MOD];
        v[x%MOD]=q->urm;
        delete q;
        return;
    }
    for (elem*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)
{
    elem *p;
    for (p=v[x%MOD];p!=NULL;p=p->urm)
    {
        if (p->info==x)
            return 1;
    }
    return 0;
}
int main()
{
    fin>>n;
    for (i=1;i<=n;i++)
    {
        fin>>op>>x;
        switch (op)
        {
            case 1:if (!apartine(x))
                        adaugare(x); break;
            case 2:if (apartine(x)) stergere(x);break;
            case 3: fout<<apartine(x)<<'\n';
        }
    }
    return 0;
}