Cod sursa(job #589067)

Utilizator mihaipopa12Popa Mihai mihaipopa12 Data 10 mai 2011 19:00:40
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.98 kb
#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;
}