| # | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
|---|---|---|---|---|---|---|---|
| 1310394 | norrawichzzz | Kas (COCI17_kas) | C++20 | 0 ms | 0 KiB |
#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+1);
for (int i=1; i<=n; i++) {
cin>> a[i];
sm+=a[i];
}
vector<vector<int>> dp(n+1, vector<int>(sm+1, -1));
dp[0][0] = 0;
for (int i=1; i<=n; i++) {
int x = a[i];
for (int j=0; j<=sm-x; j++) {
dp[i][j] = dp[i-1][j];
if (dp[i-1][abs(j-x)] != -1) dp[i][j] = max(dp[i-1][abs(j-x)]+x, dp[i][j]);
if (dp[i-1][abs(j+x)] != -1) dp[i][j] = max(dp[i-1][abs(j+x)]+x, dp[i][j]);
}
}
cout<< ans;
}
