Cod sursa(job #3154871)

Utilizator StefanPopescuPopescu Stefan StefanPopescu Data 6 octombrie 2023 17:41:50
Problema Transport Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <iostream>
#include <fstream>

using namespace std;
int v[16000];
int main()
{
    ifstream fin("transport.in");
    ofstream fout("transport.out");
    int N,K,i,j,S=0,n,max=0,vt,sum=0,nk=0;
    fin>>N>>K;
    for(i=1;i<=N;i++)
        {
            fin>>v[i];
            S=S+v[i];
            if(v[i]>max) max=v[i];
        }
    n=S/K;
    if(n<max)
        fout<<max;
    else
    {
        max=0;
        for(j=1;j<=N;j++)
        {
            sum=sum+v[j];
            if(sum+v[j+1]>=n)
            {
                nk++;
                if(sum>max) max=sum;
                sum=0;
            }
            if(j==N)  nk++;
        }
        if(nk<=K) fout<<max;
        else
        {
            nk=0;
            sum=0;
            max=0;
            i=1;
            n=S/K;
            while(sum<=n)
            {
                sum=sum+v[i];
                i++;
            }
            fout<<sum;
        }
    }
    return 0;
}