제출 #464354

#제출 시각아이디문제언어결과실행 시간메모리
464354tengiz05Rack (eJOI19_rack)C++17
40 / 100
1 ms204 KiB
#include <bits/stdc++.h> using i64 = long long; constexpr int P = 1000000007; constexpr i64 inf = 2e18; int norm(int x) { if (x < 0) x += P; if (x >= P) x += P; return x; } int main() { std::ios::sync_with_stdio(false); std::cin.tie(nullptr); i64 n, k; std::cin >> n >> k; k--; std::vector<i64> mpw(n + 1, 1), pw(n + 1, 1); for (int i = 1; i <= n; i++) { mpw[i] = mpw[i - 1] * 2 % P; pw[i] = std::min(pw[i - 1] * 2, inf); } int ans = 0; for (int i = 0; i < n; i++) { if (k >= pw[n - i - 1]) { ans = norm(ans + mpw[i]); k -= pw[n - i - 1]; } } std::cout << norm(ans + 1) << "\n"; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...