제출 #833626

#제출 시각아이디문제언어결과실행 시간메모리
833626tolbiRack (eJOI19_rack)C++17
40 / 100
1 ms212 KiB
#include <bits/stdc++.h>
using namespace std;
const __int128_t MOD = 1e9+7;
#define tol(bi) (1LL<<((__int128_t)(bi)))
__int128_t solve(__int128_t n, __int128_t k){
	if (n<=70 && k>tol(n-1)){
		return ((__int128_t)solve(n-1,k-tol(n-1))*2ll)%MOD;
	}
	else {
		if (k==1){
			return 1ll;
		}
		if (k%2){
			return solve(n-1,k/2+1);
		}
		else {
			return ((__int128_t)solve(n-1,k/2)+tol(n-1))%MOD;
		}
	}
}
int main(){
	int n,k;
	cin>>n>>k;
	cout<<(long long)solve(n,k)<<endl;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...