Cod sursa(job #2333839)

Utilizator BogdanAlexandruBogdan-Alexandru Dig BogdanAlexandru Data 1 februarie 2019 23:42:18
Problema Hashuri Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.23 kb
#include <stdio.h>
#include <vector>
#define MOD 666013
using namespace std;
FILE *f,*g;
vector <int> Hash[MOD+5];
int N,Key;
void AddInTable(int X)/// In functie de cheie, adaug elementul in tabelul de dispersie
{
    size_t i=0;
    int p=Hash[Key].size();
    for(;i<p;++i)
        if(X==Hash[Key][i])
            return;
    Hash[Key].push_back(X);
}
void Delete(int X)
{
    size_t i=0;
    int p=Hash[Key].size();
    for(;i<p;++i)
        if(X==Hash[Key][i])
        {
            Hash[Key].erase(Hash[Key].begin()+i);
            return;
        }
}
int Search(int X)
{
    size_t i=0;
    int p=Hash[Key].size();
    for(;i<p;++i)
        if(X==Hash[Key][i])return 1;
    return 0;
}
void Solve()
{
    int X,task;
    fscanf(f,"%d",&N);
    while(N)
    {
        N--;
        fscanf(f,"%d %d",&task,&X);
        if(task==1)
        {
            Key=X%MOD; AddInTable(X); /// Codific elementul
            continue;
        }
        if(task==2)
        {
            Delete(X);
            continue;
        }
        fprintf(g,"%d\n",Search(X));
    }
}
int main()
{
    f=fopen("hashuri.in","r");g=fopen("hashuri.out","w");
    Solve();
    fclose(f),fclose(g);
    return 0;
}