Cod sursa(job #2209857)

Utilizator Andrei012Trache Andrei Andrei012 Data 4 iunie 2018 22:04:52
Problema Cautare binara Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.23 kb
#include <iostream>
#include <cstdio>

using namespace std;
int v[100001],n;
int cer1(int x){
    int st=1,dr=n,elem;
    int mij;
    elem=-1;
    while(st<=dr){
        mij=(st+dr)/2;
        if(v[mij]==x){
            st=mij+1;
            elem=mij;
        }
        else{
            if(v[mij]<x)
                st=mij+1;
            else
                dr=mij-1;
        }
    }
    return elem;
};

int cer2(int x){
    int st=1,dr=n,elem;
    int mij;
    elem=-1;
    while(st<=dr){
        mij+(st+dr)/2;
        if(v[mij]>x)
            dr=mij-1;
        else{
            elem=mij;
            st=dr+1;
        }
    }
    return elem;
};

int cer3(int x){
    int st=1,dr=n,elem;
    int mij;
    elem=-1;
    while(st<=dr){
        mij=(st+dr)/2;
        if(v[mij]<x)
            st=mij+1;
        else{
            elem=mij;
            dr=mij-1;
        }
    }
};

int main()
{
    freopen("cautbin.in","r",stdin);
    freopen("cautbin.out","w",stdout);

    int i,x,m,cer;
    cin>>n;
    for(i=1;i<=n;i++){
        cin>>v[i];
    }
    cin>>m;
    for(i=1;i<=m;i++){
        cin>>cer>>x;
        if(cer==0)
            cout<<cer1(x)<<endl;

    }
    return 0;
}