Cod sursa(job #1517685)

Utilizator raluca1234Tudor Raluca raluca1234 Data 4 noiembrie 2015 18:15:35
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.91 kb
//HASHURI INFOARENA
#include<iostream>
#include<fstream>
#define MAXN 1000003
#define MOD 666019
using namespace std;
int k;
int lista[MOD],val[MAXN],nxt[MAXN];

int cauta(int x){
    int p=lista[x%MOD];
    while (p){
        if (val[p]==x)
            return p;
        p=nxt[p];
    }
    return 0;
}

void adauga(int x){
    int p=lista[x%MOD];
    if (cauta(x)!=0)
        return;
    int r=x%MOD;
    k++;
    val[k]=x;
    nxt[k]=lista[r];
    lista[r]=k;
}

void sterge(int x){
    int p=cauta(x);
    if (p!=0) val[p]=-1;
}

int main(){
    int n,i,t,x;
    ifstream f("hashuri.in");
    ofstream g("hashuri.out");
    f>>n;
    for (i=1; i<=n; i++){
        f>>t>>x;
        if (t==1) adauga(x);
        if (t==2) sterge(x);
        if (t==3)
            if (cauta(x)!=0) g<<"1"<<'\n';
            else g<<"0"<<'\n';

    }

    f.close();
    g.close();
    return 0;
}