Cod sursa(job #3362344)

Utilizator killah_queenTrifa Razvan killah_queen Data 6 august 2026 18:39:53
Problema Cautare binara Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.56 kb
#include <fstream>

using namespace std;
ifstream cin("cautbin.in");
ofstream cout("cautbin.out");
int v[100000];
int main()
{
    int n;
    cin>>n;
    for(int i=0;i<n;i++)
        cin>>v[i];
    int m;
    cin>>m;
    for(int i=0;i<m;i++)
    {
        int x,c;
        cin>>c>>x;
        if(c==0)
        {
            int s=0,d=n-1,mid;
            while(s<=d)
            {
                mid=(s+d)/2;
                if(v[mid]==x)
                    break;
                if(v[mid]>x)
                    d=mid-1;
                else s=mid+1;
            }
            if(v[mid]==x)
                {
                    mid++;
                    while(v[mid]==x)
                        mid++;
                    cout<<mid;
                }
            else cout<<-1;
            cout<<'\n';
        }
        if(c==1)
        {
            int s=0,d=n-1,ans=-1,mid;
            while(s<=d)
            {
                mid=s+(d-s)/2;
                if(v[mid]<=x)
                {
                    ans=mid;
                    s=mid+1;
                }
                else d=mid-1;
            }
            cout<<ans+1<<'\n';
        }
        if(c==2)
        {
            int s=0,d=n-1,ans=-1,mid;
            while(s<=d)
            {
                mid=s+(d-s)/2;
                if(v[mid]>=x)
                {
                    ans=mid;
                    d=mid-1;
                }
                else s=mid+1;
            }
            cout<<ans+1<<'\n';
        }
    }
    return 0;
}