Pagini recente » Cod sursa (job #1304164) | Cod sursa (job #2444073) | Cod sursa (job #2371708) | Cod sursa (job #2924266) | Cod sursa (job #1368674)
#include <fstream>
#include<vector>
using namespace std;
ifstream in("hashuri.in");
ofstream out("hashuri.out");
const int MOD=666013; //?
const int dim=1000000;
int lst[MOD],val[dim],urm[dim],m;
int n; // cate am pus pana acum
void adauga(int x, int rest){
n++;
val[n] = x;
urm[n] = lst[rest];
lst[rest] = n;
}
void sterge(int x, int rest){
int p=lst[rest];
if (x == val[p])
{
lst[rest] = urm[p];
return;
}
while(urm[p]!=0){
if(val[urm[p]]==x){
urm[p]=urm[urm[p]];
return;
}
p=urm[p];
}
}
int verifica(int x, int rest){
int p=lst[rest];
while(p!=0){
if(val[p]==x)
return 1;
p=urm[p];
}
return 0;
}
int main()
{
in>>m;
int i,t,x,rest;
for(i=1;i<=m;i++){
in>>t>>x;
rest=x%MOD;
if(t==1)
adauga(x,rest);
if(t==2)
sterge(x,rest);
if(t==3)
out<<verifica(x,rest)<<"\n";
}
return 0;
}