Cod sursa(job #477246)

Utilizator barneystinsonBarney barneystinson Data 13 august 2010 22:31:40
Problema Cautare binara Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <cstdio>
#include <algorithm>
using namespace std;

FILE*f=fopen("cautbin.in","r");
FILE*g=fopen("cautbin.out","w");

int N,sir[100005],M;

int main(){
	
	fscanf(f,"%d ",&N);
	for(int i=1;i<=N;i++){
		fscanf(f,"%d ",&sir[i]);
	}
	
	fscanf(f,"%d ",&M);
	int tip,x,ans;
	
	for(;M;M--){
		fscanf(f,"%d %d",&tip,&x);
		
		switch (tip){
			
			case 0: ans = ( upper_bound (sir + 1, sir + N + 1, x) - ( sir + 1 ));
					fprintf(g,"%d\n", sir[ans]==x ? ans : -1 );
					break;
			case 1: fprintf(g,"%d\n",( upper_bound (sir + 1, sir + N + 1, x) - ( sir + 1 )));
					break;
			case 2: fprintf(g,"%d\n",( lower_bound (sir + 1, sir + N + 1, x) - ( sir + 1 ))+1);
					break;
		}
		
	}
	
	fclose(f);
	fclose(g);
	return 0;
}