Pagini recente » Cod sursa (job #2446245) | Cod sursa (job #621592) | Cod sursa (job #920212) | Cod sursa (job #2357452) | Cod sursa (job #1402726)
# include <fstream>
using namespace std;
ifstream fin ("transport.in");
ofstream fout ("transport.out");
int v[16005];
int n, k;
bool possible (int c)
{
int currentk=0, currentv=0, i;
for (i=0; i<n; i++)
{
if (currentv+v[i]<=c) currentv+=v[i];
else
{
currentk++;
currentv=v[i];
}
}
currentk++;
if (currentk<=k) return true;
return false;
}
int main()
{
int M=0, left, right, mid, i, sol=-1;
fin>>n>>k;
for (i=0; i<n; i++)
{
fin>>v[i];
M=max(M, v[i]);
}
left=M;
right=256005;
while (left<=right)
{
mid=(left+right)/2;
if (possible(mid))
{
sol=mid;
right=mid-1;
}
else left=mid+1;
}
fout<<sol;
return 0;
}