Submission #1154128

#TimeUsernameProblemLanguageResultExecution timeMemory
1154128vicvicKas (COCI17_kas)C++20
100 / 100
249 ms392616 KiB
#include <iostream>
#include <cmath>
#include <cstdint>
#define int long long
using namespace std;
int n, dp[505][100005], s, v[505];
int32_t main()
{
    cin >> n;
    for (int i=1;i<=n;i++)
    {
        cin >> v[i];
        s+=v[i];
    }
    for (int i=0;i<=n;i++)
    {
        for (int j=0;j<=s+1;j++)
        {
            dp[i][j]=-1e9;
        }
    }
    dp[0][0]=0;
    for (int i=1;i<=n;i++)
    {
        for (int j=0;j<=s;j++)
        {
            dp[i][j]=max (dp[i-1][j], max ((j+v[i]<=s?dp[i-1][j+v[i]]+v[i]:(int)-1e9), (abs (j-v[i])<=s?dp[i-1][abs (j-v[i])]+v[i]:(int)-1e9)));
        }
    }
    cout << (s-dp[n][0]/2);
    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...
#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...