This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
int MOD = 1e9 + 7;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(0);
ll n,k;
cin >> n >> k;
ll add = 1;
for(int i = 0;i < n;i++){
add *= 2;
add %= MOD;
}
ll r = 1;
ll add2 = add;
while(r < k){
r *= 2;
if(add2 % 2 == 1){
add2 += MOD;
}
add2/=2;
}
ll res = 1;
while(r > 1){
if(k > r/2){
res += add2;
k -= r/2;
res %= MOD;
}
add2 *= 2;
add2 %= MOD;
r/=2;
}
cout << res << "\n";
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |