제출 #1280275

#제출 시각아이디문제언어결과실행 시간메모리
1280275akmuhammet_sRack (eJOI19_rack)C++20
100 / 100
17 ms23368 KiB
#include "bits/stdc++.h"
using namespace std;
// #define mod (ll)(1e9+7)
#define ll long long
#define ff first
#define ss second
#define pb push_back
#define N 24
#define maxn 2000005

const ll mod=1000000007;

ll n,k;

void solve(){
	cin>>n>>k;
	ll cur=1,id=1;
	pair<ll,bool> m[n+5];
	ll m1[n+5];
	m1[0]=1;
	m[0]={1ll,0};
	for(ll i=1; i<=n; i++){
		m[i].ff=(m[i-1].ff*2ll);
		m[i].ss=(m[i-1].ss)|(m[i].ff>k);
		m[i].ff=m[i].ff%((ll)1e18);
		m1[i]=(m1[i-1]*2ll)%mod;
	}
	for(ll i=1; i<=n; i++){
		ll x=m[n-i].ff;
		if(m[n-i].ss) continue;
		if(cur+x>k) continue;
		id=(id+m1[i-1])%mod;
		cur=cur+x;
	}
	cout<<id<<'\n';
}
 
int main(){
	// freopen("in.txt","w",stdout);
	// freopen("out.txt","r",stdin);
	ios_base::sync_with_stdio(0); cin.tie(0);
	ll t=1;
	// cin>>t;
	while(t--) solve();
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...