제출 #929497

#제출 시각아이디문제언어결과실행 시간메모리
929497hngrRack (eJOI19_rack)C++14
100 / 100
1 ms600 KiB
#include <iostream> #include <vector> #include <set> #include <cstdio> #include <cmath> #include <algorithm> #include <string> #define int long long const int mod = 1e9+7; const int N = 1e6+7; bool a[N + 5]; using namespace std; int build(int b, int p) { if(p == 1) { return b; } if(p == 0) { return 1; } if(p % 2 == 0) { int tmp = build(b, p >> 1); return tmp * tmp % mod; } else { int tmp = build(b, (p - 1) >> 1); return tmp * tmp % mod * b % mod; } } int32_t main() { int n; int k; int ans = 0; cin >> n >> k; k -= 1; int j = n - 1; while(k) { a[j--] = k % 2; k /= 2; } for(int i = 0; i < n; ++i){ if(a[i]) ans = (ans + build(2, i)) % mod; } ans += 1; ans %= mod; cout << ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...