Pagini recente » Cod sursa (job #1830400) | Cod sursa (job #1826398) | Cod sursa (job #385009) | Cod sursa (job #1983316) | Cod sursa (job #1540921)
#include <iostream>
#include<fstream>
using namespace std;
ifstream f("transport.in");
ofstream g("transport.out");
int v[16001],mini,k,n;
void s(int a,int b)
{
int x=(a+b)/2,t=k,su=0,i;
for(i=1;i<=n;i++)
{
su+=v[i];
if(su>x)
{
su=v[i];
t--;
}
}
t--;
if(t<0)
{
if((a+b)/2+1<=b)
s((a+b)/2+1,b);
}
else
{
mini=x;
if(a<=(a+b-1)/2)
s(a,(a+b)/2);
}
}
int main()
{
int su=0,maxi=0,i;
f>>n>>k;
for(i=1;i<=n;i++)
{
f>>v[i];su+=v[i];
if(maxi<v[i])
maxi=v[i];
}
mini=su;
s(maxi,su);
g<<mini;
return 0;
}