Pagini recente » Cod sursa (job #2183933) | Cod sursa (job #2450390) | Cod sursa (job #2548065) | Cod sursa (job #1584859) | Cod sursa (job #376942)
Cod sursa(job #376942)
#include<fstream.h>
ifstream f("cautbin.in");
ofstream g("cautbin.out");
#define max 100001
int n,m,a[max];
int cautbin(int x)
{int in=1,sf=n,mj;
while(in<=sf)
{mj=(n+1)/2;
if(x<a[mj])
sf=mj;
else
if(x>a[mj])
in=mj;
else return mj;
}
return mj;
}
int main()
{int i,y,x,q,r,t;
f>>n;
for(i=1;i<=n;i++)
f>>a[i];
f>>m;
for(i=1;i<=m;i++)
{f>>y>>x;
q=r=t=cautbin(x);
if(y==0)
{if(a[t]==x)
while(a[t]==x&&t<=n)
t++;
g<<t-1<<'\n';
}
if(y==1)
{ q-=1;while(a[q]<=x&&q<=n)
q++;
g<<q-1<<'\n';
}
if(y==2)
{r+=1;while(a[r]>=x)
r--;
g<<r+1<<'\n';
}
}
return 0;
}