Submission #126790

#TimeUsernameProblemLanguageResultExecution timeMemory
126790abacabaKas (COCI17_kas)C++14
0 / 100
257 ms44512 KiB
#include <bits/stdc++.h>
using namespace std;

const int inf = 2e9;
const int M = 1e5 + 15;
const int N = 5e2 + 15;
int n, a[N], summ, ans = inf;
bool dp1[M], dp2[N][M];

int main() {
	scanf("%d", &n);
	for(int i = 1; i <= n; ++i) {
		scanf("%d", &a[i]);
		summ += a[i];
	}
	dp2[n+1][0] = 1;
	dp1[0] = 1;
	for(int i = n; i; --i) {
		for(int j = M - 1; j >= 0; --j)
			dp2[i][j] = dp2[i+1][j];
		for(int j = M - 1; j >= 0; --j)
			if(dp2[i][j] && j + a[i] < M)
				dp2[i][j + a[i]] = 1;
	}
	for(int i = 1; i <= n; ++i) {
		for(int j = M - 1; j >= 0; --j)
			if(dp1[j] && j + a[i] < M)
				dp1[j + a[i]] = 1;
		for(int j = M - 1; j; --j)
			if(dp1[j] && dp2[i + 1][j])
				ans = min(ans, summ - (j << 1));
	}
	cout << ans + (summ - ans) / 2;
    return 0;
}

Compilation message (stderr)

kas.cpp: In function 'int main()':
kas.cpp:11:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d", &n);
  ~~~~~^~~~~~~~~~
kas.cpp:13:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d", &a[i]);
   ~~~~~^~~~~~~~~~~~~
#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...