Pagini recente » Cod sursa (job #1246883) | Cod sursa (job #1185462) | Cod sursa (job #2033396) | Cod sursa (job #2753470) | Cod sursa (job #1338249)
#include <iostream>
#include <fstream>
using namespace std;
int n,k,x[16005],s,mij,in,sf,c;
int main()
{
int i,j,mx=0,mn=16005;
FILE *f=fopen("transport.in","r");
FILE *g=fopen("transport.out","w");
fscanf(f,"%d %d",&n,&k);
for(i=1;i<=n;i++)
{
fscanf(f,"%d",&x[i]);
s+=x[i];
mx=max(mx,x[i]);
}
int in=mx,sf=s;
while(in<=sf)
{
mij=in+(sf-in)/2;
s=0;
c=1;
for(i=1;i<=n;i++)
{
s+=x[i];
if(s>mij)
{
s=x[i];
c++;
}
}
if(c<=k)
{
sf=mij-1;
mn=mij;
}
else
{
in=mij+1;
mn=mij;
}
}
fprintf(g,"%d\n",mn);
return 0;
}