Cod sursa(job #2760061)

Utilizator CaptnBananaPetcu Tudor CaptnBanana Data 22 iunie 2021 18:30:01
Problema Problema rucsacului Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.66 kb
#include <fstream>

using namespace std;

ifstream f("jocul.in");
ofstream g("jocul.out");

const int N = 1e3, S = 50 * N + 1;
int n, l[N], dp[S], s, ans;

int main(){
    f >> n;
    for(int i = 0; i < n; i++){
        f >> l[i];
        s += l[i];
    }

    f.close();

    for(int j = 1; j <= s / 2; j++)
        dp[j] = -1;

    for(int i = 0; i < n; i++){
        for(int j = s / 2 - l[i]; j >= 0; j--){
            if(dp[j] != -1)
                dp[j + l[i]] = max(dp[j + l[i]], dp[j] + l[i]);
        }
    }

    for(int j = 1; j <= s / 2; j++)
        ans = max(ans, dp[j]);

    g << ans << ' ' << s - ans;
    g.close();
}