Cod sursa(job #1047296)

Utilizator medeea0507Medeea Lazea medeea0507 Data 4 decembrie 2013 10:38:40
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.04 kb
#include <vector>
#include <fstream>

using namespace std;

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

#define prime 666013
vector<int>H[prime];

int cauta(int val)
{
    int rest=val%prime;
    int s=H[rest].size(),i;
    for (i=0;i<s;i++)
        if (H[rest][i]==val)
           return i;
    return -1;
}

int este(int val)
{
    if (cauta(val)==-1)
        fout<<0;
    else
        fout<<1;
    fout<<"\n";
}

void inserare(int val)
{
    int rest=val%prime;
    if (cauta(val)>=0)
        return;
    H[rest].push_back(val);
}

void stergere(int val)
{
    int rest=val%prime;
    int cine=cauta(val);
    if (cine==-1)
        return;
    H[rest][cine]=H[rest].back();
    H[rest].pop_back();
}

int main()
{
    int i,x,n,op;
    fin>>n;
    for (i=1;i<=n;i++)
    {
        fin>>op>>x;
        if (op==1)
            inserare(x);
        if (op==2)
            stergere(x);
        if (op==3)
            este(x);
    }
    fin.close();
    fout.close();
        return 0;
}