#include <bits/stdc++.h>
using namespace std;
int main() {
cin.tie(0)->sync_with_stdio(0);
int n;
cin>> n;
int SM=0;
vector<int> a(n);
for (int i=0; i<n; i++) {cin>> a[i]; SM+=a[i];}
vector<vector<bool>> dp(SM+1, vector<bool>(SM+1, false));
dp[0][0]= true;
for (auto &x : a) {
for (int i=SM; i>=0; i--) {
for (int j=SM; j>=0; j--) {
bool c1=(i-x >= 0? dp[i-x][j] : false), c2=(j-x >= 0? dp[i][j-x] : false);
dp[i][j] = dp[i][j] || c1 || c2;
}
}
}
for (int i=0; i<=SM; i++) {
//for (int j=0; j<=SM; j++) cout<< dp[i][j]<< ' ';
//cout<< '\n';
}
for (int i=SM; i>=0; i--) {
if (dp[i][i]) {
cout<< i+SM-2*i;
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... |