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