Pagini recente » Cod sursa (job #1868871) | Cod sursa (job #372468) | Cod sursa (job #1720195) | Cod sursa (job #1834320) | Cod sursa (job #2152175)
#include <stdio.h>
#include <vector>
#define mod 702113
using namespace std;
vector <int> v[mod];
void inserare( int nr ) {
int sertar, i, ok;
sertar = nr % mod;
ok = 0; ///cat timp nu am gasit nr in sertar, il cautam
for ( i = 0; i < v[sertar].size() && ok == 0; i++ ) {
if ( v[sertar][i] == nr )
ok = 1;
}
if ( ok == 0 ) ///daca nr nu se afla in multime, il adaugam
v[sertar].push_back( nr );
}
void stergere( int nr ) {
int sertar, i, ok;
sertar = nr % mod;
ok = 0; ///cat timp nu am gasit numarul
for ( i = 0; i < v[sertar].size() && ok == 0; i++ ) {
if ( v[sertar][i] == nr ) {
v[sertar].erase( v[sertar].begin() + i );
ok = 1;
}
}
}
int gaseste( int nr ) {
int sertar = nr % mod;
for ( vector<int>::iterator it = v[sertar].begin(); it != v[sertar].end(); it++ )
if ( *it == nr )
return 1;
return 0;
}
int main() {
int n, ver, nr, i;
FILE *fin, *fout;
fin = fopen( "hashuri.in", "r" );
fout = fopen( "hashuri.out", "w" );
fscanf( fin, "%d", &n );
for ( i = 0; i < n; i++ ) {
fscanf( fin, "%d%d", &ver, &nr );
if ( ver == 1 ) ///inserarea in multime
inserare( nr );
else if ( ver == 2 ) ///stergem nr daca se afla in multime
stergere( nr );
else
fprintf( fout, "%d\n", gaseste( nr ) );
}
fputc( '\n', fout );
fclose( fin );
fclose( fout );
return 0;
}