Pagini recente » Monitorul de evaluare | Istoria paginii utilizator/robertoo | Istoria paginii utilizator/ungureanu_lorin | Monitorul de evaluare | Cod sursa (job #589067)
Cod sursa(job #589067)
#include<stdio.h>
#include<vector>
#define MOD 649991
using namespace std;
FILE*f=fopen("hashuri.in","r");
FILE*g=fopen("hashuri.out","w");
int i,m,op,x; vector<int>G[MOD];
inline vector<int>::iterator find ( int x ){
int y = x % MOD;
vector<int>::iterator itt;
for ( itt = G[y].begin() ; itt != G[y].end() ; ++itt ){
if ( *itt == x )
return itt;
}
return G[y].end();
}
inline void insert ( int x ){
int y = x % MOD;
if ( find(x) == G[y].end() )
G[y].push_back(x);
}
inline void erase( int x ){
int y = x % MOD; vector<int>::iterator itt;
itt = find(x);
if ( itt != G[y].end() )
G[y].erase(itt);
}
int main () {
fscanf(f,"%d",&m);
for ( i = 1 ; i <= m ; ++i ){
fscanf(f,"%d %d",&op,&x);
if ( op == 1 ){
insert(x);
}
else if ( op == 2 ){
erase(x);
}
else{
fprintf(g,"%d\n",find(x) != G[x % MOD].end() );
}
}
fclose(f);
fclose(g);
return 0;
}