Cod sursa(job #2610117)

Utilizator buhaidarius@gmail.comBuhai Darius [email protected] Data 4 mai 2020 15:04:46
Problema Cautare binara Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.94 kb
#include <fstream>
#include <vector>

using namespace std;

vector<int> v;

int caut_bin(int x, int type){
    int st = 0, dr = v.size()-1, m;
    int pos = -2;
    while(st<=dr){
        m = (st+dr)/2;
        if(type==0){
            if(v[m]==x) pos = m;
            if(v[m]>x) dr = m-1;
            else st = m+1;
            continue;
        }
        if(type==1){
            if(v[m]<=x) pos = m;
            if(v[m]>x) dr = m-1;
            else st = m+1;
            continue;
        }
        if(type==2){
            if(v[m]>=x) pos = m;
            if(v[m]>=x) dr = m-1;
            else st = m+1;
            continue;
        }
    }
    return pos;
}

int main() {

    ifstream fin("cautbin.in");
    ofstream fout("cautbin.out");

    int n, x, y, i;

    fin>>n;
    for(i=0;i<n;i++){
        fin>>x;
        v.push_back(x);
    }
    fin>>n;
    for(i=0;i<n;i++){
        fin>>x>>y;
        fout<<caut_bin(y, x)+1<<'\n';
    }

    return 0;
}