Cod sursa(job #2535856)

Utilizator ArmivioIlas Armand Viorel Armivio Data 1 februarie 2020 12:07:04
Problema Hashuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.98 kb
#include <bits/stdc++.h>
#define MODULO 666013
using namespace std;
ifstream f("hashuri.in");
ofstream g("hashuri.out");
int tab[MODULO][8],h[MODULO],aux;
int hass(int x)
{
    return x%MODULO;
}
void adauga(int x)
{
    int i;
    for(i=1;i<=h[hass(x)];i++)
        if(tab[hass(x)][i]==x) return;
    tab[hass(x)][++h[hass(x)]]=x;
}
void sterge(int x)
{
    int i,j;
    for(i=1;i<=h[hass(x)];i++)
        if(tab[hass(x)][i]==x)
        {
            for(j=i;j<h[hass(x)];j++)
            {
                tab[hass(x)][j]=tab[hass(x)][j+1];
            }
            h[hass(x)]--;
            return;
        }
}
bool cauta(int x)
{
    int i;
    for(i=1;i<=h[hass(x)];i++)
        if(tab[hass(x)][i]==x)
            return true;
    return false;
}
int main()
{
    int i,n,x,c;
    f>>n;
    for(i=1;i<=n;i++)
    {
        f>>c>>x;
        if(c==1) adauga(x);
        else if(c==2) sterge(x);
        else g<<cauta(x)<<'\n';
    }
    return 0;
}