Submission #1166033

#TimeUsernameProblemLanguageResultExecution timeMemory
116603312345678Kas (COCI17_kas)C++20
100 / 100
141 ms196420 KiB
#include <bits/stdc++.h>

using namespace std;

const int nx=5e2+5, kx=1e5+5, k=5e4;

int n, a[nx], dp[nx][kx], sm;

int main()
{
    cin.tie(NULL)->sync_with_stdio(false);
    cin>>n;
    for (int i=0; i<kx; i++) dp[0][i]=-1e9;
    dp[0][k]=0;
    for (int i=1; i<=n; i++) 
    {
        cin>>a[i];
        sm+=a[i];
        for (int j=0; j<kx; j++)
        {
            dp[i][j]=dp[i-1][j];
            if (j-a[i]>=0) dp[i][j]=max(dp[i][j], dp[i-1][j-a[i]]+a[i]);
            if (j+a[i]<kx) dp[i][j]=max(dp[i][j], dp[i-1][j+a[i]]);
        }
    }
    cout<<dp[n][k]+(sm-2*dp[n][k]);
}
#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...