제출 #289600

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

using namespace std;

long dp[100001], temp[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 (long j = 0; j < 100001; j++){
		dp[j] = 100001;
	}
	dp[0] = 0;
	for (int i = 0; i < n; i++){
		for (long j = 0; j < 100001; j++){
			temp[j] = 100001;
		}
		for (long j = 0; j < 100001; j++){
			temp[j] = min(temp[j], dp[j]+notes[i]);
			temp[abs(j-notes[i])] = min(temp[abs(j-notes[i])], dp[j]);
			temp[j+notes[i]] = min(temp[j+notes[i]], dp[j]);
		}
		for (long j = 0; j < 100001; j++){
			dp[j] = temp[j];
		}
	}
	cout << sum-(sum-dp[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...