Cod sursa(job #1496535)
Utilizator | Data | 5 octombrie 2015 09:27:15 | |
---|---|---|---|
Problema | Hashuri | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 2.82 kb |
#include<stdio.h>
FILE *fin,*fout;
int a[1000039],n,x,y,v;
bool b;
int hashuire(int i)
{
return (i%1000039);
}
int main()
{
fin=fopen("hashuri.in","r");
fout=fopen("hashuri.out","w");
fscanf(fin,"%d",&n);
for(int i=1;i<=n;i++)
{
fscanf(fin,"%d %d",&x,&y);
b=0;
if(x==1)
{
v=hashuire(y);
for(int j=v;j<1000039;j++)
{
if(a[j]<1||a[j]==y)
{
a[j]=y;
b=1;
break;
}
}
if(b==0)
{
for(int j=0;j<v;j++)
{
if(a[j]<1||a[j]==y)
{
a[j]=y;
b=1;
break;
}
}
}
}
else if(x==2)
{
v=hashuire(y);
for(int j=v;j<1000039;j++)
{
if(a[j]==y)
{
a[j]=-1;
b=1;
break;
}
else if(a[j]==0)
{
b=1;
break;
}
}
if(b==0)
{
for(int j=0;j<v;j++)
{
if(a[j]==y)
{
a[j]=-1;
b=1;
break;
}
else if(a[j]==0)
{
b=1;
break;
}
}
}
}
else
{
v=hashuire(y);
for(int j=v;j<1000039;j++)
{
if(a[j]==y)
{
fprintf(fout,"1\n");
b=1;
break;
}
else if(a[j]==0)
{
fprintf(fout,"0\n");
b=1;
break;
}
}
if(b==0)
{
for(int j=0;j<v;j++)
{
if(a[j]==y)
{
fprintf(fout,"1\n");
b=1;
break;
}
else if(a[j]==0)
{
fprintf(fout,"0\n");
b=1;
break;
}
}
if(b==0)
{
fprintf(fout,"0\n");
}
}
}
}
}