Submission #650856

#TimeUsernameProblemLanguageResultExecution timeMemory
650856edogawa_somethingRack (eJOI19_rack)C++17
0 / 100
1 ms324 KiB
#include<bits/stdc++.h> #include<ext/pb_ds/assoc_container.hpp> #include<ext/pb_ds/tree_policy.hpp> using namespace std; using namespace __gnu_pbds; typedef long long ll; typedef long double ld; typedef string st; typedef bool bl; typedef vector<ll> vii; typedef pair<ll,ll> pii; typedef vector<pii> vpi; #define pu push #define ordered_set tree<ll,null_type,less<ll>,rb_tree_tag,tree_order_statistics_node_update> #define fast ios_base::sync_with_stdio(0);cin.tie(); #define test ll qqqqq;cin>>qqqqq;while(qqqqq--) #define F first #define S second #define forn(i,n) for(ll i=0;i<n;i++) #define forx(i,j,n) for(ll i=j;i<n;i++) #define pb push_back #define pob pop_back #define all(v) v.begin(),v.end() #define lb lower_bound #define ub upper_bound #define pof pop_front #define pow powww const ll dx[]{1,0,-1,0}; const ll dy[]{0,1,0,-1}; const ll inf=2e18; const ll mod=1e9+7; const ll M=1e6+1; const ll MM=10002; const ll MMM=101; const ld pi=acos(-1); const ll mod1=1000000321; ll n,k,ans; ll chk=1; ll pow(ll r,ll to){ ll ret=1; while(to>0){ if((to&1)) ret*=r,ret%=mod; r*=r; r%=mod; to=(to>>1); } return ret; } int main(){ fast cin>>n>>k; k--; if(n<63&&k>(1ll<<(n-1ll))) k-=(1ll<<(n-1ll)),chk=2,cout<<"yaa3\n"; forn(i,64){ if(((1ll<<i)&k)>0){ ans+=pow(2,n-i-1); ans%=mod; } } ans+=chk; ans%=mod; cout<<ans; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...