Pagini recente » Cod sursa (job #487004) | Cod sursa (job #1779115) | Cod sursa (job #9735) | Cod sursa (job #2671964) | Cod sursa (job #714709)
Cod sursa(job #714709)
#include <cstdio>
#include <algorithm>
#define nMax 100005
using namespace std;
int n;
int a[nMax];
int main()
{
freopen ("cautbin.in", "r", stdin);
freopen ("cautbin.out", "w", stdout);
scanf ("%d", &n);
for (int i = 0; i < n; ++ i){
scanf ("%d", &a[i]);
}
int m;
scanf ("%d", &m);
while (m --){
int caz;
int x;
scanf ("%d %d", &caz, &x);
int afis;
switch (caz){
case 0:
afis = upper_bound (a, a + n, x) - a;
if (afis > 0 && a[afis - 1] == x){
printf ("%d\n", afis );
}else{
printf ("-1\n");
}
break;
case 2:
afis = lower_bound (a, a + n, x) - a;
printf ("%d\n", afis + 1);
break;
case 1:
afis = upper_bound (a, a + n, x) - a ;
if (a[afis - 1] == x){
afis --;
}
printf ("%d\n", afis + 1);
break;
}
}
return 0;
}