Pagini recente » Cod sursa (job #1151964) | Cod sursa (job #2716042) | Cod sursa (job #3275054) | Cod sursa (job #850252) | Cod sursa (job #376967)
Cod sursa(job #376967)
#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=(in+sf)/2;
if(x<a[mj])
sf=mj-1;
else
if(x>a[mj])
in=mj+1;
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';}
else g<<-1<<'\n';
if(y==1)
{ q-=1;while(a[q]<=x&&q<=n)
q++;
g<<q-1<<'\n';
}
if(y==2)
{while(a[r]>=x)
r--;
g<<r+1<<'\n';
}
}
return 0;
}