Pagini recente » Cod sursa (job #2631698) | Cod sursa (job #1381546) | Cod sursa (job #2163463) | Cod sursa (job #1874531) | Cod sursa (job #1575531)
#include <fstream>
using namespace std;
long long n, k, i, a[16001], maxim, s, st, dr, mij, nr, suma;
int main()
{
ifstream f("transport.in");
ofstream g("transport.out");
f>>n>>k;
for(i=1;i<=n;i++)
{
f>>a[i];
if(a[i]>maxim)
maxim=a[i];
s+=a[i];
}
st=maxim;
dr=s;
while(st<=dr)
{
mij=(st+dr)/2;
nr=1;
for(i=1;i<=n;i++)
{
suma+=a[i];
if(mij<suma)
{
nr++;
suma=a[i];
}
}
if(suma<=mij)
{
if(nr>k)
st=mij+1;
else
dr=mij-1;
suma=0;
}
}
g<<st;
return 0;
}