Submission #760314

#TimeUsernameProblemLanguageResultExecution timeMemory
760314DJeniUpRack (eJOI19_rack)C++17
100 / 100
8 ms7860 KiB
#include "bits/stdc++.h"
 
using namespace std;
 
typedef long long ll;
typedef unsigned long long ull;
typedef pair<ll,ll>pairll;
typedef pair<ll,ull>pairull;
typedef pair<ll,pairll>pair3l;
typedef long double ld;
typedef pair<ld,ll>pairld;
 
#define fr first
#define sc second
#define pb push_back
#define endl '\n'
#define N 100007
#define MOD 1000000007
#define INF 1000000000000000007
#define eps 0.0000000001
 
ll n,k,res,d[10*N];

int main(){
    
    cin>>n>>k;
    d[0]=1;
    for(int i=1;i<n;i++){
        d[i]=(d[i-1]*2)%MOD;
    }
    n--;
    while(k>1){
        if(k%2==0)res=(res+d[n])%MOD;
        n--;
        k=(k+1)/2;
    }
    cout<<(res+1)%MOD<<endl;
 
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...