Cod sursa(job #1424817)

Utilizator Edwuard99Diaconescu Vlad Edwuard99 Data 25 aprilie 2015 15:44:56
Problema Cautare binara Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 1.04 kb
#include <fstream>

using namespace std;

int v[100002];

int main()
{
    ifstream f ("cautbin.in");
    ofstream g ("cautbin.out");

    int i,pas,n,j,k,m,nr,l=1,x;

    f>>n;

    for(i=0; i<n; i++){
        f>>v[i];
    }
    f>>x;
    while(l<=n)
        l*=2;
    pas=l;
    for(i=0; i<x; i++){
        pas=l;
        f>>m;
        f>>nr;
        j=0;
        if(m==0){
            while(pas!=0){
                if(j+pas<n && v[j+pas]<=nr && v[j+pas])
                    j+=pas;
                pas>>=1;
            }
            if(v[j]!=nr)
                j=-1;
            else
                j++;
        }
        else if(m==1){
            while(pas!=0){
                if(j+pas<n && v[j+pas]<=nr && v[j+pas])
                    j+=pas;
                pas>>=1;
            }
            j++;

        }
        else if(m==2){
            while(pas!=0){
                if(j+pas<=n && v[j+pas]<nr && v[j+pas])
                    j+=pas;
                pas>>=1;
            }
            j+=2;
        }
        g<<j<<"\n";
    }


    return 0;
}