Pagini recente » Cod sursa (job #223674) | Cod sursa (job #892756) | Cod sursa (job #2214966) | Cod sursa (job #134474) | Cod sursa (job #1456768)
#include <bits/stdc++.h>
#define MAX 100005
using namespace std;
void f0(int x);
void f1(int x);
void f2(int x);
int n, m, v[MAX], i, x, nr;
int main(){
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", &nr, &x);
switch(nr){
case 0: f0(x); break;
case 1: f1(x); break;
default: f2(x);
}
}
return 0;
}
void f0(int x){
int* p = upper_bound(v, v + n, x);
if(p == v || *(p - 1) != x)
printf("-1\n");
else
printf("%ld\n", p - v);
}
void f1(int x){
int* p = upper_bound(v, v + n, x);
printf("%ld\n", p - v);
}
void f2(int x){
int* p = lower_bound(v, v + n, x);
printf("%ld\n", p - v + 1);
}