Pagini recente » Cod sursa (job #3325369) | Cod sursa (job #1100994) | Cod sursa (job #3327875) | Cod sursa (job #2751029) | Cod sursa (job #2659512)
// Mihai Priboi
#include <bits/stdc++.h>
#define MOD 666013
#define MAX_N 2000000000
using namespace std;
vector<int> f[MOD];
void adauga( int x ) {
unsigned int n, i;
int poz;
poz = x % MOD;
i = 0;
n = f[poz].size();
while( i < n && f[poz][i] != x ) i++;
if( i == n )
f[poz].push_back(x);
}
void scoate( int x ) {
unsigned int n, i;
int poz;
poz = x % MOD;
i = 0;
n = f[poz].size();
while( i < n && f[poz][i] != x ) i++;
if( i < n && f[poz][i] == x )
f[poz].erase(f[poz].begin() + i);
}
int cauta( int x ) {
unsigned int n, i;
int poz;
poz = x % MOD;
i = 0;
n = f[poz].size();
while( i < n && f[poz][i] != x ) i++;
if( i == n )
return 0;
return 1;
}
int main() {
FILE *fin, *fout;
int n, i, op, x;
fin = fopen( "hashuri.in", "r" );
fout = fopen( "hashuri.out", "w" );
fscanf( fin, "%d", &n );
for( i = 0; i < n; i++ ) {
fscanf( fin, "%d%d", &op, &x );
switch(op) {
case 1:
adauga(x);
break;
case 2:
scoate(x);
break;
case 3:
fprintf( fout, "%d\n", cauta(x) );
break;
}
}
fclose( fin );
fclose( fout );
return 0;
}