Pagini recente » Cod sursa (job #3282005) | Cod sursa (job #3298320) | Cod sursa (job #2733485) | Cod sursa (job #459827) | Cod sursa (job #3223250)
#include <stdio.h>
#include <algorithm>
#define N 17
int v[N];
int n;
int main() {
FILE *fin, *fout;
int w;
fin = fopen("zebughil.in", "r");
fout = fopen("zebughil.out", "w");
for ( int q = 0; q < 3; q ++ ) {
fscanf(fin, "%d%d", &n, &w);
for ( int i = 0; i < n; i ++ )
fscanf(fin, "%d", &v[i]);
std::sort(v, v + n);
int sum = 0, ans = 0, i = 0, j = n - 1;
while ( i < j ) {
if ( sum + v[j] < w )
sum += v[j], j --;
else {
if ( sum + v[j] == w )
j --;
sum = v[0], ans ++;
}
if ( sum + v[i] < w )
sum += v[i], i ++;
else {
if ( sum + v[i] == w )
i ++;
sum = 0, ans ++;
}
}
if ( i == j )
ans ++;
// printf("%d %d\n", i, j);
fprintf(fout, "%d\n", ans);
}
fclose(fin);
fclose(fout);
return 0;
}