Submission #267037

#TimeUsernameProblemLanguageResultExecution timeMemory
267037VusetOrucovRack (eJOI19_rack)C++17
100 / 100
2 ms512 KiB
#include <bits/stdc++.h> #include <ext/pb_ds/tree_policy.hpp> #include <ext/pb_ds/assoc_container.hpp> #define black_tree tree<ll,null_type,less_equal<ll>,rb_tree_tag,tree_order_statistics_node_update> #define gp __gnu_pbds #define INF 1000000000 #define MOD 1000000007 #define MAX 1000001 #define endl '\n' #define ll long long #define ld long double #define lli long long int #define ull unsigned long long #define ulli unsigned long long int #define pb push_back #define pf push_front #define ook order_of_key #define fbo find_by_order #define np next_permutation #define mp make_pair #define eb emplace_back #define me max_element #define lb lower_bound #define ub upper_bound #define bs binary_search #define ff first #define ss second using namespace std; using namespace gp; ll n,k,ans=1,dp[MAX]; ll q(ll a,ll b){ ll f=1; while(b!=0){ if(b%2==1){ f=(f*a)%MOD; } b/=2; a=(a*a)%MOD; } return f; } int main(){ ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin>>n>>k; for(int i=n-1;i>=0;i--){ if(!(k%2)){ ans=(ans+q(2,i))%MOD; } k=(k+1)/2; } cout<<ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...