Pagini recente » Cod sursa (job #217701) | Cod sursa (job #1347353) | Cod sursa (job #337927) | Cod sursa (job #122363) | Cod sursa (job #2062241)
#include<stdio.h>
using namespace std;
#define L 16
#define MAXN 100001
int v[MAXN];
int main(){
FILE*fin=fopen("cautbin.in", "r");
FILE*fout=fopen("cautbin.out", "w");
int n, i, k, p, x, pas, r;
fscanf(fin, "%d", &n);
for(i=1; i<=n; i++)
fscanf(fin, "%d" , &v[i]);
fscanf(fin, "%d", &k);
for(i=1; i<=k; i++){
fscanf(fin, "%d%d", &p, &x);
pas=1<<L;
r=0;
if(p==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(p==1){
while(pas!=0){
if(r+pas<=n && v[r+pas]<=x)
r+=pas;
pas/=2;
}
fprintf(fout, "%d\n", r);
}
if(p==2){
while(pas!=0){
if(r+pas<=n && v[r+pas]<x)
r+=pas;
pas/=2;
}
fprintf(fout, "%d\n", r+1);
}
}
return 0;
}