Pagini recente » Cod sursa (job #2984528) | Cod sursa (job #544144) | Cod sursa (job #2831154) | Cod sursa (job #385947) | Cod sursa (job #2059662)
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#define N 100005
int v[N];
int bsearch01 (int l, int r, int key) {
int m;
while (l <= r) {
m = (l + r) / 2;
if (v[m] <= key)
l = m + 1;
else
r = m - 1;
}
m = (l + r) / 2;
if (v[m] > key) m --;
return m+1;
}
int bsearch2 (int l, int r, int key) {
int m;
while (l <= r) {
m = (l + r) / 2;
if (v[m] < key)
l = m + 1;
else
r = m - 1;
}
m = (l + r) / 2;
if (v[m] < key) m ++;
return m+1;
}
int main(){
int i, n, m, type, val;
freopen("cautabin.in", "r", stdin);
freopen("cautabin.out", "w", stdout);
scanf("%d", &n);
for(i = 0; i < n; ++i)
scanf("%d", &v[i]);
scanf("%d", &m);
for(i=0; i < m; ++i){
scanf("%d%d", &type, &val);
if(type != 2)
printf("%d\n", bsearch01(0, n, val));
else
printf("%d\n", bsearch2(0, n, val));
}
}