Cod sursa(job #2468617)

Utilizator doruliqueDoru MODRISAN dorulique Data 5 octombrie 2019 18:18:43
Problema Transport Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <cstdio>

int a[16001],N,K;

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

int main()
{
    FILE *f=fopen("transport.in","r");
    fscanf(f,"%d%d",&N,&K);
    int i;
    for(i=1;i<=N;i++)
        fscanf(f,"%d",&a[i]);
    int li=1,lf=512000000,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;
}