Pagini recente » Cod sursa (job #2367677) | Cod sursa (job #74081) | Cod sursa (job #679155) | Cod sursa (job #1499394) | Cod sursa (job #2335710)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("transport.in");
ofstream out("transport.out");
int n,k,a[16005];
bool verif(int x)
{
int i=0;
long long sum=0,cont=0;
while(i<=n)
{
sum=0;
if(a[i+1]>x)return 0;
while(sum+a[i+1]<=x && i<=n)
{
sum+=a[++i];
}
cont++;
}
if(cont>k)
return 0;
return 1;
}
int main()
{
in>>n>>k;
for(int i=1;i<=n;i++)
{
in>>a[i];
}
long long st=1,dr=16000*16000,mij;
while(st<dr)
{
mij=(dr+st)/2;
if(verif(mij))
{
dr=mij;
}
else
{
st=mij+1;
}
}
out<<st;
return 0;
}