Pagini recente » Cod sursa (job #532308) | Cod sursa (job #1073282) | Cod sursa (job #1885147) | Cod sursa (job #2845787) | Cod sursa (job #568262)
Cod sursa(job #568262)
#include<fstream>
using namespace std;
const int filter_size = 6000000;
ifstream fin("hashuri.in");
ofstream fout("hashuri.out");
int i , j , n , mod[10] , type , nr;
short int filter[filter_size];
void insert( int val ) {
int i;
for( i = 1 ; i <= 5 ; ++i )
filter[val % mod[i] + (mod[5 - i + 1] >> 1) ]++;
}
void erase (int val) {
int i;
for( i = 1 ; i <= 5 ; ++i )
filter[val % mod[i] + (mod[5 - i + 1] >> 1)]--;
}
int query( int val ) {
int i;
for( i = 1 ; i <= 5 ;++i )
if ( filter[val % mod[i] + (mod[5 - i + 1] >> 1)] == 0 ) return 0;
return 1;
}
int main()
{
fin >> n;
mod[1] = 666013 , mod[2] = 1000003 * 4 , mod[3] = 17 * 19 * 23 ,
mod[4] = 999017 * 3 , mod[5] = 2750159;
for( i = 1 ; i <= n ; ++i ) {
fin >> type >> nr;
if ( type == 1 )
insert(nr);
if ( type == 2 )
erase(nr);
if ( type == 3 )
fout << query(nr) <<"\n";
}
return 0;
}