Pagini recente » Cod sursa (job #1619523) | Cod sursa (job #2918960) | Cod sursa (job #1077416) | Cod sursa (job #462177) | Cod sursa (job #2268230)
#include <fstream>
using namespace std;
ifstream fin("zebughil.in");
ofstream fout("zebughil.out");
int N,G;
int bloc[20];
int sol[20];
int used[20];
int rez;
void bkt(int pas) {
if(pas == N + 1) {
int camionActual = 0;
int nrcamioane = 1;
for(int i = 1; i <= N; i++) {
if(camionActual + sol[i] <= G)
camionActual += sol[i];
else {
camionActual = sol[i];
nrcamioane++;
}
}
if(nrcamioane < rez)
rez = nrcamioane;
return;
} else
for(int i = 1; i <= N; i++)
if(!used[i]) {
used[i] = 1;
sol[pas] = bloc[i];
bkt(pas + 1);
used[i] = 0;
}
}
int main() {
for(int j = 1; j <= 3; j++) {
fin >> N >> G;
for(int i = 1; i <= N; i++)
fin >> bloc[i];
rez = N;
bkt(1);
fout << rez << '\n';
}
return 0;
}