Pagini recente » Cod sursa (job #382628) | Cod sursa (job #907896) | Cod sursa (job #1872374) | Cod sursa (job #2854495) | Cod sursa (job #2067503)
#include <iostream>
#include <stdio.h>
using namespace std;
int v[100001];
int main(){
FILE *fin,*fout;
fin=fopen("cautbin.in","r");
fout=fopen("cautbin.out","w");
int n,x,i,t,pas,m,r;
fscanf(fin,"%d",&n);
for(i=1;i<=n;i++)
fscanf(fin,"%d",&v[i]);
fscanf(fin,"%d",&m);
for(i=1;i<=m;i++){
fscanf(fin,"%d%d",&t,&x);
pas=1<<16;
r=0;
if(t==0){
while(pas!=0){
if(r+pas<=n&&v[r+pas]<=x)
r+=pas;
pas/=2;
}
if(v[r]==x)
fprintf(fout,"%d\n",r);
else
fprintf(fout,"-1\n");
}
if(t==1){
while(pas!=0){
if(r+pas<=n&&v[r+pas]<=x)
r+=pas;
pas/=2;
}
fprintf(fout,"%d\n",r);
}
if(t==2){
while(pas!=0){
if(r+pas<=n&&v[r+pas]<x)
r+=pas;
pas/=2;
}
fprintf(fout,"%d\n",r+1);
}
}
fclose(fin);
fclose(fout);
return 0;
}