제출 #1340933

#제출 시각아이디문제언어결과실행 시간메모리
1340933kinnykikiKas (COCI17_kas)C++20
100 / 100
159 ms1984 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]);
            }
        }
        check = ans;
    }
    int used = check[ma];
    cout << ma - used/2;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...