Cod sursa(job #1508953)

Utilizator RobertGCARezeanu Robert Gabriel Cristian Alexandru RobertGCA Data 23 octombrie 2015 11:32:04
Problema Cautare binara Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <fstream>
using namespace std;
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
int n, i, v[100001], m, ii, c, x, st, dr;
long long mid;
int main () {
    fin>>n;
    for(i=1;i<=n;i++)
        fin>>v[i];


    fin>>m;
    for(ii=1;ii<=m;ii++) {
        fin>>c>>x;

        st=1;
        dr=n;

        while(st<=dr) {
            mid=(st+dr)/2;

            if(mid<=x)
                st=mid+1;
            else
                dr=mid-1;
        }

        if(c==0 && v[st]==x)
            fout<<st;
        else
            fout<<-1;


        if(c==1)
            fout<<st-1;

        if(c==2)
            fout<<st+1;

        fout<<"\n";
    }

    return 0;
}