Cod sursa(job #2284820)

Utilizator radugnnGone Radu Mihnea radugnn Data 17 noiembrie 2018 16:58:24
Problema Cautare binara Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.08 kb
#include <fstream>
#include <vector>
using namespace std;
ifstream fin ("cautbin.in");
ofstream fout ("cautbin.out");
long long n,i,v[100010],m,tip,x,st,dr,mid;
int main(){
   fin>>n;
   for(i=1;i<=n;i++)
    fin>>v[i];
   fin>>m;
   while(m--){
    fin>>tip>>x;
    if(tip==0){
        st=1;
        dr=n;
        while(st<=dr){
            mid=st+(dr-st)/2;
            if(v[mid]<=x)
                st=mid+1;
            else
                dr=mid-1;
        }
        if(v[dr]==x)
            fout<<dr<<"\n";
        else
            fout<<-1<<"\n";
    }
    if(tip==1){
        st=1;
        dr=n;
        while(st<=dr){
            mid=st+(dr-st)/2;
            if(v[mid]<=x)
                st=mid+1;
            else
                dr=mid-1;
        }
         fout<<dr<<"\n";

    }
    if(tip==2){
        st=1;
        dr=n;
        while(st<=dr){
            mid=st+(dr-st)/2;
            if(v[mid]<x)
                st=mid+1;
            else
                dr=mid-1;
        }
         fout<<st<<"\n";
    }
   }
return 0;
}