Cod sursa(job #654042)

Utilizator titeltitel popescu titel Data 29 decembrie 2011 14:02:02
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.89 kb
#include <fstream>
#include <vector>
#define MOD 666013
using namespace std;
ifstream f("hashuri.in"); ofstream g("hashuri.out");
int N;
vector<int> G[MOD];
inline vector<int>::iterator cauta(int x)
{   int list = x % MOD;
    for (vector<int>::iterator it = G[list].begin(); it != G[list].end(); ++it) if (*it == x) return it;
    return G[list].end();
}
inline void adauga(int x)
{   int list = x % MOD;    
    if (cauta(x) == G[list].end()) G[list].push_back(x);
}
inline void erase_value(int x)
{   int list = x % MOD;
    vector<int>::iterator it = cauta(x);
    if (it != G[list].end()) G[list].erase(it);
}
int main()
{   int op, x;
	f>>N;
    for (; N; --N)
    { 	f>>op>>x;
        if (op == 1) {adauga(x); continue;}        
        if (op == 2) {erase_value(x);; continue;}
		if (cauta(x) == G[x % MOD].end()) g<<"0\n"; else g<<"1\n";
    }
    g.close(); return 0;
}