Pagini recente » Cod sursa (job #1533680) | Cod sursa (job #1787757) | Cod sursa (job #147077) | Cod sursa (job #2177767) | Cod sursa (job #2581956)
#include <iostream>
#include<fstream>
#define mod 666013
using namespace std;
ifstream fin("hashuri.in");
ofstream fout("hashuri.out");
struct nod
{
int info;
nod *urm;
};
nod *g[mod+1];
void add(nod *&prim, int x)
{
nod *p = new nod;
p -> info = x;
p -> urm = prim;
prim = p;
}
bool gasit( int x )
{
int lista = x % mod;
nod *p;
for(p = g[lista]; p ; p = p -> urm)
if(p -> info == x)return 1;
return 0;
}
void solve1(int x)
{
int lista = x % mod;
if(!gasit(x))
add(g[lista],x);
}
void solve2(int x)
{
int lista = x % mod;
nod *p, *ant;
if(!gasit(x))return;
//daca e chiar primul
if(g[lista] -> info == x)
g[lista] = g[lista] ->urm;
else
{
ant = g[lista];
//cout << ant<<" ";
for(p = g[lista]; p ; p = p -> urm)
{
if(p -> info == x)
{
ant -> urm = p -> urm;
break;
}
else ant = p;
}
}
}
void solve3( int x )
{
if(!gasit(x))fout << 0;
else fout << 1;
fout << "\n";
}
int main()
{
int op, x, n, i;
fin >> n;
for(i = 1; i <= n; ++i)
{
fin >> op >> x;
if(op == 1)solve1(x);
else if(op == 2)solve2(x);
else solve3(x);
}
return 0;
}