Pagini recente » Cod sursa (job #22692) | Cod sursa (job #2064123) | Cod sursa (job #2127708) | Cod sursa (job #162097) | Cod sursa (job #1351037)
#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;
}