Cod sursa(job #1540644)

Utilizator SoniaFlorinaHorchidan Sonia-Florina SoniaFlorina Data 2 decembrie 2015 23:38:01
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.98 kb
#include <iostream>
#include <fstream>
#include <vector>
#define M 666013

using namespace std;

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

vector <int> Hash[M];
long long  n, op, x;


bool exista(long long x)
{
    int m=Hash[x%M].size();
    for(int i=0; i<m; i++)
        if(Hash[x%M][i]==x)
            return 1;
    return 0;
}

void adauga(long long x)
{
    if(!exista(x))
        Hash[x%M].push_back(x);
}

void sterge(long long x)
{
    int m=Hash[x%M].size();
    int ok=1;
    for(int i=0; i<m && ok; i++)
        if(Hash[x%M][i]==x)
        {
            Hash[x%M].erase(Hash[x%M].begin()+i);
            ok=0;
        }
}



int main()
{
    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<<exista(x)<<'\n';
    }

    in.close();
    out.close();

    return 0;
}