Submission #999706

#TimeUsernameProblemLanguageResultExecution timeMemory
999706HasanV11010238Rack (eJOI19_rack)C++17
40 / 100
0 ms348 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define mod 1000000007 int am = 0; ll binpow(ll a, ll b){ ll res = 1; if (b == -1){ return 0; } while (b != 0){ if (b % 2 == 0){ b /= 2; a *= a; if (a >= mod){ am++; } a %= mod; } else{ b -= 1; res *= a; if (res >= mod){ am++; } res %= mod; } } return res; } vector<vector<ll>> ve; ll ans = 1; ll f(ll n, ll k, ll va){ ll val = 0; if (n == 0){ return 0; } am = 0; if (n <= 63){ ll op = pow(2, n - 1); if (k >= op){ val += binpow(2, va); f(n - 1, k - op, va + 1); ans += val; return 0; } } f(n - 1, k, va + 1); ans += val; return 0; } int main(){ ll n, k; cin>>n>>k; k--; f(n, k, 0); printf("%lld", ans); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...