Pagini recente » Cod sursa (job #1519494) | Cod sursa (job #1444775) | Cod sursa (job #2791277) | Cod sursa (job #2021017) | Cod sursa (job #734226)
Cod sursa(job #734226)
#include <stdio.h>
#include <vector>
#include <fstream>
using namespace std;
#define mod 670013
int n;
vector<int> v[mod];
inline vector<int>::iterator cauta(int);
inline void add(int);
inline void erase(int);
int main (void)
{
int i,op,x;
ifstream f("hashuri.in");
ofstream g("hashuri.out");
f>>n;
for(i=1;i<=n;i++)
{
f>>op>>x;
if(op==1) // adauga
add(x);
else if(op==2) // sterge
erase(x);
else if(op==3) // return 1 sau 0 daca x exista
g<<(cauta(x)!=v[x%mod].end())<<endl;
}
return 0;
}
inline void add(int x)
{
int i=x%mod;
if(cauta(x)==v[i].end()) v[i].push_back(x);
}
inline void erase(int x)
{
int i=x%mod;
vector<int>::iterator it=cauta(x);
if(it!=v[i].end()) v[i].erase(it);
}
inline vector<int>::iterator cauta(int x)
{
int i=x%mod;
vector<int>::iterator it;
for(it=v[i].begin(); it!=v[i].end(); ++it)
if(*it == x) return it;
return v[i].end();
}