Cod sursa(job #1641131)

Utilizator blackmanta45Andrei blackmanta45 Data 8 martie 2016 21:09:17
Problema Cautare binara Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.13 kb
#include <fstream>
using namespace std;
ifstream fin ("cautbin.in");
ofstream fout ("cautbin.out");
int n,m,p,st,dr,mid,i,v[100001];
int main () {
    fin >>n;
    for (i=1;i<=n;i++){
        fin>>v[i];
    }
    while(fin>>m){
    fin>>p;
        if(m==0){
            st=1;
            dr=n;
            while (st<=dr){
                mid=(st+dr)/2;
                if(v[mid]==p){
                    for(i=mid;i<=n;i++){
                        if(v[i]!=v[i+1])
                            fout<<i;
                            break;
                    }
                    break;
                }
                else
                    if(p<v[mid])
                        dr=mid-1;
                    else
                        st=mid+1;
            }
        }
        else
            if(m==1){
                st=1;
                dr=n;
                while (st<=dr){
                    mid=(st+dr)/2;
                    if(p<v[mid])
                        dr=mid-1;
                    else
                        st=mid+1;
                }
                fout<<dr;
            }
    }
}