Cod sursa(job #3343725)

Utilizator darius_eranDelca Darius darius_eran Data 28 februarie 2026 12:34:42
Problema Cautare binara Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.67 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
int v[1000001];
int main()
{
	int n,m,a,x,i;
	fin>>n;
	for(i=1; i<=n; i++)
		fin>>v[i];

	fin>>m;
	for(i=1; i<=m; i++) {
		fin>>a>>x;
		if(a==0) {
			auto *val=upper_bound(v+1,v+n+1,x);
			auto val1=*lower_bound(v+1,v+n+1,x);
			if(val1==x)
			fout<<val-v-1<<endl;
			else
			fout<<-1<<endl;
		}
		else if(a==1) {
			auto val1=*lower_bound(v+1,v+n+1,x);
            auto *val2=upper_bound(v+1,v+n+1,val1);
			fout<<val2-v-1<<endl;
		}
		else{
		   auto val1=*lower_bound(v+1,v+n+1,x);
            auto *val2=lower_bound(v+1,v+n+1,val1);
			fout<<val2-v<<endl;

		}
	}
	return 0;
}