Cod sursa(job #2162386)

Utilizator andreiutu111Noroc Andrei Mihail andreiutu111 Data 12 martie 2018 10:35:28
Problema Cautare binara Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.97 kb
#include<bits/stdc++.h>
using namespace std;
ifstream f("cautbin.in");
ofstream g("cautbin.out");
int N,M,tip,x,v[100001];
int main()
{
    f>>N;
    for(int i=1;i<=N;++i)f>>v[i];
    f>>M;
    while(M--){
        f>>tip>>x;
        if(tip==0){
            int st=1,dr=N,mij;
            while(st<=dr){
                mij=(st+dr)/2;
                if(v[mij]>x)dr=mij-1;
                else st=mij+1;
            }
            if(v[dr]==x)g<<dr<<'\n';
            else g<<-1<<'\n';
        }else if(tip==1){
            int st=1,dr=N,mij;
            while(st<=dr){
                mij=(st+dr)/2;
                if(v[mij]>x)dr=mij-1;
                else st=mij+1;
            }
            g<<dr<<'\n';
        }else{
            int st=1,dr=N,mij;
            while(st<=dr){
                mij=(st+dr)/2;
                if(v[mij]>=x)dr=mij-1;
                else st=mij+1;
            }
            g<<st<<'\n';
        }
    }
    return 0;
}