Submission #414489

#TimeUsernameProblemLanguageResultExecution timeMemory
414489aris12345678Rack (eJOI19_rack)C++14
100 / 100
9 ms8120 KiB
#include <bits/stdc++.h>
using namespace std;

const int mxN = 1e6+5;
const int mod = 1e9+7;
long long pow_2[mxN];

int main() {
    int n;
    long long k;
    scanf("%d %lld", &n, &k);
    pow_2[0] = 1LL;
    for(int i = 1; i < mxN; i++) {
        pow_2[i] = 2*pow_2[i-1];
        pow_2[i] %= mod;
    }
    long long pos = 1LL;
    for(int i = n-1; i >= 0; i--) {
        if((k&1LL) == 0LL) {
            pos += pow_2[i];
            pos %= mod;
        }
        k += 1LL;
        k >>= 1LL;
    }
    printf("%lld\n", pos);
    return 0;
}

Compilation message (stderr)

rack.cpp: In function 'int main()':
rack.cpp:11:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   11 |     scanf("%d %lld", &n, &k);
      |     ~~~~~^~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...