Cod sursa(job #1332499)

Utilizator Alex_dudeDudescu Alexandru Alex_dude Data 2 februarie 2015 08:58:52
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.93 kb
#include <cstdio>
#define m 666013
#include <vector>
using namespace std;
FILE *f1=fopen("hashuri.in","r"),*f2=fopen("hashuri.out","w");
vector <int> h[m];
int nr;
int H(int k)
{
    return k%m;
}
int cauta(int k)
{
    int n=H(k);
    for(int i=0;i<h[n].size();i++)
    if(h[n][i]==k)return 1;
    return 0;
}
void inserare(int k)
{
    h[H(k)].push_back(k);
}
void stergere(int k)
{
     int n=H(k);
     for(int i=0;i<h[n].size();i++)
        if(h[n][i]==k){h[n].erase(h[n].begin()+i);break;}

}
int main()
{
    fscanf(f1,"%d",&nr);
    for(int i=1;i<=nr;i++)
    {
        int op,x;
        fscanf(f1,"%d%d",&op,&x);
        if(op==1){if(!cauta(x))inserare(x);}
        if(op==2)stergere(x);
        if(op==3)fprintf(f2,"%d\n",cauta(x));
    }
    fclose(f1);
    fclose(f2);
    return 0;
}

//Our greatest weakness lies in giving up. The most certain way to succeed is always to try just one more time.