Pagini recente » Cod sursa (job #2728893) | Cod sursa (job #1301741) | Cod sursa (job #1211389) | Cod sursa (job #757477) | Cod sursa (job #1448604)
#include <stdio.h>
#include <algorithm>
using namespace std;
const int Dim = 100100;
int N,M,S[Dim],Sol;
int main()
{
int i,Tip,X;
freopen("cautbin.in","r",stdin);
freopen("cautbin.out","w",stdout);
scanf("%d",&N);
for (i = 1;i <= N;i++)
scanf("%d",&S[i]);
scanf("%d",&M);
for (i = 1;i <= M;i++)
{
scanf("%d%d",&Tip,&X);
switch (Tip)
{
case 0:
Sol = upper_bound(S + 1,S + N + 1,X) - S - 1;
if (Sol <= N && Sol >= 1 && S[Sol] == X)
printf("%d\n",Sol);
else
printf("-1\n");
break;
case 1:
Sol = lower_bound(S + 1,S + N + 1,X + 1) - S - 1;
printf("%d\n",Sol);
break;
case 2:
Sol = upper_bound(S + 1,S + N + 1,X - 1) - S;
printf("%d\n",Sol);
}
}
}