제출 #298871

#제출 시각아이디문제언어결과실행 시간메모리
298871shrek12357Kas (COCI17_kas)C++14
100 / 100
240 ms196472 KiB
#include <iostream> #include <vector> #include <algorithm> #include <string> #include <map> #include <set> #include <climits> #include <cmath> #include <fstream> #include <queue> using namespace std; const int MAXV = 1e5+5; #define MAXN 505 int main() { int dp[MAXN][MAXV]; int best = 0; int n; cin >> n; vector<int> nums; int sum = 0; for (int i = 0; i < n; i++) { for (int j = 0; j < MAXV; j++) { dp[i][j] = INT_MIN; } } dp[0][0] = 0; for (int i = 0; i < n; i++) { int temp; cin >> temp; nums.push_back(temp); sum += temp; } for (int i = 1; i <= n; i++) { for (int j = 0; j < MAXV; j++) { dp[i][j] = max(dp[i - 1][j], max(dp[i - 1][j + nums[i - 1]], dp[i - 1][abs(j - nums[i - 1])]) + nums[i - 1]); } best = max(best, dp[i][0]); } cout << best/2 + sum-best << endl; }
#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...