Cod sursa(job #2865608)

Utilizator Botnaru_VictorBotnaru Victor Botnaru_Victor Data 8 martie 2022 23:00:51
Problema Cautare binara Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.87 kb
#include <bits/stdc++.h>
using namespace std;

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

int n,v[100001];
int m,c,x;
int main()
{
    f>>n;
    for(int i=1;i<=n;i++) f>>v[i];
    f>>m;
    {
        int st,dr,mid;bool ok;
        for(int i=0;i<m;i++)
        {
            f>>c>>x;
            st=1;dr=n;mid=(st+dr)/2;
            while(st!=mid)
            {
                if((c==2)?v[mid]>=x:v[mid]>x) dr=mid;
                else st=mid+1;
                mid=(st+dr)/2;
                //cout<<st<<' '<<dr<<' '<<mid<<'\n';
            }
            switch(c)
            {
            case 0:
                g<<(v[mid]==x?mid:-1)<<'\n';
                break;
            case 1:
                g<<mid<<'\n';
                break;
            case 2:
                g<<mid+1<<'\n';
            }
        }
    }
    return 0;
}