Cod sursa(job #941223)

Utilizator narcis_vsGemene Narcis - Gabriel narcis_vs Data 18 aprilie 2013 11:34:43
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.14 kb
#include <fstream>
#include <algorithm>
#include <vector>
#define In "hashuri.in"
#define Out "hashuri.out"
#define mod 666013
using namespace std;
vector<int>Hash[mod+1];
int y,x;
inline vector<int>::iterator Cauta()
{
    vector<int>::iterator it;
    for(it=Hash[y].begin();it!=Hash[y].end();it++)
        if(*it==x)
            return it;
    return Hash[y].end();
}
inline void  Adauga()
{
    y = x%mod;
    vector<int>::iterator it=Cauta();
    if(it==Hash[y].end())
        Hash[y].push_back(x);
}
inline void  Sterge()
{
    y = x%mod;
    vector<int>::iterator it=Cauta();
    if(it!=Hash[y].end())
        Hash[y].erase(it);
}
inline bool Interogare()
{
    y = x%mod;
    vector<int>::iterator it=Cauta();
    return (it!=Hash[y].end());
}
int main()
{
    int i,n,op;
    ifstream f(In);
    ofstream g(Out);
    f>>n;
    for(i=1;i<=n;i++)
    {
        f>>op>>x;
        if(op==1)
            Adauga();
        else
        {
            if(op==2)
                Sterge();
            else
                g<<Interogare()<<"\n";
        }
    }
    f.close();
    g.close();
    return 0;
}