Submission #1219727

#TimeUsernameProblemLanguageResultExecution timeMemory
1219727khomeRack (eJOI19_rack)C++20
100 / 100
0 ms328 KiB
#include <bits/stdc++.h> using namespace std; #define int long long int mod = 1000000007; int binpow(int n, int k) { if (k == 0) return 1; if (k % 2) return n * binpow(n, k - 1) % mod; int x = binpow(n, k / 2); return x * x % mod; } signed main() { int n, k; cin >> n >> k; vector <int> a; a.push_back(0); int N = binpow(2, n); int k2 = (k + 1) / 2 - 1; int x = 1; for (int j = 60; j >= 0; j --) { if ((k2 & (1ll << j)) == 0) continue; int y = binpow(2, j + 2); x += N * binpow(y, mod - 2) % mod; x %= mod; } if (k % 2 == 1) cout << x << endl; else cout << (x + N * binpow(2, mod - 2) % mod) % mod << endl; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...