Submission #1290850

#TimeUsernameProblemLanguageResultExecution timeMemory
1290850MinhKienKas (COCI17_kas)C++20
100 / 100
67 ms1220 KiB
#include <iostream> using namespace std; const int N = 510; const int M = 1e5 + 10; int n, a[N], sum; int dp[2][M]; int main() { cin.tie(0); cout.tie(0); ios_base::sync_with_stdio(false); cin >> n; for (int i = 1; i <= n; ++i) { cin >> a[i]; sum += a[i]; } fill_n(dp[0] + 1, sum, 1e9); for (int i = 1; i <= n; ++i) { int b = i & 1; for (int j = 0; j <= sum; ++j) { int Min = dp[b ^ 1][j] + a[i]; if (j + a[i] <= sum) Min = min(dp[b ^ 1][j + a[i]], Min); Min = min(dp[b ^ 1][abs(j - a[i])], Min); dp[b][j] = Min; } } int ans = sum - dp[n & 1][0]; cout << ans / 2 + dp[n & 1][0] << "\n"; 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...