Pagini recente » Cod sursa (job #2313239) | Cod sursa (job #2269247)
#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 camion[20];
int rez, act;
void bkt(int pas) {
if(pas == N + 1) {
if(act < rez)
rez = act;
return;
} else
for(int i = 1; i <= N; i++)
if(!used[i]) {
used[i] = 1;
if(camion[act] + bloc[i] <= G)
camion[act] += bloc[i];
else
camion[++act] = bloc[i];
bkt(pas + 1);
used[i] = 0;
camion[act] -= bloc[i];
if(camion[act] == 0 && act > 1)
--act;
}
}
int main() {
for(int j = 1; j <= 3; j++) {
fin >> N >> G;
for(int i = 1; i <= N; i++)
fin >> bloc[i];
rez = N;
act = 1;
bkt(1);
fout << rez << '\n';
}
return 0;
}