Pagini recente » Autentificare | Cod sursa (job #1040372) | Lot 2017 Clasament | Cod sursa (job #753566) | Cod sursa (job #3213324)
#include <fstream>
using namespace std;
ifstream cin("transport.in");
ofstream cout("transport.out");
long long n,k, numere[16005];
bool verif(int cap)
{
long long s=0, sol=1;
for(int i=1; i<=n; i++)
if(s+numere[i] > cap)
sol++, s=numere[i];
else
s+=numere[i];
if(sol <= k)
return true;
return false;
}
int main()
{
int maxi=0, sum=0, sol;
cin>>n>>k;
for(int i=1; i<=n; i++)
{
cin>>numere[i];
if(numere[i] > maxi)
maxi=numere[i];
sum+=numere[i];
}
long long st=maxi, dr=sum;
while(st <= dr)
{
long long mid=st+(dr-st)/2;
if(verif(mid) == true)
sol=mid, dr=mid-1;
else
st=mid+1;
}
cout<<sol;
return 0;
}