Submission #1100865

#TimeUsernameProblemLanguageResultExecution timeMemory
1100865vincentbucourt1Rack (eJOI19_rack)C++14
40 / 100
1 ms516 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long

const int MOD = 1e9 + 7;

int N, numIter;

int ans = 0;

long long modular(long long base, long long exp, int mod) {
   long long res = 1;
   while (exp > 0) {
      if (exp % 2 == 1)
         res= (res * base) % mod;
      exp = exp >> 1;
      base = (base * base) % mod;
   }
   return res;
}

signed main() {
    cin >> N >> numIter;

    numIter--;
    for (int i = 0; i <= 20; i++) {
        bool filled = (numIter & (1 << i));
        ans += (modular(2, N - i - 1, MOD)) * filled;
        ans %= MOD;
    }

    cout << ans+1 << "\n";
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...