Cod sursa(job #2698480)

Utilizator seburebu111Mustata Dumtru Sebastian seburebu111 Data 22 ianuarie 2021 11:46:17
Problema Hashuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.94 kb
#include <fstream>

using namespace std;

const int MOD =666019;
const int N = 1000001;
int val[N], urm[N], lst[MOD], nr;

ifstream in("hashuri.in");
ofstream out("hashuri.out");

void adauga(int x)
{
    int c=x%MOD;
    val[++nr]=x;
    urm[nr]=lst[c];
    lst[c]=nr;
}

bool caut(int x)
{
    int c=x%MOD;
    int p=lst[c];
    while(p!=0)
    {
        if(val[p]==x)
            return true;
        p=urm[p];
    }
    return false;
}

void sterge(int x)
{
    int c=x%MOD;
    int p=lst[c];
    while(p!=0 && val[p]!=x)
    {
        p=urm[p];
    }
    if(val[p]!=0)
    {
        swap(val[p], val[lst[c]]);
        lst[c]=urm[lst[c]];
    }

}

int main()
{
    int n, op, x;
    in>>n;
    for(int i=1; i<=n; i++)
    {
        in>>op>>x;
        if(op==1)
            adauga(x);
        else if(op==2)
            sterge(x);
        else
            out<<caut(x)<<'\n';
    }
    return 0;
}