Cod sursa(job #1508483)

Utilizator adu18sptAndrei Mircea adu18spt Data 22 octombrie 2015 16:59:52
Problema Cautare binara Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include <cstdio>
using namespace std;
int n,a,v[20],rez;
int cautbin(int val)
{
    int step=(1<<18), start = 0;
    for(;step;step>>=1)
    {
        int index=step+start;
        if(index>16) continue;
        if(v[index]<=val)
        start=index;
    }
    return start;
}
int main()
{
    freopen("cautbin.in", "r", stdin);
    freopen("cautbin.out", "w", stdout);

    scanf("%d", &n);

    for(int i=1;i<=16;i++)
    {
        v[i]=1<<i;
    }

    for(int i=1;i<=n;i++)
    {
        scanf("%d", &a);

        rez=cautbin(a-1)+1;
        printf("%d\n", rez);
    }

}