Submission #1166567

#TimeUsernameProblemLanguageResultExecution timeMemory
1166567nguyenkhangninh99Kas (COCI17_kas)C++20
100 / 100
72 ms1096 KiB
#include <bits/stdc++.h>
using namespace std;

const int N=5e2+5;
const int LOG=17;
#define fi first
#define se seaond

int n,a[N],f[100005],sum,ans,g[100005];

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(0);
    cin >> n;
    memset(f,-1,sizeof(f));
    for(int i=1;i<=n;i++)
    {
        cin >> a[i];
        sum+=a[i];
    }
    for(int i=1;i<=sum;i++)
    {
        f[i]=g[i]=INT_MIN;
    }
    f[0] = 0;
    g[0] = 0;
    for(int i = 1; i <= n; i++){
        for(int j = 0; j <= sum; j++){
            if(j + a[i] <= sum) f[j + a[i]] = max(f[j + a[i]], g[j] + a[i]);
            if(abs(j - a[i]) <= sum) f[abs(j - a[i])] =  max(f[abs(j - a[i])], g[j] + a[i]);
        }
        for(int j = 0; j <= sum; j++){
            g[j] = f[j];
            //cout << f[j] << " ";
        }
       // cout << "\n";
    }
    cout << sum - f[0] / 2;
    return 0;
}
#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...