Cod sursa(job #1332519)

Utilizator shadowmasterDumitrescu Marian shadowmaster Data 2 februarie 2015 09:39:24
Problema Hashuri Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.96 kb
#include <iostream>
#include <fstream>
using namespace std;
long m=666013,a[666015][50];
long h(long k)
{
    return k%m;
}
void inserare(long x)
{
    long i;
    i=1;
    long j;j=h(x);
    do
    {

        if(a[j][i]==0 || a[j][i]==-1) {a[j][i]=x;a[j][0]++;break;}
        else i++;
    }while(i<=a[j][0]);
}
void stergere(long x)
{
    long i=1;
    long j;j=h(x);
    do
    {
        if(a[j][i]==x) {a[j][i]=-1;break;}
        else i++;
    }while(i<=a[j][0]);
}
long cautare(long x)
{
    long i=1,j;
    j=h(x);
    do
    {
        if(a[j][i]==x) return 1;
        else i++;
    }while(i<=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();
}