Cod sursa(job #1756816)

Utilizator theodor.moroianuTheodor Moroianu theodor.moroianu Data 13 septembrie 2016 17:52:52
Problema Cautare binara Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.4 kb
#include <fstream>
using namespace std;
int v[100010],n,p,q,a;
int c(int x){int p=0,q=(1<<20);while(q>0){if(p+q<=n&&v[p+q]<=x){p+=q;}q/=2;}return p;}
int main()
{ifstream in("cautbin.in");in>>n;for(int i=1;i<=n;i++){in>>v[i];}ofstream out("cautbin.out");int op,w,m;in>>m;while(m--){in>>op>>w;if(op==0){a=c(w);out<<(v[a]==w?a:-1)<<'\n';}else if(op==1){out<<c(w)<<'\n';}else{out<<1+c(w-1)<<'\n';}}return 0;}