Cod sursa(job #1712932)
Utilizator | Andrei Cristian Nastase andreiskior | Data | 4 iunie 2016 12:08:30 |
---|---|---|---|
Problema | Hashuri | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 1.51 kb |
#include <stdio.h>
#include <vector>
#define MOD 66013
using std::vector;
vector <int> h[66013];
vector <int> :: iterator iter;
int main()
{
freopen("hashuri.in","r",stdin);
freopen("hashuri.out","w",stdout);
int poz;
int n,i,j;
int mod,nr,bam;
scanf("%d",&n);
for(i = 1; i <= n; ++i)
{
scanf("%d %d",&mod,&nr);
bam = 1;
poz = nr % MOD;
iter = h[poz].begin();
if(mod == 1)
{
while(iter != h[poz].end() && bam)
{
if(*iter == nr)
bam = 0;
else
++iter;
}
if(bam)
h[poz].push_back(nr);
}
else
if(mod == 2)
{
while(iter != h[poz].end() && bam)
{
if(*iter == nr)
bam = 0;
else
++iter;
}
if(!bam)
h[poz].erase(iter);
}
else
{
while(iter != h[poz].end() && bam)
{
if(*iter == nr)
{
printf("1\n");
bam = 0;
}
else
++iter;
}
if(bam)
printf("0\n");
}
}
return 0;
}