Cod sursa(job #2876868)

Utilizator CqkieJules Jules Cqkie Data 23 martie 2022 18:59:41
Problema Cautare binara Scor 40
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.96 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin ("cautbin.in");
ofstream fout ("cautbin.out");
int v[100001];
int main()
{
    int n, m, x, pas, j, q;
    fin>> n;
    for (int i=1;i<=n;i++)
        fin>>v[i];
    fin>>m;
    for (int i=1;i<=m;i++) {
        fin>>q>>x;
        j=1;
        pas=1<<17;
        while (pas>0) {
            if (j+pas<=n && v[j+pas]<=x) {
                j+=pas;
            }
            pas/=2;
        }
        if (q==0) {
            if (v[j]==x)
                fout<<j<<endl;
            else
                fout<<-1<<endl;
        }
        else if (q==1)
            fout<<j<<endl;
        else{
            j=1;
                pas=1<<17;
                while (pas>0) {
                    if (j+pas<=n && v[j+pas]<x) {
                        j+=pas;
                    }
            pas/=2;
            }
            fout<<j+1<<endl;
        }
    }
    return 0;
}