Cod sursa(job #2382467)

Utilizator raremihaiiordache raremihai Data 18 martie 2019 13:10:23
Problema Transport Scor 100
Compilator c-64 Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <stdio.h>

#include <stdlib.h>

#include <stdbool.h>



int n, v[16000], k;



bool se_poate(int c)

{

    int nrt = 0, cc = 0;

    for (int i = 0; i < n; i++)

    {

        if (v[i] > c)

            return false;

        if (v[i] > cc)

        {

            cc = c;

            nrt++;

        }

        cc -= v[i];

    }

    return (nrt <= k);

}





int main()

{

    FILE *fin, *fout;

    fin = fopen("transport.in", "r");

    fout = fopen("transport.out", "w");

    fscanf(fin, "%d%d", &n, &k);

    int r = 0, pas = 1 << 28, i;

    for (i = 0; i < n; i++)

        fscanf(fin, "%d", &v[i]);

    while (pas > 0)

    {

        if (!se_poate(r + pas))

        {

            r += pas;

        }

        pas /= 2;

    }

    fprintf(fout, "%d", r + 1);

    fclose(fin);

    fclose(fout);

    return 0;

}