Submission #228912

#TimeUsernameProblemLanguageResultExecution timeMemory
228912mehrdad_sohrabiBali Sculptures (APIO15_sculpture)C++14
50 / 100
219 ms504 KiB
#include <bits/stdc++.h> typedef long long int ll; typedef long double ld; #define pb push_back #define pii pair < ll , ll > #define F first #define S second #define endl '\n' #define int long long #define sync ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0) #pragma GCC optimize("Ofast,no-stack-protector,unroll-loops,fast-math") #define kill(x) return cout<<x<<'\n', 0; using namespace std; const int N=2e3+10; ll dp[N]; ll a[N]; int32_t main(){ sync; ll n; cin >> n; ll b; cin >> b >> b; for (int i=1;i<=n;i++){ cin >> a[i]; } ll ans=((ll)1<<60)-1; for (int bit=59;bit>-1;bit--){ memset(dp,63,sizeof dp); dp[0]=0; ans-=((ll)1<<bit); for (int i=1;i<=n;i++){ ll cnt=0; for (int j=i;j;j--){ cnt+=a[j]; if ((cnt | ans)<=ans){ dp[i]=min(dp[i],dp[j-1]+1); } } } if (dp[n]>b){ ans+=((ll)1<<bit); } } cout << ans << endl; }
#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...