Cod sursa(job #1351037)

Utilizator robert_fanrRobert Banu robert_fanr Data 21 februarie 2015 09:26:20
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <fstream>
using namespace std;
ifstream in("jocul.in");
ofstream out("jocul.out");

int n, v[1001], sumaTotala, sumaOptima = 0;

void citire() {
    in >> n;
    int i;
    for (i=1; i<=n; i++) {
        in >> v[i];
        sumaTotala+=v[i];
    }
}

int modul(int x) {
    if (x>0)
        return x;
    return -x;
}

void bkt(int k, int sumaCurenta) {
    if (k>n) {
        if (modul(sumaTotala/2 - sumaCurenta) < modul(sumaTotala/2-sumaOptima))
            sumaOptima = sumaCurenta;
        return;
    }
    bkt(k+1,sumaCurenta+v[k]);
    bkt(k+1,sumaCurenta);
}


void afisare() {
    if (sumaOptima < sumaTotala - sumaOptima)
        out <<sumaOptima <<" " <<sumaTotala - sumaOptima;
    else
        out <<sumaTotala - sumaOptima <<" " <<sumaOptima;
}

int main()
{
    citire();
    bkt(1,0);
    afisare();
    return 0;
}