Pagini recente » Cod sursa (job #707089) | Cod sursa (job #2016411) | Cod sursa (job #205067) | Statistici Petran George Stelian (mutza2) | Cod sursa (job #2332646)
#include <fstream>
#define max(a,b) a > b ? a : b
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
int n,k,s[16002],suma,maximao = -1,raspuns = 0;
void citire()
{
fin>>n>>k;
int i;
for(i = 1; i <= n; ++i)
{
fin>>s[i];
suma += s[i];
maximao = max(maximao, s[i]);
}
}
void rezolvare()
{
int solutie,st = maximao, dr = suma, i, drum, cap,mijl;
while(st <= dr)
{
mijl = (st + dr) / 2;
drum = cap = 0;
for(i = 1; i <= n; ++i)
if(cap + s[i] <= mijl && s[i] <= mijl)
cap += s[i];
else
{
drum++;
cap = s[i];
}
if(cap <= mijl)
drum++;
if(drum > k)
st = mijl + 1;
else
{
dr = mijl - 1;
solutie = mijl;
}
}
fout<<solutie;
}
int main()
{ citire();
rezolvare();
return 0;
}