Pagini recente » Cod sursa (job #513350) | Cod sursa (job #1860777) | Cod sursa (job #512177) | Borderou de evaluare (job #702963) | Cod sursa (job #629320)
Cod sursa(job #629320)
#include <stdio.h>
#include <vector>
using namespace std;
FILE *f,*s;
struct numar
{
int x;
int y;
};
numar z;
vector <numar> v1[666015];
int i,j,k,l,m,n;
void Add(int k)
{
m=k%666013;
int bec=0;
for(i=0;i<v1[m].size();i++)
{
if(v1[m][i].x==k)
{
v1[m][i].y++;
bec=1;
}
}
if(bec==0)
{
z.x=k;
z.y=1;
v1[m].push_back(z);
}
}
void Remove(int k)
{
m=k%666013;
int bec=0;
for(i=0;i<v1[m].size();i++)
{
if(v1[m][i].x==k)
{
v1[m][i].y=0;
if(v1[m][i].y==0)
v1[m][i]=v1[m][v1[m].size()-1];
}
}
}
void Find(int k)
{
for(i=0;i<v1[m].size();i++)
{
if(v1[m][i].x==k)
{
fprintf(s,"1\n");
return;
}
}
fprintf(s,"0\n");
}
int main()
{
f=fopen("hashuri.in","r");
s=fopen("hashuri.out","w");
fscanf(f,"%d",&n);
for(j=1;j<=n;j++)
{
int a,b;
fscanf(f,"%d %d",&a,&b);
if(a==1) Add(b);
if(a==2) Remove(b);
if(a==3) Find(b);
}
fclose(s);
return 0;
}