Pagini recente » Cod sursa (job #2242550) | Cod sursa (job #1389828) | Cod sursa (job #583003) | Cod sursa (job #1263147) | Cod sursa (job #2011638)
#include <bits/stdc++.h>
using namespace std;
ifstream F("hashuri.in");
ofstream G("hashuri.out");
int n, q, v[1000005], nxt[1000005], L[666016], x;
const int MOD = 666013;
inline int caut(int x, int i)
{
int p = L[x%MOD];
if(v[p] == v[i]) return 1;
while(v[p] != v[i] && p)
if(v[p] == v[i]) return 1;
else p = nxt[p];
return 0;
}
inline void sterg(int x)
{
int p = L[x%MOD];
if(v[p] == x)
{
L[x%MOD] = nxt[L[x%MOD]];
}
while(v[p] != x && p)
if(v[p] == x)
{
nxt[p] = nxt[nxt[p]];
return;
}
else p = nxt[p];
}
int main()
{
F >> n;
for(int i = 1; i <= n; ++ i)
{
F >> q >> v[i];
if(q == 1)
{
nxt[i] = L[v[i]%MOD];
L[v[i]%MOD] = i;
}
else
{
if(caut(v[i], i))
{
if(q == 3) G << "1\n";
else sterg(v[i]);
}
else if(q == 3) G << "0\n";
}
}
return 0;
}