Submission #894429

#TimeUsernameProblemLanguageResultExecution timeMemory
894429vjudge1Rack (eJOI19_rack)C++17
100 / 100
5 ms8080 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define pb push_back #define sz(x) (int)x.size() #define all(x) x.begin(), x.end() #define pii pair<int, int> #define ppb pop_back() const int N = (int)1e5 + 5; const ll mod = (int)1e9 + 7; const ll inf = (int)(1e9) + 100; ll binpow(ll a, ll n) { if (n == 0) return 1; if (n == 1) return a; int v = binpow(a, n / 2); if (n & 1) return (((v * v) % mod) * a) % mod; return (v * v) % mod; } ll add(ll a, ll b) { return ((a + b) % mod); } ll p[(int)1e6 + 5]; void solve() { ll n, k; cin >> n >> k; ll ans = 1; p[0] = 1; for (int i = 1; i <= n; i++) { p[i] = (p[i - 1] * 2) % mod; } ll l = n - 1; while (k > 1) { if (k & 1) { k = (k / 2) + 1; } else { k /= 2; ans = add(ans, p[l]); } l--; } cout << ans; } signed main() { ios_base::sync_with_stdio(0), cin.tie(0); int T = 1; //cin >> T; while (T--) solve(); return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...