Submission #840852

#TimeUsernameProblemLanguageResultExecution timeMemory
840852raul2008487Rack (eJOI19_rack)C++17
40 / 100
1 ms292 KiB
#include <bits/stdc++.h> #define pb push_back #define fi first #define se second #define ll long long #define vl vector<ll> #define endl "\n" #define all(v) v.begin(), v.end() using namespace std; const int sz = 2e5+5; const ll inf = 100000000000000005; const int mod = 1e9+7; void solve(){ ll n,k,i,j,low,high,mid,level=1, res=1, x=1; cin>>n>>k; if(n > 59){ while(n>60){ x*=2; x%=mod; n--; } low = 1, high = (1<<60); } else{ low = 1, high = (1<<n); } while(low <= high){ mid = (low+high) >> 1; if(low == high){ cout << res << endl; return ; } if(k <= mid){ high = mid; } else{ low = mid+1; ll ad = (1<<level-1); ad%=mod; ad*=x; ad%=mod; res += ad; res%=mod; } level++; } cout << res << endl; } int main(){ ll t=1; //cin>>t; while(t--){ solve(); } }

Compilation message (stderr)

rack.cpp: In function 'void solve()':
rack.cpp:22:27: warning: left shift count >= width of type [-Wshift-count-overflow]
   22 |         low = 1, high = (1<<60);
      |                          ~^~~~
rack.cpp:38:30: warning: suggest parentheses around '-' inside '<<' [-Wparentheses]
   38 |             ll ad = (1<<level-1);
      |                         ~~~~~^~
rack.cpp:14:12: warning: unused variable 'i' [-Wunused-variable]
   14 |     ll n,k,i,j,low,high,mid,level=1, res=1, x=1;
      |            ^
rack.cpp:14:14: warning: unused variable 'j' [-Wunused-variable]
   14 |     ll n,k,i,j,low,high,mid,level=1, res=1, x=1;
      |              ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...