Pagini recente » Cod sursa (job #293377) | Diferente pentru implica-te/arhiva-educationala intre reviziile 223 si 161 | Cod sursa (job #458225) | Cod sursa (job #1160804) | Cod sursa (job #1366518)
#include<fstream>
using namespace std;
ifstream f("transport.in");
ofstream g("transport.out");
int v[16001],n,k;
int main()
{
f>>n>>k;
int i,s,maxi=0,inc,sf,mij,cont,r,m;
for(i=1;i<=n;i++)
{
f>>v[i];
s+=v[i];
if(v[i]>maxi) maxi=v[i];
}
inc=maxi; sf=s;
while(inc<=sf)
{
mij=(inc+sf)/2;
m=0;
cont=1;
for(i=1;i<=n;i++)
{
m=m+v[i];
if(m>mij)
{
m=v[i];
cont++;
}
}
if(cont<=k)
{
sf=mij-1;
r=mij;
}
else
{
inc=mij+1;
r=mij+1;
}
}
g<<r<<'\n';
f.close();
g.close();
return 0;
}