Cod sursa(job #2513309)

Utilizator MerlinTheWizardMelvin Abibula MerlinTheWizard Data 22 decembrie 2019 20:45:58
Problema Cautare binara Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.42 kb
#include<iostream>
#include<fstream>
using namespace std;
int n,x,cerinta,v[100001],m,st=1,dr,pos=-1;
int main(){
ifstream f("cautbin.in");
ofstream g("cautbin.out");
f>>n;
for(int i=1;i<=n;i++)
    f>>v[i];
f>>m;
for(int i=1;i<=m;i++){
    f>>cerinta;
    if(cerinta==0)
    {
        f>>x;
        st=1;
        dr=n;
        pos=-1;
        while(st<=dr){
            int mij=(st+dr)/2;
        if(v[mij]<x){
            st=mij+1;
        }
        if(v[mij]>x){
            dr=mij-1;
        }
        if(v[mij]==x){
           pos=mij;
           st=mij+1;
        }
        }
        g<<pos<<"\n";
    }
    if(cerinta==1)
    {
        f>>x;
        st=1;
        dr=n;
        pos=-1;
        while(st<=dr){
            int mij=(st+dr)/2;
        if(v[mij]<x){
            pos=mij;
            st=mij+1;
        }
        if(v[mij]>x){
            dr=mij-1;
        }
        if(v[mij]==x){
           pos=mij;
           st=mij+1;
        }
        }
        g<<pos<<"\n";
    }
    if(cerinta==2)
    {
        f>>x;
        st=1;
        dr=n;
        pos=-1;
        while(st<=dr){
            int mij=(st+dr)/2;
        if(v[mij]<x){
            st=mij+1;
        }
        if(v[mij]>x){
            pos=mij;
            dr=mij-1;
        }
        if(v[mij]==x){
           pos=mij;
           dr=mij-1;
        }
        }
        g<<pos<<"\n";
    }
}
}