Submission #724941

#TimeUsernameProblemLanguageResultExecution timeMemory
724941MercubytheFirstRack (eJOI19_rack)C++14
40 / 100
1 ms320 KiB
#include<iostream> #include<vector> #include<algorithm> #include<map> #include<set> #include<climits> #include<numeric> #include<queue> #include<unordered_map> #include<unordered_set> #include<bitset> #include<string.h> #include<cmath> #include<stack> #define int uint64_t using namespace std; const int mod = 1e9 + 7; int cdiv(int a, int b){ return (a + b - 1ll) / b; } int bpow(int a, int b){ if(a == 1 or b == 0)return 1; if(a == 0)return 0; // watch out for 0^0 int ans = 1; a %= mod; while(b > 0){ if(b&1)ans = ans * a % mod; a = a * a % mod; b >>= 1; } return ans; } int inv(int x){ return bpow(x, mod-2); } signed main(){ ios_base::sync_with_stdio(false);cin.tie(NULL); int n, k; cin >> n >> k; int ans = 1, add = bpow(2, n-1), kcpy = k, inv2 = inv(2); while(k > 1){ if(!(k&1))ans += add; add = add * inv2 % mod; k = cdiv(k, 2); } cout << ans << endl; }

Compilation message (stderr)

rack.cpp: In function 'int main()':
rack.cpp:47:9: warning: unused variable 'kcpy' [-Wunused-variable]
   47 |         kcpy = k,
      |         ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...