Submission #839218

#TimeUsernameProblemLanguageResultExecution timeMemory
839218teo_thrashKas (COCI17_kas)C++14
0 / 100
33 ms620 KiB
#include<bits/stdc++.h>
#define pb push_back

using namespace std;

typedef long long ll;
typedef pair<int, int> pii;

const int maxn=1e6+3;
const int mod=1e9+7;

int n;
ll a[503];
ll dp[maxn], sum=0; ///dp[i] is the max sum of the subsequences that when split optimally, the 2 parts differ by i

int main(){

ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);

cin>>n;
for(int i=0; i<n; i++){
    cin>>a[i];
    sum+=a[i];
}

sort(a, a+n, greater<int>() );

dp[a[0]]=a[0];

for(int i=1; i<n; i++){
    dp[a[i]]=max(dp[a[i]], a[i]);
    for(int j=0; j<=sum-a[i]; j++){
        if(dp[j+a[i]]!=0){
            dp[j]=max(dp[j], dp[j+a[i]]+a[i]);
        }
    }
}
cout<<sum - dp[0]/2<<endl;

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...