Pagini recente » Cod sursa (job #1337267) | Cod sursa (job #1722139) | Cod sursa (job #360919) | Cod sursa (job #2023539) | Cod sursa (job #2780853)
#include <fstream>
#include <iostream>
#include <algorithm>
using namespace std;
ifstream fin("hashuri.in");
ofstream fout("hashuri.out");
const int NMAX=1000001;
int indx[NMAX];
int n,tsk,a,crt;
void del(int len, int i, int &crt)
{
for (int j=i-len+1; j<=crt; j++)
{
indx[j]=indx[j+len];
}
crt-=len;
}
int bs(int lf, int rg, int x)
{
if (lf>rg) return -1;
int mij=(lf+rg)/2;
if (indx[mij]==x) return mij;
if (indx[mij]<x)
{
return bs(mij+1,rg,x);
}
else
{
return bs(lf,mij-1,x);
}
}
int main()
{
fin>>n;
for (int i=1;i<=n;i++)
{
fin>>tsk>>indx[i];
}
crt=n;
sort(indx,indx+n);
for (int i=1;i<=n;i++)
{
int len=0;
while (indx[i]==indx[i+1])
{
i++;
len++;
}
if (len!=0)
{
del(len,i,crt);
}
len=0;
}
fin.close();
ifstream fin("hashuri.in");
fin>>n;
bool freq[crt+1]={0};
for (int i=1;i<=n;i++)
{
fin >> tsk >> a;
int hash=bs(1,crt,a);
if (tsk == 1)
{
freq[hash]=1;
}
if (tsk == 2)
{
freq[hash]=0;
}
if (tsk == 3)
{
fout << freq[hash] << '\n';
}
}
}