Submission #32279

# Submission time Handle Problem Language Result Execution time Memory
32279 2017-10-06T06:09:45 Z cscandkswon Kas (COCI17_kas) C++14
100 / 100
383 ms 394092 KB
#include <cstdio>
#include <cstdlib>
#include <cstring>
const int MAXN = 503, INF=1e9, ZERO=100000;

int N, A[MAXN], S, ans, D[MAXN][200005];

inline int max(int a, int b) { return (a > b) ? a : b; }

int func(int a, int d) {
	if (abs(d - ZERO) > (S / 2)) return -INF;
	if (a == N) {
		if (d == ZERO) return D[a][d] = 0;
		return D[a][d] = -INF;
	}
	if (D[a][d] != -1) return D[a][d];
	D[a][d] = max(func(a + 1, d), max(func(a + 1, d + A[a]) + A[a], func(a + 1, d - A[a])));
	return D[a][d];
}

int main() {
	memset(D, -1, sizeof D);
	int i;
	scanf("%d", &N);
	for (i = 0; i < N; i++) 
		scanf("%d", A + i), S+=A[i];
	ans = func(0, ZERO);
	printf("%d", ans + (S - ans * 2));
	return 0;
}

Compilation message

kas.cpp: In function 'int main()':
kas.cpp:24:17: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d", &N);
                 ^
kas.cpp:26:30: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d", A + i), S+=A[i];
                              ^
# Verdict Execution time Memory Grader output
1 Correct 13 ms 394092 KB Output is correct
2 Correct 29 ms 394092 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 19 ms 394092 KB Output is correct
2 Correct 43 ms 394092 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 29 ms 394092 KB Output is correct
2 Correct 26 ms 394092 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 16 ms 394092 KB Output is correct
2 Correct 19 ms 394092 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 26 ms 394092 KB Output is correct
2 Correct 43 ms 394092 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 36 ms 394092 KB Output is correct
2 Correct 23 ms 394092 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 36 ms 394092 KB Output is correct
2 Correct 46 ms 394092 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 123 ms 394092 KB Output is correct
2 Correct 56 ms 394092 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 156 ms 394092 KB Output is correct
2 Correct 269 ms 394092 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 379 ms 394092 KB Output is correct
2 Correct 383 ms 394092 KB Output is correct