Cod sursa(job #3164840)

Utilizator BucsMateMate Bucs BucsMate Data 4 noiembrie 2023 14:08:21
Problema Cautare binara Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.29 kb
#include <iostream>
#include <fstream>
using namespace std;

int main()
{
    ifstream input("cautbin.in");
    ofstream output("cautbin.out");
    int a[100000], N, i, x, y, bal, jobb, kozep;
    input>>N;

    for(i=0; i<N; i++){
        input>>a[i];
    }
    input>>y;

    while(input>>y){
        input>>x;
        bal=0;
        jobb=N-1;
        if(y==0){
            while(bal<jobb){
                kozep=(bal+jobb+1)/2;
                if(a[kozep]<=x){
                    bal=kozep;
                }else{
                    jobb=kozep-1;
                }
            }
            if (a[bal]==x) output<<bal+1;
            else output<<-1;
            output<<endl;
        } else if(y==1){
            while(bal<jobb){
                kozep=(bal+jobb+1)/2;
                if(a[kozep]<=x){
                    bal=kozep;
                }else{
                    jobb=kozep-1;
                }
            }
            output<<bal+1<<endl;
        } else if(y==2){
            while(bal<jobb){
                kozep=(bal+jobb)/2;
                if(a[kozep]<x){
                    bal=kozep+1;
                }else{
                    jobb=kozep;
                }
            }
            output<<bal+1<<endl;
        }
    }

    return 0;
}