| # | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
|---|---|---|---|---|---|---|---|
| 1340932 | kinnykiki | Kas (COCI17_kas) | C++20 | 0 ms | 0 KiB |
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin >> n;
vector<int> v(n);
int ma = 0;
for(int i = 0; i < n; i ++){
cin >> v[i];
ma += v[i];
}
vector<int> check(2*ma + 1, -1);
vector<int> ans(2*ma + 1, -1);
check[ma] = 0;
for(int i = 0; i < n; i ++){
ans = check;
for(int j = 0; j <= 2*ma; j ++){
if(check[j] == -1) continue;
if(j + v[i] <= 2*ma){
ans[j + v[i]] = max(ans[j + v[i]], check[j] + v[i]);
}
if(j - v[i] >= 0){
ans[j - v[i]] = max(ans[j - v[i]], check[j] + v[i]);
}
}