Quantcast
Channel: CodeChef Discuss - latest questions
Viewing all articles
Browse latest Browse all 39796

getting wrong answer for Dragon Scroll

$
0
0
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>


inline int get_int()
{
    int n=0;
    char c=0;
    while(c<33)
        c=getchar_unlocked();
    while(c>='0'&&c<='9')
    {
        n=(n<<3)+(n<<1)+(c-'0');
        c=getchar_unlocked();
    }
    return n;
}
int main(int argc, char const *argv[])
{
    int t,n,a,b,number,totalones,i,quint;
    int chambernoa,chambernob, oneina,oneinb,logproblem1,logproblem2;
    scanf("%d", &t);
    while(t--)
    {
        number=0;
        n=get_int();
        a=get_int();
        b=get_int();
        if (a==0)
            chambernoa=1;
        else
            chambernoa=log2(a)+1;
        if (b==0)
            chambernob=1;
        else
            chambernob=log2(b)+1;
        logproblem1=log2(pow(2,chambernoa)-a);
        logproblem2=log2(pow(2,chambernob)-b);
        oneina=chambernoa-logproblem1;
        oneinb=chambernob-logproblem2;
        if ((oneinb+oneina)>n)
            totalones=(2*n)-oneina-oneinb;
        else
            totalones=oneina+oneinb;

        if (totalones>0)
            number=pow(2,--n);
        for (i=1;i<totalones;i++)
            number+=pow(2,--n);
        printf("%d\n", number);
    }
    return 0;
}

Viewing all articles
Browse latest Browse all 39796

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>