Pagini recente » Cod sursa (job #2273550) | Cod sursa (job #1528054) | Cod sursa (job #1062087) | Cod sursa (job #1775686) | Cod sursa (job #470979)
Cod sursa(job #470979)
# include <cstdio>
const char FIN[] = "cautbin.in", FOU[] = "cautbin.out";
int V[100005] ;
int N, T ;
int main ()
{
freopen ( FIN, "r", stdin ) ;
freopen ( FOU, "w", stdout ) ;
scanf ( "%d", &N ) ;
for (int i = 1; i <= N; ++i) {
scanf ( "%d", &V[i] ) ;
}
int aux, cnt, i ;
for ( aux = 1; aux <= N; aux <<= 1 ) ;
for ( scanf ( "%d", &T ) ; T ; --T ) {
int a, val ;
scanf ( "%d %d", &a, &val ) ;
for (cnt = aux, i = 0; cnt; cnt >>= 1) {
if (i + cnt <= N && ( a != 2 ? V[i + cnt] <= val : V[i + cnt] < val ) ) {
i += cnt;
}
}
if ( a == 2 ) {
printf ( "%d\n", ++i ) ;
} else if ( a == 0 && V[i] == val || a == 1 ) { // verificam daca se gaseste valoarea in sir pentru cazul 0 x
printf ( "%d\n", i ) ;
} else {
printf ( "-1\n" ) ;
}
}
return 0;
}