Pagini recente » Cod sursa (job #1883812) | Cod sursa (job #619073) | Cod sursa (job #1846520) | Cod sursa (job #691037) | Cod sursa (job #1925468)
#include <fstream>
using namespace std;
ifstream in ("transport.in");
ofstream out ("transport.out");
int v[16001];
int main()
{
int n, k, i, s, cnt, pas, r, ok;
in>>n>>k;
for (i=1; i<=n; i++)
{
in>>v[i];
}
pas=1<<28;
r=0;
while ( pas !=0 )
{
s=0;
cnt=1;
ok=1;
for (i=1; i<=n; i++)
{
if (v[i] > r+pas)
ok=0;
if (s+v[i]<=r+pas)
s+=v[i];
else
{
cnt++;
s=v[i];
}
}
if (cnt > k || ok==0)
{
r+= pas;
}
pas/=2;
}
out<<r+1;
return 0;
}