답안 #32277

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
32277 2017-10-06T05:55:11 Z cscandkswon Kas (COCI17_kas) C++14
50 / 100
2000 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 0;
		return -INF;
	}
	if (D[a][d] >= 0) 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];
                              ^
# 결과 실행 시간 메모리 Grader output
1 Correct 69 ms 394092 KB Output is correct
2 Correct 33 ms 394092 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 36 ms 394092 KB Output is correct
2 Correct 53 ms 394092 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 23 ms 394092 KB Output is correct
2 Correct 33 ms 394092 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 39 ms 394092 KB Output is correct
2 Correct 43 ms 394092 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 33 ms 394092 KB Output is correct
2 Correct 33 ms 394092 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 2000 ms 394092 KB Execution timed out
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 2000 ms 394092 KB Execution timed out
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 2000 ms 394092 KB Execution timed out
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 2000 ms 394092 KB Execution timed out
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 2000 ms 394092 KB Execution timed out
2 Halted 0 ms 0 KB -