Cod sursa(job #3361590)

Utilizator SebimunMunteanu Sebastian Sebimun Data 26 iulie 2026 11:57:19
Problema Cautare binara Scor 10
Compilator cpp-32 Status done
Runda Arhiva educationala Marime 1.26 kb
#include <iostream>
#include <fstream>
using namespace std;


int main()
{
    ifstream cin ("cautbin.in");
    ofstream cout ("cautbin.out");
    int n,m,x,cer,mij=0,st=0,dr=0,i,v[100005];
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>v[i];
    }
    cin>>m;
    for(int i=1;i<=m;i++)
    {
        cin>>cer>>x;
        st=1;
        dr=n;
        if(cer==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<<endl;
            else
                cout<<"-1"<<endl;
        }
        if(cer==1)
        {
            while(st!=dr)
            {
               mij=(st+dr+1)/2;
               if(v[mij]<=x)
                st=mij;
               else
                dr=mij-1;
            }


                cout<<st<<endl;



        }
        if(cer==2)
        {
            while(st!=dr)
            {
               mij=(st+dr)/2;
               if(v[mij]>=x)
                dr=mij;
               else
                st=mij+1;
            }

                cout<<st<<endl;

        }
    }

    return 0;
}