Pagini recente » Cod sursa (job #1595375) | Cod sursa (job #723928) | Cod sursa (job #1773332) | Cod sursa (job #1097869) | Cod sursa (job #1648703)
#include <stdio.h>
int v[100001];
int main()
{
FILE *fin,*fout;
int n,i,x,m,j,a,b;
fin=fopen("cautbin.in","r");
fout=fopen("cautbin.out","w");
fscanf(fin,"%d", &n);
for (i=1;i<=n;++i)
fscanf(fin,"%d", &v[i]);
for (x=1;x<=n;x<<=1);
fscanf(fin,"%d", &m);
while (m--) {
fscanf(fin,"%d%d", &a, &b);
if (a<2) {
i=0;
for (j=x;j;j>>=1)
if (i+j<=n && v[i+j]<=b)
i=i+j;
if (a==0 && v[i]!=b)
fprintf(fout,"-1\n");
else
fprintf(fout,"%d\n", i);
}
else {
i=n;
for (j=x;j>0;j>>=1)
if (i-j>0 && v[i-j]>=b)
i=i-j;
fprintf(fout,"%d\n", i);
}
}
return 0;
}