Submission #1097238

#TimeUsernameProblemLanguageResultExecution timeMemory
1097238vjudge1Rack (eJOI19_rack)C++11
100 / 100
4 ms584 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; const ll MOD = 1e9 + 7; bitset<(size_t)1e6> bin; ll solve(const int &n, ll k) { if (n == 1) { return k; } bin.reset(); --k; for (int i = n - 1; i >= 0 && k; --i) { if (k&1) { bin.set(i); } k /= 2; } ll ans = 1, base = 1; for (int i = 0; i < n; ++i) { ans = (ans + bin[i] * base)%MOD; base = (base * 2)%MOD; } return ans; } int main() { cin.sync_with_stdio(false); cin.tie(nullptr); int n; ll k; cin >> n >> k; cout << solve(n, k) << "\n"; cout.flush(); return EXIT_SUCCESS; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...