Cod sursa(job #2687027)

Utilizator AndreiBOTOBotocan Andrei AndreiBOTO Data 19 decembrie 2020 14:54:27
Problema Cautare binara Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1 kb
#include <fstream>
using namespace std;
ifstream fin ("cautbin.in");
ofstream fout ("cautbin.out");
const int NMAX=1005;
int v[NMAX];
int main()
{
    int n,m,j,x,pas,lim,i,st,dr,val;
    fin>>n;
    lim=1;
    while(2*lim<=n)
    {
        lim=lim*2;
    }
    for(i=1;i<=n;i++)
    fin>>v[i];
    fin>>m;
    while(m--)
    {
        fin>>j>>val;
        st=0;
        if(j==0)
        {
        for(pas=lim;pas>0;pas=pas/2)
            if((st|pas)<=n)
                if(v[st|pas]<=val)
                st=st|pas;
        if(v[st]==val)
        fout<<st<<"\n";
        }
        if(j==1)
        {
        for(pas=lim;pas>0;pas=pas/2)
            if((st|pas)<=n)
                if(v[st|pas]<=val)
                st=st|pas;
        fout<<st<<"\n";
        }
        if(j==2)
        {
           for(pas=lim;pas>0;pas=pas/2)
            if((st|pas)<=n)
                if(v[st|pas]<=val-1)
                st=st|pas;
        fout<<st+1<<"\n";
        }
    }
    return 0;
}