Cod sursa(job #2925729)

Utilizator Stormtrooper-007Vartic Rihard Stormtrooper-007 Data 15 octombrie 2022 22:36:19
Problema Cautare binara Scor 60
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.18 kb
#include <bits/stdc++.h>

using namespace std;

int main()
{
    ifstream cin("cautbin.in");
    ofstream cout("cautbin.out");
    int n,p;
    cin>>n;
    vector<int>v(n);
    for(int i=0;i<n;i++)
    {
        cin>>v[i];
    }
    sort(v.begin(),v.end());
    cin>>p;
    while(p--)
    {int l=0,r=n;
    int a,b;
    cin>>a>>b;
        if(a==0)
        {
            while(l<r-1)
            {
                int mij=(l+r)/2;
                if(v[mij]<=b)
                l=mij;
                else
                r=mij;
            }
            if(v[l]!=b)
            l=-2;
            cout<<l+1;
        }
        if(a==1)
        {
            while(l<r-1)
            {
                int mij=(l+r)/2;
                if(v[mij]<=b)
                l=mij;
                else
                r=mij;
            }
            cout<<l+1;
        }
        if(a==2)
        {
            while(l<r-1)
            {
                int mij=(l+r)/2;
                if(v[mij]<b)
                l=mij;
                else
                r=mij;
            }
            cout<<r+1;
        }
        cout<<'\n';
    }
    return 0;
}