Cod sursa(job #2213321)

Utilizator ruxiTTutunaru Ruxandra ruxiT Data 16 iunie 2018 11:20:27
Problema Transport Scor 60
Compilator c Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <stdio.h>
#include <stdlib.h>
#define INF 16001

int nrtrans(int v[], int n, int c) {
    int i, nrt = 0, cc = 0;
    for (i = 0; i < n; i++) {
        if (v[i] > c) {
            return INF;
        }
        if (v[i] > cc) {
            nrt++;
            cc = c;
        }
        cc -= v[i];
    }
    return nrt;
}

int main() {
    int n, i, t, r = 0, pas = 1 << 19;
    FILE *fin, *fout;
    fin = fopen("transport.in", "r");
    fout = fopen("transport.out", "w");
    fscanf(fin, "%d%d", &n, &t);
    int v[n];
    for (i = 0; i < n; i++) {
        fscanf(fin, "%d", &v[i]);
    }
    while (pas != 0) {
        if (nrtrans(v, n, r + pas) > t) {
            r += pas;
        }
        pas /= 2;
    }
    r++;
    fprintf(fout, "%d", r);
    fclose(fin);
    fclose(fout);
    return 0;
}