Cod sursa(job #2983902)

Utilizator racoltaRacolta Victor racolta Data 23 februarie 2023 11:48:20
Problema Cautare binara Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1 kb
#include <bits/stdc++.h>

using namespace std;
ifstream f("cautbin.in");
ofstream g("cautbin.out");


void cautbin(int x,int n, int v[100005])
{
    int s=-1,l=1,r=n,m;
    while(l<=r)
    {
        m=(l+r)/2;

        if(v[m]>x)
        {
            r=m-1;

        }
        if(v[m]<=x)
        {
            l=m+1;
            s=m;
        }
    }
    g << s << "\n";
}
void cautbin1(int x,int n,int v[100005])
{
    int s=-1,l=1,r=n,m;
    while(l<=r)
    {
        m=(l+r)/2;

        if(v[m]>=x)
        {
            r=m-1;
            s=m;
        }
        if(v[m]<x)
        {
            l=m+1;

        }
    }
    g << s << "\n";
}

int n,v[100005],m;
int main()
{
    f >> n;
    for(int i=1;i<=n;i++)
    {
        f >> v[i];
    }
    f >> m;
    for(int i=1;i<=m;i++)
    {
        int x,y;
        f >> x >> y;
        if(x==0) cautareb(y,n,v);
        if(x==1) cautareb(y,n,v);
        if(x==2) cautareb1(y,n,v);
    }

    return 0;
}