Submission #966763

#TimeUsernameProblemLanguageResultExecution timeMemory
966763slumioRack (eJOI19_rack)C++17
100 / 100
1 ms460 KiB
#include<bits/stdc++.h>
using namespace std;
using ll =long long int;
using ull=unsigned long long;
/*I liked you once but not anymore now*/
int mod=1e9+7;

ll binpow(ll k)
{
 ll res=1LL;
 ll a=2LL;
 while(k>0)
 {
    if(k%2==1)res=(res*a)%mod;
    a=(a*a)%mod;
     
     k/=2LL;
 }
  return res;

}


 void solve(){
       
   ll n,k;cin>>n>>k;
 ll ans=1LL;
 //if(k==1){cout<<1;return;}
   while(k!=1)
   { 
     n--;
     if(k%2==0)
     {
        k=k/2LL;
         ans+=binpow(n);
     }
     else{
        k/=2LL;
        k++;
     }
   
     ans%=mod;
   }
 cout<<ans;

return;
}
int main()
{
std::ios::sync_with_stdio(false);std::cin.tie(nullptr);std::cout.tie(nullptr);

solve();
return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...