Submission #951823

#TimeUsernameProblemLanguageResultExecution timeMemory
951823EJIC_B_KEDAXRack (eJOI19_rack)C++17
100 / 100
6 ms4188 KiB
#include <bits/stdc++.h> #include <random> #ifndef LOCAL //#pragma GCC optimize("O3") //#pragma GCC optimize("Ofast") //#pragma GCC optimize("unroll-loops") #pragma GCC target("avx,avx2,bmi,bmi2,popcnt,lzcnt") #endif using namespace std; typedef long long ll; typedef double dd; typedef long double ld; typedef unsigned int uii; #define x first #define y second #define all(x) x.begin(), x.end() #define rall(x) x.rbegin(), x.rend() void solve(); mt19937_64 mt(1); int32_t main() { #ifdef LOCAL freopen("input.in", "r", stdin); freopen("output.out", "w", stdout); #else ios::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); //freopen("amusing.in", "r", stdin); //freopen("amusing.out", "w", stdout); #endif cout << fixed << setprecision(30); int tests = 1; //cin >> tests; while (tests--) { solve(); } } const int mod = 1000000007; void solve() { ll n, k; cin >> n >> k; vector<int> i2(n); i2[0] = 1; for (int i = 1; i < n; i++) { i2[i] = (i2[i - 1] * 2) % mod; } int ans = 1; for (int i = n - 1; i >= 0; i--) { if (!(k % 2)) { ans += i2[i]; ans %= mod; } k = (k + 1) / 2; } cout << ans << '\n'; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...