Cod sursa(job #1520908)

Utilizator TudoseSanzianaTudose Sanziana TudoseSanziana Data 9 noiembrie 2015 18:09:23
Problema Transport Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <cstdio>
using namespace std;
int v[16005],n,k;
int transport(int x)
{
    int i,s=0,maxm=1;
    for(i=1;i<=n;i++)
    {
        s+=v[i];
        if(s>x)
        {
            maxm++;
            s=v[i];
        }
    }
   return maxm;
}
int main()
{
    freopen("transport.in","r",stdin);
    freopen("transport.out","w",stdout);
    int st,dr=0,i,med,last;
    scanf("%d%d",&n,&k);
    for(i=1;i<=n;i++)
    {
        scanf("%d",&v[i]);
        dr+=v[i];
    }
    st=dr/k;
    while(st<dr)
    {
        med=(st+dr)/2;
        if(transport(med)>k)
            st=med+1;
        else{
        dr=med;
        last=dr;
        }
    }
    printf("%d\n",last);
    return 0;
}