제출 #289596

#제출 시각아이디문제언어결과실행 시간메모리
289596FlashGamezzzKas (COCI17_kas)C++14
90 / 100
898 ms524288 KiB
#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <fstream>
#include <algorithm>
#include <string>
#include <utility>
#include <vector>

using namespace std;

long dp[501][100001] = {};
long sum, notes[500];

int main() {
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	int n;
	cin >> n;
	for (int i = 0; i < n; i++){
		cin >> notes[i];
		sum += notes[i];
	}
	for (int i = 0; i <= n; i++){
		for (long j = 0; j < 100001; j++){
			dp[i][j] = 100001;
		}
	}
	dp[0][0] = 0;
	for (int i = 0; i < n; i++){
		for (long j = 0; j < 100001; j++){
			dp[i+1][j] = min(dp[i+1][j], dp[i][j]+notes[i]);
			dp[i+1][abs(j-notes[i])] = min(dp[i+1][abs(j-notes[i])], dp[i][j]);
			dp[i+1][j+notes[i]] = min(dp[i+1][j+notes[i]], dp[i][j]);
		}
	}
	cout << sum-(sum-dp[n][0])/2 << 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...