Cod sursa(job #3287084)

Utilizator Andreea1501013Andreea Andreea1501013 Data 15 martie 2025 13:07:28
Problema Transport Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <fstream>

using namespace std;
int N,K,v[16005],l=0,r=300000000,sol;
bool check(int m)
{
    long long sum=0,tr=0;
    for(int i=0;i<N;i++)
    {
        if(sum+v[i]>m)
        {
            sum=v[i];
            tr++;
        }
        else sum+=v[i];
        if(tr>=K || sum>m)
            return 0;
    }
    return 1;
}
int main()
{
  ifstream cin("transport.in");
  ofstream cout("transport.out");
  cin>>N>>K;
  for(int i=0;i<N;i++)
  {
      cin>>v[i];
  }
  while(l<=r)
  {
      int m=(l+r)/2;
      bool ok=check(m);
      if(ok==0)
      {
          l=m+1;
      }
      else{
        r=m-1;
        sol=m;
      }
  }
  cout<<sol;
    return 0;
}