Pagini recente » Cod sursa (job #1508263) | Cod sursa (job #1551073) | Cod sursa (job #2863057) | Borderou de evaluare (job #1196634) | Cod sursa (job #857145)
Cod sursa(job #857145)
#include<fstream>
#include<vector>
using namespace std;
ifstream f("hashuri.in"); ofstream g("hashuri.out");
const int MOD = 20003;
const int NMAX = 100000;
int m, t, nr;
vector<int> v[NMAX];
inline void insert(int);
inline void erase(int);
inline bool search(int);
int main()
{
f>>m;
for(int i = 1; i <= m; ++i)
{
f>>t>>nr;
switch(t)
{
case 1 : { insert(nr); break; }
case 2 : { erase(nr); break; }
case 3 : { g<<search(nr)<<'\n'; break; }
}
}
}
inline void insert(int k)
{
vector<int> :: iterator it;
for(it = v[k % MOD].begin(); it != v[k % MOD].end(); ++it)
if((*it) == k) return;
v[k % MOD].push_back(k);
}
inline void erase(int k)
{
for(int i = 0; i < v[k % MOD].size(); ++i)
if(v[k % MOD][i] == k)
{
v[k % MOD][i] = v[k % MOD].back();
v[k % MOD].pop_back();
return;
}
}
inline bool search(int k)
{
vector<int> :: iterator it;
for(it = v[k % MOD].begin(); it != v[k % MOD].end(); ++it)
if((*it) == k) return 1;
return 0;
}