Submission #779550

#TimeUsernameProblemLanguageResultExecution timeMemory
779550vmanzRack (eJOI19_rack)C++14
100 / 100
1 ms300 KiB
#include <iostream>

using namespace std;

const int MOD = 1e9 + 7;

int putere(int n)
{
    long long a = 2;
    int p = 1;
    while (n != 0)
    {
        if (n % 2 != 0)
        {
            p = (long long)p * a % MOD;
        }
        a = (long long)a * a % MOD;
        n /= 2;
    }
    return p;
}

int main()
{
    int n;
    long long k;
    cin >> n >> k;
    k--;
    int rez = 0;
    long long p2 = 1;
    int e2 = 0;
    while (p2 <= k)
    {
        if (k & p2)
        {
            rez += putere(n - 1 - e2);
            rez %= MOD;
        }
        p2 += p2;
        e2++;
    }
    rez = (rez + 1) % MOD;
    cout << rez;
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...