Cod sursa(job #1508425)

Utilizator ArambasaVlad Arambasa Arambasa Data 22 octombrie 2015 16:03:57
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.05 kb
#include <fstream>
#include <vector>
using namespace std;

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

const int MOD = 666013;
vector <int> Hashuri[MOD];
int N;

vector <int> :: iterator Find(int a)
{
    int List = a % MOD;

    vector <int> :: iterator it;

    for(it = Hashuri[List].begin(); it != Hashuri[List].end(); it++)
      if(*it == a)
            return it;
    return Hashuri[List].end();
}

void inserare(int a)
{
    int List = a % MOD;
    if(Find(a) ==Hashuri[List].end())
        Hashuri[List].push_back(a);
}

void stergere(int a)
{
    int List = a % MOD;
    vector <int> :: iterator it = Find(a);
    if(it != Hashuri[List].end())
        Hashuri[List].erase(it);
}


int main()
{
    fin>>N;
    while(N--)
    {
        int optiune,x;
        fin>>optiune>>x;
        switch (optiune)
        {
            case 1:{inserare(x);break;}
            case 2:{stergere(x);break;}
            case 3:{fout << (Find(x) != Hashuri[x%MOD].end())<<"\n";break;}

        }
    }
    return 0;
}