Submission #469567

#TimeUsernameProblemLanguageResultExecution timeMemory
469567FatihSolakRack (eJOI19_rack)C++17
100 / 100
6 ms8140 KiB
#include <bits/stdc++.h> #define N 1000005 #define int long long using namespace std; const int mod = 1e9+7; int pw[N]; int binpow(int a,int b){ int ret = 1; while(b){ if(b&1){ ret = ret*a%mod; } a = a*a%mod; b >>= 1; } return ret; } void solve(){ int n,k; cin >> n >> k; int ans = 1; for(int i=60;i>=0;i--){ if(k > pw[i]){ k -= pw[i]; ans = (ans + binpow(2,n-i-1))%mod; } } cout << ans; } int32_t main(){ ios_base::sync_with_stdio(false); cin.tie(nullptr); #ifdef Local freopen("in.txt","r",stdin); freopen("out.txt","w",stdout); #endif pw[0] = 1; for(int i=1;i<N;i++){ pw[i] = min((int)2e18,pw[i-1]*2); } int t=1; //cin>>t; while(t--){ solve(); } #ifdef Local cout<<endl<<fixed<<setprecision(2)<<1000.0 * clock() / CLOCKS_PER_SEC<< " milliseconds "; #endif }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...