Cod sursa(job #1077495)

Utilizator denisx304Visan Denis denisx304 Data 11 ianuarie 2014 13:34:45
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.01 kb
#include <cstdio>
#include <vector>
using namespace std;
int n,m=666013,parametru,tip;
FILE *f,*g;
vector<int> my_hash[666013];
int cauta(int x)
{
    int indice=x % m;
    for (int i=0;i<my_hash[indice].size();i++)
        if (my_hash[indice][i]==x) return 1;

    return 0;
}
void adauga(int x)
{
    int indice=x % m;
    if (cauta(x)==0)
        my_hash[indice].push_back(x);
}
void sterge(int x)
{
    int indice=x % m;
    for (int i=0;i<my_hash[indice].size();i++)
        if (my_hash[indice][i]==x)
    {
        my_hash[indice][i]=my_hash[indice].back();
        my_hash[indice].pop_back();
        break;
    }
}
int main()
{
    f=fopen("hashuri.in","r");
    g=fopen("hashuri.out","w");
    fscanf(f,"%d",&n);
    for (int i=1;i<=n;i++)
    {
        fscanf(f,"%d%d",&tip,&parametru);
        if (tip==1) adauga(parametru);
        if (tip==2) sterge(parametru);
        if (tip==3) fprintf(g,"%d\n",cauta(parametru));
    }
    fclose(f);
    fclose(g);
    return 0;

}