Submission #994037

#TimeUsernameProblemLanguageResultExecution timeMemory
994037vjudge1Kas (COCI17_kas)C++17
100 / 100
277 ms393280 KiB
#include <bits/stdc++.h> using namespace std; const int M = 1e5 + 1, N = 500 + 1, inf = 1e9; int cnt[M],pre[N][M*2],temp[M*2]; int main() { int n; cin>>n; int su=0,a[n]; for (int i=0;i<n;i++) cin>>a[i],su+=a[i]; for (int i=0;i<M*2;i++) temp[i]=pre[0][i]=-inf; temp[M]=pre[0][M]=0; for (int i=0;i<n;i++) { for (int j=0;j<M*2;j++) { if (j+a[i]<M*2) temp[j+a[i]]=max(temp[j+a[i]],pre[i][j]+a[i]); if (j-a[i]>=0) temp[j-a[i]]=max(temp[j-a[i]],pre[i][j]+a[i]); } for (int j=0;j<M*2;j++) pre[i+1][j]=temp[j]; } int div=pre[n][M]; cout<<div/2+su-div<<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...