Cod sursa(job #2322560)

Utilizator ctrohinCristina Trohin ctrohin Data 17 ianuarie 2019 21:29:40
Problema Cautare binara Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.76 kb
#include <bits/stdc++.h>
using namespace std;
int n, a[100001],i, t, u, v, st, dr, mij; 
int main() {
	ifstream cin("cautbin.in");
	ofstream cout("cautbin.out");
	cin >> n;
	for (i=1; i<=n; i++)
	cin >> a[i];
	cin >> t;
	for (i=1; i<=t; i++){
			cin >> u >> v; 
			if (u==0) {
			st=1; dr=n; 
			while (st<=dr) {
				mij=st+(dr-st)/2;
				if (v>=a[mij]) st=mij+1; else dr=mij-1;
			}
			if (a[st-1]==v) cout << st-1;  else cout << -1;
		}
		    if (u==1){
			st=1; dr=n; 
			while (st<=dr) {
				mij=st+(dr-st)/2;
				if (v>=a[mij]) st=mij+1; else dr=mij-1;
			}
			cout << dr; 
		}
		   if (u==2) {
			st=1; dr=n; 
			while (st<=dr) {
				mij=st+(dr-st)/2;
				if (v>=a[mij]) st=mij+1; else dr=mij-1;
			}
			cout << dr+1;}
			}
	return 0;
}