Cod sursa(job #1332503)

Utilizator shadowmasterDumitrescu Marian shadowmaster Data 2 februarie 2015 09:19:42
Problema Hashuri Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.97 kb
#include <iostream>
#include <fstream>
using namespace std;
long m=666013,a[2000000];
long h(long k,long i)
{
    return k%m+i;
}
void inserare(long x)
{
    long i;
    i=0;
    long j;

    do
    {
        j=h(x,i);
        if(a[j]==0 || a[j]==-1) {a[j]=x;break;}
        else i++;
    }while(i<m);
}
void stergere(long x)
{
    long i=0;
    long j;

    do
    {
        j=h(x,i);
        if(a[j]==x) {a[j]=-1;break;}
        else i++;
    }while(i<m && a[j]!=0);
}
long cautare(int x)
{
    long i=0,j;
    do
    {
        j=h(x,i);
        if(a[j]==x) return 1;
        else i++;
    }while(i<m && a[j]!=0);
    return 0;
}
int main()
{
    long op,nr,x;
    ifstream f("hashuri.in");
    ofstream g("hashuri.out");
    f>>nr;
    for(long i=1;i<=nr;i++)
    {
        f>>op>>x;
        if(op==1) inserare(x);
        else if(op==2) stergere(x);
        else if(op==3) g<<cautare(x)<<'\n';
    }
    f.close();
    g.close();
}