Cod sursa(job #2943886)

Utilizator Adrian891TUDOR ADRIAN Adrian891 Data 21 noiembrie 2022 19:15:08
Problema Cautare binara Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.08 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
long long int st,dr,v[100001],mij,m,n,i,intreb,x,z;
int main()
{fin>>n;
 for(i=1;i<=n;i++) fin>>v[i];
 fin>>m;
 for(z=1;z<=m;z++)
 {


 fin>>intreb>>x;
 if(intreb==0)
 {
     if(x<v[1]||x>v[n]) fout<<-1<<endl;
     else
     {
         st=1,dr=n;
         while(st<=dr)
         {
             mij=(st+dr)/2;
             if(v[mij]<=x) st=mij+1;
             else dr=mij-1;
         }
         if(v[dr]==x) fout<<dr<<endl;
         else fout<<-1<<endl;
     }
 }
  else if(intreb==1)

     {
         st=1,dr=n;
         while(st<=dr)
         {
             mij=(st+dr)/2;
             if(v[mij]<=x) st=mij+1;
             else dr=mij-1;
         }
       fout<<dr<<endl;
     }
      else
      {
          {
         st=1,dr=n;
         while(st<=dr)
         {
             mij=(st+dr)/2;
             if(v[mij]<x) st=mij+1;
             else dr=mij-1;
         }
       fout<<st<<endl;
     }
      }

}
 return 0;
}