Pagini recente » Cod sursa (job #2411874) | Cod sursa (job #482318) | Cod sursa (job #248071) | Cod sursa (job #1653176) | Cod sursa (job #449976)
Cod sursa(job #449976)
#include<fstream>
#include<iostream>
using namespace std;
int cautbin(unsigned int a[], unsigned int x, unsigned int n)
{
unsigned int st=1,dr=n,mij;
while(st<=dr)
{
mij=(st+dr)/2;
if(a[mij]==x)
return mij;
if(a[mij]>x)
dr=mij-1;
else
st=mij+1;
}
return 0;
}
int main()
{
unsigned int bla,a[100000],n,i,op,nrop,x,j,poz;
ifstream fin("hashuri.in");
ofstream fout("hashuri.out");
fin>>nrop;
n=0;
for(bla=1;bla<=nrop;bla++)
{
while(n==0)
{
fin>>op>>x;
bla++;
if(bla>nrop)
return 0;
if(op==3)
fout<<"0"<<endl;
if(op==1)
{
n++;
a[1]=x;
break;
}
}
fin>>op>>x;
if(op==1)
{
if(x>a[n])
{
a[n+1]=x;
goto aa;
}
if(x<a[1])
{
for(i=n+1;i>1;i--)
a[i]=a[i-1];
a[1]=x;
goto aa;
}
for(i=n;i>0;i--)
if(x>=a[i])
{
for(j=n+1;j>i+1;j--)
a[j]=a[j-1];
a[i+1]=x;
goto aa;
}
aa:;
n++;
}
if(op==2)
{
poz=cautbin(a,x,n);
if(poz)
{
for(i=poz;i<n;i++)
a[i]=a[i+1];
n--;
}
}
if(op==3)
{
poz=cautbin(a,x,n);
if(poz)
fout<<"1"<<endl;
else
fout<<"0"<<endl;
}
}
return 0;
}