Cod sursa(job #568273)

Utilizator lalasCont de teste lalas Data 30 martie 2011 23:48:26
Problema Hashuri Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.94 kb
#include<fstream>

using namespace std;
const int filter_size = 6000000;

ifstream fin("hashuri.in");
ofstream fout("hashuri.out");

int t = 4435427;
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]]++;
	filter[val xor t] ++;
}

void erase (int val) {
	int i;
	for( i = 1 ; i <= 5 ; ++i )
		filter[val % mod[i]]--;
	filter[val xor t]--;
}

int query( int val ) {
	int i;
	for( i = 1 ; i <= 5 ;++i )
		if ( filter[val % mod[i]] == 0 ) return 0;
	if ( filter[val xor t] == 0)
		return 0;
return 1;
}

int main()
{
	fin >> n;
		
	mod[1] = 479909, mod[2] = 1000003 ,	
	mod[3] = 999017 , mod[4] = 2750159 , mod[5] = 3421751;
	
	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;
}