Cod sursa(job #1790470)

Utilizator Y0da1NUME JMECHER Y0da1 Data 28 octombrie 2016 11:53:57
Problema Hashuri Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 1.04 kb
#include <iostream>
#include <fstream>
#include <vector>

#define MOD 666013

using namespace std;

ifstream in ("hashuri.in");
ofstream out ("hashuri.out");

int n;
vector <int> H[MOD];
int findH(int x)
{
    int h = x%MOD;
    for(int i = 0;i<H[h].size();++i)
        if(H[h][i]==x)
            return i;
    return -1;
}
void insertH(int x)
{
    int h=x%MOD;    //functie hash simpla, cu modulo nr prim mare
    if(findH(x)==-1)
        H[h].push_back(x);

}
void removeH(int x)
{
    int h = x%MOD;
    int i = findH(x);
        if(i!=-1)
            H[h].erase(H[h].begin() + i);
}
int main()
{
    int op, i, x;
    in>>n;
    for(i=0;i<n;++i)
    {
        in>>op>>x;
        switch (op)
            {
            case 1:
                insertH(x);
                break;
            case 2:
                removeH(x);
                break;
            case 3:
                out<<findH(x)+1<<'\n';
                break;
            }
    }
    in.close();
    out.close();
    return 0;
}