Cod sursa(job #1424779)

Utilizator adystar00Bunea Andrei adystar00 Data 25 aprilie 2015 15:21:32
Problema Cautare binara Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.06 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,ask,pas,x,k;
    fin>>n;
    for(i=1;i<=n;i++)
    fin>>v[i];
    fin>>m;
    i=0;
    for(k=1;k<=m;k++)
    {
        fin>>ask>>x;
        //cout<<ask<<" ";
        i=0;
        pas=1<<16;
        if(ask==0)
        {
            while(pas!=0)
            {
                if(i+pas<=n && v[i+pas]<=x)
                i+=pas;
                pas/=2;
            }
            if(v[i]!=x)
            fout<<"-1";
            else
            fout<<i<<endl;
        }
        if(ask==1)
        {
            while(pas!=0)
            {
                if(i+pas<=n && v[i+pas]<=x)
                i+=pas;
                pas/=2;
            }
            fout<<i<<endl;
        }
        if(ask==2)
        {
            while(pas!=0)
            {
                if(i+pas<=n && v[i+pas]<x)
                i+=pas;
                pas/=2;
            }
            fout<<i+1<<endl;
        }
    }
    return 0;
}