Pagini recente » Monitorul de evaluare | Borderou de evaluare (job #2240836) | Borderou de evaluare (job #504856) | Borderou de evaluare (job #3033881) | Cod sursa (job #830367)
Cod sursa(job #830367)
#include <fstream>
#include <vector>
#define MOD 100007
using namespace std;
const char iname[] = "hashuri.in";
const char oname[] = "hashuri.out";
ifstream fin(iname);
ofstream fout(oname);
int N , op , r;
unsigned int x;
vector < int > :: iterator it;
vector < int > v[ MOD ];
int find ( int y )
{
r = y % MOD;
for ( it = v[ r ].begin(); it != v[ r ].end(); ++it )
{
if ( *it == y )
return 1;
}
return 0;
}
void sp ( int y )
{
r = y % MOD;
for ( it = v[ r ].begin(); it != v[ r ].end(); ++it )
{
if ( *it == y )
{
v[ r ].erase( it );
return ;
}
}
}
int main()
{
fin >> N;
while ( N-- )
{
fin >> op >> x;
switch ( op )
{
case 1 :
if ( !find( x ) ){ r = x % MOD; v[ r ].push_back( x ); }
break;
case 2 :
if ( find( x ) )
{
r = x % MOD;
sp( x );
}
break;
case 3 :
if ( find( x ) ) fout << "1\n";
else fout << "0\n";
break;
}
}
return 0;
}