Submission #19515

# Submission time Handle Problem Language Result Execution time Memory
19515 2016-02-24T14:58:51 Z sung927 Α (kriii4_P1) C++
0 / 100
0 ms 1280 KB
#include<stdio.h>
#include<math.h>

 unsigned long long A;
 unsigned long long perA;
 unsigned long long X;
 unsigned long long arr[66];
 short Tr[66];
    int max;
 int ans = 1;

void finish(int y, int dex)
{

    if((y%2)) Tr[dex] = 1;

    if(y/2>=1) finish(y/2, dex+1);
}

void solve(int k)
{
    arr[k] = (arr[k-1]*arr[k-1]) % 1000000007;
    if(pow(2,k)<=X) solve(k+1);

    else {max = k; finish(X, 1);}

}

int main ()
{
    scanf("%lld", &A);
    scanf("%lld", &X);


    perA = A % 1000000007;
    arr[1] = perA;

    solve(2);

    for( int i=0 ;i<=max; i++)
        if(Tr[i]) {ans= (ans*arr[i]) %1000000007;}

    printf("%d", ans);

    }
# Verdict Execution time Memory Grader output
1 Incorrect 0 ms 1280 KB Output isn't correct
2 Halted 0 ms 0 KB -