Pagini recente » Cod sursa (job #1053450) | Cod sursa (job #1771495) | Cod sursa (job #2968494) | Cod sursa (job #2292640) | Cod sursa (job #2781168)
#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 indx2[NMAX];
bool freq[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 (indx2[mij]==x) return mij;
if (indx2[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+1,indx+n+1);
int len = 0;
for (int i=1;i<n;i++)
{
if( indx[i]==indx[i+1] ){
len++;
indx2[len] = indx[i];
}
while (indx[i]==indx[i+1])
{
i++;
}
}
fin.close();
ifstream fin("hashuri.in");
fin>>n;
for (int i=1;i<=n;i++)
{
fin >> tsk >> a;
int hash=bs(1,len,a);
if (tsk == 1)
{
freq[hash]=1;
}
if (tsk == 2)
{
freq[hash]=0;
}
if (tsk == 3)
{
fout << freq[hash] << '\n';
}
}
}