Pagini recente » Cod sursa (job #602517) | Cod sursa (job #2643971) | Cod sursa (job #1675919) | Cod sursa (job #24424) | Cod sursa (job #3157149)
#include <fstream>
using namespace std;
#define MAXN 1000000
#define MODUL 666013
int lists[ MODUL + 1 ], nex[ MAXN + 1 ], valori[ MAXN + 1 ], m;
ifstream in( "hashuri.in" );
ofstream out( "hashuri.out" );
int poz( int a )
{
int cod = a % MODUL;
int i = lists[ cod ];
while( i != 0 )
{
if( valori[ i ] == a )
{
return i;
}
i = nex[ i ];
}
return 0;
}
void adaugare( int a )
{
int cod = a % MODUL;
if( poz( a ) == 0 )
{
m++;
valori[ m ] = a;
nex[ m ] = lists[ cod ];
lists[ cod ] = m;
}
}
void stergere( int a )
{
int cod = a % MODUL, i = poz( a );
if( i != 0 )
{
valori[ i ] = valori[ lists[ cod ] ];
lists[ cod ] = nex[ lists[ cod ] ];
}
}
bool cautare( int a )
{
int cod = a % MODUL;
if( poz( a ) != 0 )
return 1;
return 0;
}
int main()
{
int n, i, operatie, element;
in >> n;
for( i = 0; i < n; i++ )
{
in >> operatie >> element;
if( operatie == 1 )
{
adaugare( element );
}
else if( operatie == 2 )
{
stergere( element );
}
else
{
out << cautare( element ) << endl;
}
}
return 0;
}