Cod sursa(job #2468661)

Utilizator doruliqueDoru MODRISAN dorulique Data 5 octombrie 2019 19:06:29
Problema Transport Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <cstdio>

int a[16101],N,K;

int basta(int cap)
{
    int i,transp=1,sc=0;
    for(i=1;i<=N;i++)
    {
        sc+=a[i];
        if(sc>cap)
        {
            sc=a[i];
            transp++;
        }
    }
    return transp<=K;
}

int main()
{
    FILE *f=fopen("transport.in","r");
    fscanf(f,"%d%d",&N,&K);
    int i,mx=0;
    for(i=1;i<=N;i++)
    {
        fscanf(f,"%d",&a[i]);
        if(a[i]>mx)mx=a[i];
    }
    int li=mx,lf=1000000000,m;
    while(li<=lf)
    {
        m=(li+lf)/2;
        if(basta(m))
                lf=m-1;
        else
                li=m+1;
    }
    f=fopen("transport.out","w");
    fprintf(f,"%d",li);
    return 0;
}