Cod sursa(job #2200772)

Utilizator Draganoid345Rusnac Dragos Draganoid345 Data 2 mai 2018 15:46:21
Problema Cautare binara Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <bits/stdc++.h>
#define ll long long
#define ull unsigned long long
using namespace std;

ifstream fin("cautbin.in");
ofstream fout("cautbin.out");

int n,m,A[100002],x,ans,y;

int main() {
	fin>>n;
	for(int i=1; i<=n; i++)
		fin>>A[i];
	fin>>m;
	for(int i=1; i<=m; i++) {
		fin>>x;
		if(x==0){
			fin>>y;
			ans=upper_bound(A+1,A+n+1,y)-A-1;
			if(ans<=n && ans>=1 && A[ans]==y)
				fout<<ans<<"\n";
			else
				fout<<-1<<"\n";
		}
		else
			if(x==1) {
				fin>>y;
				ans=lower_bound(A+1,A+n+1,y+1)-A-1;
				fout<<ans<<"\n";
			}
			else{
				fin>>y;
				ans=upper_bound(A+1,A+n+1,y-1)-A;
				fout<<ans<<"\n";
			}
		
	}


	return 0;
}