Cod sursa(job #665176)

Utilizator wink.itsgoneDragusanu Ana wink.itsgone Data 21 ianuarie 2012 18:45:47
Problema Cautare binara Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include <cstdio>
#include <algorithm>
using namespace std;
int V[100100];
int main () 
{
 int N, M, x, y, i, t;
 freopen("cautbin.in", "rt", stdin);
 freopen("cautbin.out", "wt", stdout);
 scanf("%d", &N);
 for (i=1;i<=N;++i) scanf("%d", &V[i]);
 sort(V + 1, V + N + 1);
 scanf("%d", &M);
 for (i = 1; i <= M; ++ i) {
 scanf("%d%d", &t, &y);
 if (t == 0) 
	{
	 x = upper_bound(V+1,V+N+1,y)-V-1;
	 if (x <= N && x >= 1 && V[x] == y) printf("%d\n", x);
		else printf("-1\n");
	}
	else if (t == 1) 
		{
		 x = lower_bound(V+1,V+N+1,y+1)-V-1;
		 printf("%d\n", x);
        } 
		else
		{
		 x = upper_bound(V+1,V+N+1,y-1)-V;
		 printf("%d\n", x);
        }
    }
 return 0;
}