# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
490707 | manizare | Bali Sculptures (APIO15_sculpture) | C++14 | 1 ms | 332 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
#define IOS ios_base::sync_with_stdio(false), cin.tie(0), cout.tie(0);
#define pb push_back
#define all(a) a.begin(),a.end()
typedef long long ll ;
const int maxn =1e6 + 10;
const int mod = 1e9 + 7 ;
const int maxq = 3000+10;
ll dp[110][110][110];
ll d[maxn];
ll pre[maxn];
int main()
{
ll n , a , b ;
cin >> n >> a >> b ;
for(int i = 1; i <= n ; i++){
cin >> d[i];
}
for(int i = 1 ; i<= n ; i++){
pre[i] = pre[i-1] + d[i] ;
}
for(int i = 1 ; i <= b ; i++){
for(int l = 1 ; l <= n ; l++){
for(int r = l+1 ; r <= n ; r++){
dp[i][l][r] = 1e18;
}
}
}
for(int i =1 ; i <= n ; i++){
for(int j = i ; j <= n ; j++){
dp[1][i][j] = pre[j] - pre[i-1] ;
}
}
for(int x = 2 ; x <= b ; x++){
for(int l = 1 ; l <= n ; l++){
for(int r = l+1 ; r <= n ; r++){
for(int s = 0 ; s < x ; s++){
if((x == 2 && l!=1 && r != n) || (x == 1 && !(l==1 && r == n)) || ((n-r)+(l-1) < (x-1)) || (s==0 || (x-1)-s) == 0 && (l!=1 && r!=n)){
continue ;
}
if((x-1-s) > n-r || (s) > (l-1))continue ;
if(x==3 && l == 2 && r == 5 ){
// cout << s << " " << x-1-s << " " << dp[s][1][l-1] << " " << (pre[r] - pre[l-1]) << " " << dp[(x-1)-s][r+1][n] << " " << (dp[s][1][l-1] | (pre[r] - pre[l-1]) | dp[(x-1)-s][r+1][n]) << "<<<=\n";
}
dp[x][l][r] = min(dp[s][1][l-1] | (pre[r] - pre[l-1]) | dp[(x-1)-s][r+1][n] , dp[x][l][r]) ;
}
}
}
}
ll answer = 1e18 ;
for(int x = a ; x <= b ; x++){
for(int l = 1 ; l <= n ; l++){
for(int r = l+1 ; r <= n ; r++){
if((x == 1 && !(l==1 && r == n)) || (x == 2 && l!=1 && r != n) || ((n-r)+(l-1) < (x-1)))continue ;
answer = min(answer,dp[x][l][r]) ;
// cout << x << " "<< l << " " <<r << " " << dp[x][l][r] << "<-\n";
}
}
}
cout << answer << "\n";
return 0;
}
/*
6 1 3
8 1 2 1 5 4
*/
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |