Submission #1097534

#TimeUsernameProblemLanguageResultExecution timeMemory
1097534vjudge1Rack (eJOI19_rack)C++17
100 / 100
9 ms8028 KiB
#include<bits/stdc++.h> using namespace std; #define forsn(i,s,n) for(int i=int(s);i<int(n);i++) #define forn(i,n) forsn(i,0,n) #define dforsn(i,s,n) for(int i=int(n)-1;i>=int(s);i--) #define dforn(i,n) dforsn(i,0,n) #define sz(x) int(x.size()) #define all(x) begin(x),end(x) #define pb push_back typedef long long ll; typedef vector<int> vi; typedef vector<ll> vll; typedef pair<int,int> ii; const int MOD=1e9+7; int n; vll pw; ll solve(int lvl, ll cnt){ if(lvl==n) return 1LL; if(cnt%2==1){ return solve(lvl+1,(cnt+1)/2); }else{ return (pw[n-1-lvl]+solve(lvl+1,cnt/2))%MOD; } } int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); ll k; cin>>n>>k; pw.resize(n+1); pw[0]=1; forn(i,n) pw[i+1]=pw[i]*2LL%MOD; cout<<solve(0,k)<<'\n'; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...