Cod sursa(job #1346616)

Utilizator alexandrastaniselStanisel Alexandra alexandrastanisel Data 18 februarie 2015 14:14:17
Problema Transport Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <iostream>
#include <cstdio>
#include <fstream>
using namespace std;
ofstream g("transport.out");
int N, K, a[16001], S, maxim, li, ls, m, k, i;
int main()
{
    freopen("transport.in", "r", stdin);
    scanf("%d %d", &N, &K);
    for(i=1; i<=N; i++)
    {
        scanf("%d", &a[i]);
        if(a[i]>maxim) maxim=a[i];
        S+=a[i];
    }
     li=maxim;
     ls=S;
     while(li<=ls)
     {
         m=(li+ls)/2;
         S=0;
         k=0;
         for(i=1; i<=N; i++)
         {
           if(S+a[i]<=m) S+=a[i];
           else
           {
           S=a[i];
           k++;
           }
         }
         if(k>=K) li=m+1;
         else ls=m-1;
     }
     g<<m;
    return 0;
}