Pagini recente » Cod sursa (job #233601) | Cod sursa (job #1619888) | Cod sursa (job #2400106) | Cod sursa (job #2859008) | Cod sursa (job #629329)
Cod sursa(job #629329)
#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;
for(i=0;i<v1[m].size();i++)
{
if(v1[m][i].x==k)
{
int lim=v1[m].size();
v1[m][i]=v1[m][lim-1];
v1[m].pop_back();
}
}
}
void Find(int k)
{
m=k%666013;
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;
}