Cod sursa(job #1708589)

Utilizator andrei_diaconu11Andrei C. Diaconu andrei_diaconu11 Data 27 mai 2016 14:39:10
Problema Transport Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.55 kb
#include <cstdio>

int v[16000], n, k;

bool f(int c){
    int i=0, nr, s;
    for(nr=0;nr<k && i<n;nr++){
        s=0;
        while(i<n && s+v[i]<=c)
            s+=v[i++];
    }
    return i==n;
}

int main()
{
    int poz, pas, i;
    FILE *fi=fopen("transport.in", "r"), *fo=fopen("transport.out", "w");
    fscanf(fi, "%d%d", &n, &k);
    for(i=0;i<n;i++)
        fscanf(fi, "%d", &v[i]);
    poz=0;
    for(pas=1073741824;pas>0;pas/=2)
        if(!f(poz+pas))
            poz+=pas;
    fprintf(fo, "%d", poz+1);
    fclose(fi);
    fclose(fo);
    return 0;
}