Pagini recente » Cod sursa (job #2982897) | Cod sursa (job #2669075) | Cod sursa (job #683335) | Cod sursa (job #794728) | Cod sursa (job #2745796)
#include <vector>
#include <iostream>
#include <cstring>
#include <fstream>
using namespace std;
int numar_prim = 666013;
void operatie_1( vector < int > &tabel_hash, int numar, vector < int > &elemente_diferite ){
if( tabel_hash[numar%numar_prim] == numar_prim ){
tabel_hash[numar%numar_prim] = numar;
}
else{
if( tabel_hash[numar%numar_prim] != numar ){
elemente_diferite.push_back(numar);
}
}
}
void operatie_2( vector < int > &tabel_hash, int numar, vector < int > &elemente_diferite ){
if( tabel_hash[numar%numar_prim] == numar ){
tabel_hash[numar%numar_prim] = numar_prim;
}
else{
if( tabel_hash[numar%numar_prim] != numar_prim ){
int ok = 0, i;
for( i = 0; i < elemente_diferite.size() && ok == 0; i++ ){
if( elemente_diferite[i] == numar ) ok = 1;
}
elemente_diferite[i] = elemente_diferite[elemente_diferite.size()-1];
elemente_diferite.pop_back();
}
}
}
int operatie_3( vector < int > &tabel_hash, int numar, vector < int > &elemente_diferite ){
if( tabel_hash[numar%numar_prim] == numar ) return 1;
else{
if( tabel_hash[numar%numar_prim != numar_prim] ){
int ok = 0;
for( int i = 0; i < elemente_diferite.size() && ok == 0; i++ ){
if( elemente_diferite[i] == numar ) ok = 1;
}
return ok;
}
}
}
int main(){
vector < int > tabel_hash;
vector < int > elemente_diferite;
ifstream fin( "hashuri.in" );
ofstream fout( "hashuri.out" );
int n;
fin >> n;
for( int i = 0; i < numar_prim; i++ ){
tabel_hash.push_back( numar_prim );
}
for( int i = 0; i < n; i++ ){
int operatie, numar;
fin >> operatie >> numar;
if( operatie == 1 ) operatie_1( tabel_hash, numar, elemente_diferite );
if( operatie == 2 ) operatie_2( tabel_hash, numar, elemente_diferite );
if( operatie == 3 ) fout << operatie_3( tabel_hash, numar, elemente_diferite ) << endl;
}
}