Pagini recente » Cod sursa (job #2900167) | Cod sursa (job #2659758) | Cod sursa (job #1000576) | Cod sursa (job #3292116) | Cod sursa (job #2402522)
#include <iostream>
#include <fstream>
#define maxim 16009
using namespace std;
ifstream f("transport.in");
ofstream g("transport.out");
int n,k;
int v[maxim];
int nr(int x)
{ int s=0,k=0;
for (int i=1;i<=n;i++)
{
if (s+v[i]>x)
{
k++;
s=v[i];
}
else if (s+v[i]==x)
{
s=0;
k++;
}
else s+=v[i];
}
if (s!=0) k++;
return k;
}
int main()
{ int maxi=0,j=0;
f>>n>>k;
for (int i=1;i<=n;i++)
{f>>v[i];
if (v[i]>maxi)
maxi=v[i];
j+=v[i];
}
int i=maxi;
while (i<=j)
{
int m=(i+j)/2;
if (nr(m)<=k)
j=m-1;
else i=m+1;
}
g<<i;
}