Cod sursa(job #2207684)

Utilizator ana_valeriaAna Valeria Duguleanu ana_valeria Data 26 mai 2018 13:20:43
Problema Transport Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.32 kb
#include <iostream>
#include <cstdio>
using namespace std;
int v[16010];
int main()
{
    freopen ("transport.in","r",stdin);
    freopen ("transport.out","w",stdout);
    int n,i,s,medie,maxx,maxx_zile,pp,nrzile,ok,c,cmedie;
    unsigned long long zile;
    cin>>n>>zile;
    s=0;
    maxx_zile=0;
    for (i=1; i<=n; i++)
    {
        cin>>v[i];
        s=s+v[i];
        if (v[i]>maxx_zile)
            maxx_zile=v[i];
    }
    if (s%zile==0)
        medie=s/zile;
    else
        medie=s/zile+1;
    if (maxx_zile>medie)
        medie=maxx_zile;
    if (medie>50)
        c=medie/50;
    else
        c=1;
    pp=0;
    cmedie=medie;
    while (pp==0)
    {
        i=1;
        maxx=0;
        nrzile=0;
        ok=0;
        while (i<=n && ok==0)
        {
            s=0;
            while (s+v[i]<=medie && i<=n)
            {
                s=s+v[i];
                i++;
            }
            if (s>maxx)
                maxx=s;
            nrzile++;
            if (zile<nrzile)
                ok=1;
        }
        if (ok==1)
            cmedie=medie,medie=medie+c;
        else
            if (c==1)
                pp=1;
            else
            {
                c=1;
                medie=cmedie;
            }
    }
    cout<<maxx;
    return 0;
}