Cod sursa(job #2791907)

Utilizator mariaionescu2006Ionescu Maria mariaionescu2006 Data 31 octombrie 2021 12:44:21
Problema Transport Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin ("transport.in");
ofstream fout ("transport.out");
int n,k;
int v[16001];
int howMany(int cap)
{
    int nrt=1,s=0;
    for (int i=1;i<=n;i++)
        {if (s+v[i]<=cap) {s=s+v[i];}
         else {nrt++;s=v[i];}}
    return nrt;
}
int main()
{
    fin >>n>>k;
    for (int i=1;i<=n;i++)
        {fin >>v[i];}
    int left=1,right=256000000,sol;
    while (left<=right)
          {int mid;
           mid=(left+right)/2;
           if (howMany(mid)<=k) {sol=mid;
                                 right=mid-1;}
           else {left=mid+1;}}
    fout <<sol;
    return 0;
}