#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 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... |
# | 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... |