Submission #1337430

#TimeUsernameProblemLanguageResultExecution timeMemory
1337430ninstroyerKas (COCI17_kas)C++20
100 / 100
318 ms392632 KiB
#include<bits/stdc++.h>
using namespace std;

const int nx = 505, vx = 1e5+5;

int n,sum,a[nx],dp[nx][vx*2];

int main()
{
    ios::sync_with_stdio(false); cin.tie(0);
    cin>>n;
    for(int i = 1; i <= n; i++) cin>>a[i],sum+=a[i];
    for(int i = 0; i <= n; i++) for(int j = 0; j <= 2*sum; j++) dp[i][j]=-1;
    dp[0][sum]=0;
    for(int i = 1; i <= n; i++)
    {
        for(int j = 0; j <= 2*sum; j++)
        {
            dp[i][j]=max(dp[i][j],dp[i-1][j]);
            if(dp[i-1][j]==-1) continue;
            dp[i][j-a[i]] = max(dp[i][j-a[i]],dp[i-1][j]+a[i]);
            dp[i][j+a[i]] = max(dp[i][j+a[i]],dp[i-1][j]+a[i]);
        }
    }
    cout<<dp[n][sum]/2+(sum-dp[n][sum]);
}
#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...
#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...