제출 #32276

#제출 시각아이디문제언어결과실행 시간메모리
32276cscandkswonKas (COCI17_kas)C++14
70 / 100
216 ms197608 KiB
#include <cstdio>
#include <cstdlib>
const int MAXN = 503, INF=1e9;

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

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

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

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

컴파일 시 표준 에러 (stderr) 메시지

kas.cpp: In function 'int main()':
kas.cpp:22:17: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d", &N);
                 ^
kas.cpp:24: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 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...