Cod sursa(job #1424791)

Utilizator adystar00Bunea Andrei adystar00 Data 25 aprilie 2015 15:28:26
Problema Cautare binara Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.92 kb
#include <iostream>
#include <fstream>
using namespace std;
int v[100001];
int main()
{
    ifstream fin ("cautbin.in");
    ofstream fout ("cautbin.out");
    int i,m,n,nr,tip,j,pas,x,k;
    fin>>n;
    for(i=1;i<=n;i++)
    fin>>v[i];
    fin>>m;
    i=0;
    for(j=1;j<=m;j++)
    {
        fin>>tip>>x;
        //cout<<tip<<" ";
        i=0;
        pas=1<<16;
        if(tip==0 || tip==1)
        {
            while(pas!=0)
            {
                if(i+pas<=n && v[i+pas]<=x)
                i+=pas;
                pas/=2;
                cout<<i<<endl;
            }
            //cout<<v[i]<<" "<<i<<endl;
        if(tip==0 && v[i]!=x)
        fout<<"-1"<<"\n";
        else
        fout<<i<<"\n";
        }
        else{
        while(pas!=0)
            {
                if(i+pas<=n && v[i+pas]<x)
                i+=pas;
                pas/=2;
            }
            fout<<i+1<<"\n";
        }
    }
    return 0;
}