Pagini recente » Cod sursa (job #343230) | Istoria paginii runda/antrenament_3 | Istoria paginii runda/td1 | Cod sursa (job #2945121) | Cod sursa (job #2682012)
#include <stdio.h>
#include <stdlib.h>
#define N 100010
int n, arr[N];
/*int solve0(int val){
int i;
for (i=1;i<=n && v[i]<val;++i);
if (v[i]==val)
return i;
return -1;
}*/
int solve0(int val){
int poz = -1;
for (int i = 0;i < n;++ i)
if (arr[i] == val)
poz = i;
return poz;
}
/*int solve1(int val){
int i;
for (i=1;i<=n && v[i]<=val;++i);
return i-1;
}*/
int solve1(int val){
int poz;
for (int i = 0;i < n; ++ i)
if (arr[i] <= val)
poz = i;
return poz;
}
int solve2(int val){
for (int i = 0; i < n; ++i)
if (arr[i] >= val)
return i;
}
int main(){
int i,m,val,tip;
freopen("cautbin.in","r",stdin);
freopen("cautbin.out","w",stdout);
scanf("%d",&n);
for (i=0;i<n;++i)
scanf("%d",&arr[i]);
scanf("%d",&m);
while (m--){
scanf("%d%d",&tip,&val);
if (tip==0) {
int temp = solve0(val);
if (solve0(val) == -1)
printf("%d\n", -1);
else
printf("%d\n", temp + 1);
} else if (tip==1) {
int temp = solve1(val);
if (solve1(val) == -1)
printf("%d\n", -1);
else
printf("%d\n", temp + 1);
}
else {
int temp = solve2(val);
if (solve2(val) == -1)
printf("%d\n", -1);
else
printf("%d\n", temp + 1);
}
}
exit(0);
}