Cod sursa(job #2427845)

Utilizator tudosemihaitudose mihai tudosemihai Data 2 iunie 2019 14:16:53
Problema Cautare binara Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.89 kb
#include <bits/stdc++.h>
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("cautbin.in");
ofstream out("cautbin.out");
int v[200001], pos;
int cautbin(int x)
{
    int pw, n;


    for(pw=1<<20; pw>0; pw=pw/2)
        if(pos+pw<=n && v[pos+pw]<=x)
            pos=pos+pw;

    return pos;

    }

int main()
{
    int n, x, sub, i, t;
    in>>n;
    for(i=1; i<=n; i++)
    {
        in>>v[i];
    }
    int M;
    in>>M;

    for(i=1; i<=M; i++)
    {

        in>>t;


    sub=cautbin(x);
    if(t==0 )
    {
        sub=cautbin(x);

        if(v[sub]==x){
            out<<sub<<'/n';}
        else
            out<<-1<<'/n';
        }

    if(t==1)
    {
        sub=cautbin(x);
        out<<sub<<'/n';
    }




    if(t==2)
    {
        sub=cautbin(x-1);
        out<<sub+1<<'/n';

    }


    }
    return 0;
}