Pagini recente » Cod sursa (job #1050095) | Cod sursa (job #3170451) | Cod sursa (job #1442124) | Cod sursa (job #3247325) | Cod sursa (job #2138451)
#include <bits/stdc++.h>
using namespace std;
const int LMAX = 50005;
const int NMAX = 1005;
const int INF = 0x3f3f3f3f;
int n, a[NMAX], dp[LMAX], half, s;
void read() {
scanf("%d ", &n);
for (int i = 1; i <= n; i++) {
scanf("%d ", &a[i]);
s += a[i];
}
half = s / 2;
}
void knapsack() {
for (int i = 1; i <= n; i++) {
for (int j = half; j >= a[i]; j--) {
dp[j] = max(dp[j], dp[j - a[i]] + a[i]);
}
}
printf("%d %d\n", dp[half], s - dp[half]);
}
int main() {
freopen("jocul.in", "r", stdin);
freopen("jocul.out", "w", stdout);
read();
knapsack();
return 0;
}