Pagini recente » Cod sursa (job #512951) | Cod sursa (job #3243292) | Cod sursa (job #2161347) | Cod sursa (job #2131927) | Cod sursa (job #1358827)
#include <iostream>
#include <fstream>
#define D 100000000
using namespace std;
ifstream f("transport.in");
ofstream g("transport.out");
long long n,k,sa[16005],sol;
void caut(long long s,long long d)
{
long long i,j,mij,sum,t;
if(s>d)
return;
mij=(s+d)/2;
sum=0;
t=0;
for(i=1;i<=n;i++)
{
sum=sum+sa[i];
if(sum>mij)
{
sum=sa[i];
t++;
}
}
t++;
if(t<=k)
{
if(sol>mij)
sol=mij;
caut(s,mij-1);
}
else caut(mij+1,d);
}
int main()
{
long long i,j;
f>>n>>k;
for(i=1;i<=n;i++)
f>>sa[i];
sol=D;
caut(1LL,999999999999LL);
g<<sol;
}