Cod sursa(job #3360189)

Utilizator evaspatarelu@gmail.comEva Spatarelu [email protected] Data 9 iulie 2026 21:10:54
Problema Cautare binara Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.34 kb
#include <iostream>
#include <fstream>
using namespace std;

int v[100005];
int main()
{
    ifstream cin("cautbin.in");
    ofstream cout("cautbin.out");
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    int n,m,x,q,st,dr,mij;
    cin>>n;
    for(int i=1;i<=n;i++)
        cin>>v[i];
    cin>>m;
    for(int i=0;i<m;i++)
    {
        cin>>q>>x;
        st=1;
        dr=n;
        if(q==0)
        {
          while(st!=dr)
          {
              mij=(st+dr+1)/2;
              if(v[mij]<=x)
              {
                  st=mij;
              }
              else
                dr=mij-1;
          }
          if(v[st]==x)
          cout<<st<<"\n";
          else
            cout<<"-1"<<"\n";
        }
        else if(q==1)
        {
          while(st!=dr)
          {
              mij=(st+dr+1)/2;
              if(v[mij]<=x)
              {
                  st=mij;
              }
              else
                dr=mij-1;
          }
          cout<<st<<"\n";
        }
        else if(q==2)
        {
          while(st!=dr)
          {
              mij=(st+dr)/2;
              if(v[mij]>=x)
              {
                  dr=mij;
              }
              else
                st=mij+1;
          }
          cout<<st<<"\n";
        }
    }
    return 0;
}