Cod sursa(job #2587465)

Utilizator matei123Biciusca Matei matei123 Data 22 martie 2020 18:28:09
Problema Hashuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.05 kb
#include <fstream>
using namespace std;
ifstream in ("hashuri.in");
ofstream out ("hashuri.out");
const int N=1000001;
const int K=666019;
int lst[N],urm[N],val[N],nr;
bool apartine (int x)
{   int c=x%K;
    for (int p=lst[c];p!=0;p=urm[p])
        if (val[p]==x) return true;
    return false;
}
void adauga (int x)
{   if (apartine(x)) return;
    int c=x%K;
    val[++nr]=x;
    urm[nr]=lst[c];
    lst[c]=nr;
}
void sterge (int x)
{   int c=x%K;
    if (!apartine(x)) return;
    for (int p=lst[c];p!=0;p=urm[p])
        if (val[p]==x) val[p]=-1;
}
bool fnd (int x)
{   int c=x%K;
    for (int p=lst[c];p!=0;p=urm[p])
    {   if (val[p]==x) return 1; }
    return 0;
}
int main()
{   int n,x,y;
    in>>n;
    for (int i=1;i<=n;i++)
    {   in>>x>>y;
        if (x==1)
        {   adauga (y);
            continue;
        }
        else if (x==2)
        {   sterge(y);
            continue;
        }
        else
        {   if (fnd(y)) out<<1<<'\n';
            else out<<0<<'\n';
        }
    }
    return 0;
}