제출 #656146

#제출 시각아이디문제언어결과실행 시간메모리
656146borisAngelovRack (eJOI19_rack)C++17
100 / 100
1 ms424 KiB
#include <iostream> #include <vector> using namespace std; const long long mod = 1000000007; long long fastPow(long long a, long long b) { if (b == 0) return 1LL; if (b % 2 == 0) { long long result = fastPow(a, b / 2); return (result * result) % mod; } return (a * fastPow(a, b - 1)) % mod; } int main() { int n; cin >> n; long long k; cin >> k; vector<bool> digits(n, false); int idx = n; k--; while (k != 0) { digits[--idx] = k % 2; k = k / 2; } long long ans = 0; for (int i = 0; i < n; i++) { if (digits[i] == 1) { ans += fastPow(2, i); if (ans >= mod) ans -= mod; } } ans++; ans %= mod; cout << ans << endl; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...