Submission #317745

#TimeUsernameProblemLanguageResultExecution timeMemory
317745soroushBali Sculptures (APIO15_sculpture)C++14
50 / 100
146 ms632 KiB
/* #pragma GCC optimize("O2") #pragma GCC optimize("unroll-loops") #pragma GCC target("avx,avx2,sse,sse2,fma,tune=native") //*/ #include <bits/stdc++.h> using namespace std; typedef long long ll; typedef long double ld; typedef pair<int ,int > pii; mt19937 rng(chrono::steady_clock::now().time_since_epoch().count()); const ll maxn = 2100; const ll mod =1e9+7; const ld PI = acos((ld)-1); #define int ll #define pb push_back #define endl '\n' #define dokme(x) cout << x , exit(0) #define migmig ios::sync_with_stdio(false),cin.tie(0),cout.tie(0) #define ms(x , y) memset(x , y , sizeof x) ll pw(ll a, ll b, ll md = mod){ll res = 1;while(b){if(b&1){res=(a*res)%md;}a=(a*a)%md;b>>=1;}return(res);} int n; int a[maxn]; int l , r; int ans; int dp[maxn]; ll solve(){ ans = (1LL << 60LL)-1; for(int i = 59 ; i >= 0 ; i --){ ms(dp , 63), dp[0] = 0; ans ^= (1LL << i); for(int j = 0 ; j < n ; j ++){ ll sum = 0; for(int k = j ; k < n ; k ++) sum += a[k], dp[k+1] = min(dp[k+1] ,(ans - (sum|ans))?dp[k+1] : dp[j]+1); } if(dp[n] > r) ans += (1LL << i); } return(ans); } int32_t main(){ migmig; cin >> n >> l >> r; for(int i = 0 ; i < n ; i ++) cin >> a[i]; cout << solve(); return(0); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...