Nu aveti permisiuni pentru a descarca fisierul grader_test3.in
Cod sursa(job #502420)
| Utilizator | Data | 19 noiembrie 2010 13:22:37 | |
|---|---|---|---|
| Problema | Cautare binara | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | biro_daily_quest_no.2 | Marime | 0.73 kb |
#include <algorithm>
using namespace std ;
int v[100001] ;
int main() {
freopen ("cautbin.in","r",stdin) ;
freopen ("cautbin.out","w",stdout) ;
int a , b , n , m ;
scanf ("%d" , &n) ;
for (int i=1 ; i<=n ; ++i) {
scanf ("%d" , &v[i]) ;
}
scanf ("%d" , &m) ;
for (int i=1 ; i<=m;++i) {
scanf ("%d%d" , &a , &b ) ;
if (a==0) {
int x=upper_bound(v+1,v+n+1,b)-v-1;
if (x>=1 && x<=n && v[x]==b) {
printf ("%d\n" , x) ;
}
else printf ("-1\n") ;
}
if (a==1) {
int x=lower_bound(v+1,v+n+1,b+1)-v-1;
printf ("%d\n" , x) ;
}
if (a==2) {
int x=upper_bound(v+1,v+n+1,b-1)-v;
printf ("%d\n" , x) ;
}
}
return 0;
}
