Pagini recente » Cod sursa (job #2219851) | Cod sursa (job #2064950) | Cod sursa (job #1366947) | Cod sursa (job #1417614) | Cod sursa (job #442291)
Cod sursa(job #442291)
#include<fstream.h>
int main ()
{
ifstream fcin("cautbin.in");
ofstream fcout("cautbin.out");
int n,i,m,v[100001],a,b,y,x,piv;
fcin>>n;
for(i=1;i<=n;i++)
fcin>>v[i];
fcin>>m;
for(i=1;i<=m;i++)
{fcin>>y>>x;
piv=n/2+n%2;a=1;b=n;
while(a<b)
{if(v[piv]<=x)
a=piv;
else b=piv;
if(v[(a+b)/2+(a+b)%2]<=x)piv=(a+b)/2+(a+b)%2;
else break;}
if(y==1)fcout<<piv<<'\n';
else if(y==2){while(v[piv]==x)piv--;
fcout<<piv+1<<'\n';}
else if(v[piv]!=x)fcout<<-1<<'\n';
else fcout<<piv;
}
return 0;
}