Cod sursa(job #678703)

Utilizator ion_calimanUAIC Ion Caliman ion_caliman Data 12 februarie 2012 11:41:20
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.8 kb
#include <fstream>
using namespace std;

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

#define M 1666013

int A[M], N;

int H(int x, int p)
{
    return (x+661*p+13*p)%M;
}

void insereaza(int x)
{
    int p=0;
    while (A[H(x,p)]>0 && A[H(x,p)]!=x) p++;
    if (A[H(x,p)]!=x) A[H(x,p)] = x;
}

void sterge(int x)
{
    int p=0;
    while ((A[H(x,p)] || A[H(x,p)]==-1) && A[H(x,p)]!=x) p++;
    if (A[H(x,p)]==x) A[H(x,p)] = -1;
}

bool cauta(int x)
{
    int p=0;
    while ((A[H(x,p)] || A[H(x,p)]==-1) && A[H(x,p)]!=x) p++;
    return A[H(x,p)] == x;
}

int main()
{
    int c,x;
    f >> N;
    for (;N--;){
        f >> c >> x;
        if (c==1) insereaza(x); else
        if (c==2) sterge(x); else
        if (c==3) g << cauta(x) << '\n';
    }
    return 0;
}