Cod sursa(job #3339616)

Utilizator BidonTurtitBezdedan Eric BidonTurtit Data 9 februarie 2026 11:10:45
Problema Cautare binara Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.97 kb
#include <iostream>
#include <fstream>
 using namespace std;

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

 int n,t,a[100005];

 void cautbin1(int x,int v)
 {
     int st=1,dr=n;
     while(st<=dr)
     {
         int mij=(st+dr)/2;
         if(a[mij]<=v)
            st=mij+1;
         if(a[mij]>v)
            dr=mij-1;
     }
     if(a[dr]!=v && x==0)
        fout<<"-1"<<"\n";
     else
         fout<<dr<<"\n";
 }

 void cautbin2(int v)
 {
     int st=1,dr=n;
     while(st<=dr)
     {
         int mij=(st+dr)/2;
         if(a[mij]<v)
            st=mij+1;
         if(a[mij]>=v)
            dr=mij-1;
     }
         fout<<st<<"\n";
 }
 int main()
 {
     fin>>n;
     for(int i=1;i<=n;i++)
     {
         fin>>a[i];
     }
     fin>>t;
     for(int i=1;i<=t;i++)
     {
         int x,y;
         fin>>x>>y;
         if(x==2)
         cautbin2(y);
         else
          cautbin1(x,y);
     }
     return 0;
 }