Cod sursa(job #2138440)

Utilizator SolcanMihaiSolcan Mihai Andrei SolcanMihai Data 21 februarie 2018 17:28:35
Problema Diamant Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <cstdio>
#include <algorithm>

using namespace std;

int n;
int sir[1005];
int mat[50005];
int sum;

void citire(){
    scanf("%d", &n);

    for(int i = 1; i <= n; i++){
        scanf("%d", &sir[i]);
        sum += sir[i];
    }
}

void solve(){
    for(int i = 1; i <= n; i++){
        for(int j = sum / 2; j >= sir[i]; j--){
            mat[j] = max(mat[j], mat[j - sir[i]] + sir[i]);
        }
    }

    int maxS = 0;

    for(int i = 1; i <= sum / 2; i++){
        maxS = max(maxS, mat[i]);
    }

    printf("%d %d", maxS, sum - maxS);
}

int main()
{
    freopen("jocul.in", "r", stdin);
    freopen("jocul.out", "w", stdout);

    citire();
    solve();

    return 0;
}