Cod sursa(job #2919600)

Utilizator TheNamelessOneCiociia Marius Andrei TheNamelessOne Data 18 august 2022 13:50:32
Problema Cautare binara Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1 kb
#include <fstream>

using namespace std;

ifstream cin ("cautbin.in");
ofstream cout ("cautbin.out");

int n,m,v[100001];

void cb0 (int x)
{
    int st=1,dr=n;
    bool ok=1;
    while (st<=dr){
        int mid=(st+dr)/2;
        if (x<v[mid]) dr=mid-1;
        else st=mid+1;
    }
    if (v[dr]==x) cout<<dr<<"\n";
    else cout<<-1<<"\n";
}

void cb1 (int x)
{
    int st=1,dr=n;
    bool ok=1;
    while (st<=dr){
        int mid=(st+dr)/2;
        if (x<v[mid]) dr=mid-1;
        else st=mid+1;
    }
    cout<<dr<<"\n";
}

void cb2 (int x)
{
    int st=1,dr=n;
    bool ok=1;
    while (st<=dr){
        int mid=(st+dr)/2;
        if (x>v[mid]) st=mid+1;
        else dr=mid-1;
    }
    cout<<st<<"\n";
}

int main()
{
    cin>>n;
    for (int i=1; i<=n; ++i) cin>>v[i];
    cin>>m;
    for (int i=1; i<=m; ++i)
    {
        int c,a;
        cin>>c>>a;
        if (c==0) cb0(a);
        else if (c==1) cb1(a);
        else cb2(a);
    }

    return 0;
}