Cod sursa(job #3262224)

Utilizator PetruApostolApostol Mihnea Petru PetruApostol Data 9 decembrie 2024 12:57:31
Problema Transport Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.18 kb

/******************************************************************************

                              Online C++ Compiler.
               Code, Compile, Run and Debug C++ program online.
Write your code in this editor and press "Run" button to compile and execute it.

*******************************************************************************/

#include <fstream>

using namespace std;
ifstream cin("transport.in");
ofstream cout("transport.out");

int v[16005];
int main()
{
    int n,k,maxim=0,cnt=0;
    int long long sum=0,sumc=0,mid,st,dr,ans=2100000000;
    cin>>n>>k;
    for(int i=1;i<=n;i++)
    {
        cin>>v[i];
        sum+=v[i];
        maxim=max(maxim,v[i]);
    }
    st=maxim;
    dr=sum;
     while(st<=dr)
    {
        mid=(st+dr)/2;
       cnt=1;
      sumc=0;
        
        for(int i=1;i<=n;i++)
        {
           sumc+=v[i];
           if(sumc>mid)
           {
               sumc=v[i];
               cnt++;
           }
    
        }
        if(cnt<=k)
        {
            
            ans=min(ans,mid);
            dr=mid-1;
        }
        else
        {
          //  ans=min(ans,st);
            st=mid+1;
        }
    }
    cout<<ans;

    return 0;
}