Cod sursa(job #1415724)

Utilizator tziplea_stefanTiplea Stefan tziplea_stefan Data 5 aprilie 2015 23:09:44
Problema Transport Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <fstream>
#include <cstdio>
#define NM 16005

using namespace std;

int n,k,i,sum,mx,v[NM],x,nr;
bool ok;

int main()
{
    freopen("transport.in", "r", stdin);
    freopen("transport.out", "w", stdout);
    scanf("%d %d", &n, &k);
    for (i=1; i<=n; i++)
    {
        scanf("%d", &v[i]);
        mx=max(mx, v[i]);
        sum+=v[i];
    }
    sum/=k;
    x=max(sum, mx);
    while (x<=NM*NM)
    {
        ok=true;
        nr=1;
        sum=0;
        for (i=1; i<=n; i++)
        {
            if (sum+v[i]>x)
            {
                nr++;
                sum=v[i];
            }
            else
              sum+=v[i];
            if (nr>k)
            {
                ok=false;
                break;
            }
        }
        if (ok==true)
        {
            printf("%d\n", x);
            break;
        }
        x++;
    }
    return 0;
}