Cod sursa(job #3223250)

Utilizator Victor2006Nicola Victor-Teodor Victor2006 Data 12 aprilie 2024 19:57:53
Problema Zebughil Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.01 kb
#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;
}