Cod sursa(job #1255995)

Utilizator gerd13David Gergely gerd13 Data 5 noiembrie 2014 17:50:26
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.17 kb
#include <fstream>
#include <vector>
#include <map>


using namespace std;

const int NMAX =  1000005 ;
const int MOD = 666013 ;
const int INF = 0x3f3f3f3f ;

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

int N;
vector <int> V[MOD] ;


inline vector <int>::iterator find_value(int x)
{
    int nr = x % MOD ;
    vector <int>::iterator it ;

    for(it  = V[nr].begin(); it!= V[nr].end(); ++ it)
        if(*it == x)
         return it ;
    return V[nr].end() ;

}

inline void insert_value(int x)
{

  int nr = x % MOD ;

  if(find_value(x) == V[nr].end())
    V[nr].push_back(x) ;

}

inline void erase_value(int x)
{

    int nr = x % MOD ;

    vector<int>::iterator it = find_value(x) ;

    if(it != V[nr].end())
        V[nr].erase(it) ;
}

int main()
{

fin >> N ;

for(int i = 1 ; i <= N ; ++ i)
{

    int x, tip;
    fin >> tip >> x;
    if(tip == 1)
    {
        insert_value(x) ;
        continue ;
    }

    if(tip == 2)
    {
        erase_value(x) ;
        continue ;
    }

    fout << (find_value(x) != V[x % MOD].end()) << '\n' ;
}
    fin.close() ;
    fout.close() ;
    return 0 ;
}