Pagini recente » Cod sursa (job #799422) | Cod sursa (job #1513998) | Cod sursa (job #2923253) | Cod sursa (job #1909274) | Cod sursa (job #1358804)
#include <iostream>
#include <fstream>
#define D 100000000
using namespace std;
ifstream f("trasnport.in");
ofstream g("trasnport.out");
int n,k,sa[16005],sol;
void caut(int s,int d)
{
int 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()
{
int i,j;
f>>n>>k;
for(i=1;i<=n;i++)
f>>sa[i];
sol=D;
caut(1,256000000);
g<<sol;
}