Pagini recente » Cod sursa (job #2114904) | Cod sursa (job #1967165) | Clasamentul arhivei de probleme | Istoria paginii runda/oni_2013_baraj | Cod sursa (job #1967252)
#include <fstream>
using namespace std;
ifstream cin("transport.in");
ofstream cout("transport.out");
int n, v[16006], k;
int bini(int dr, int st,int v[], int x)
{
int elem, i, t, m ;
m = (st + dr) / 2;
while(st <= dr)
{ m = (st + dr) / 2;
t = 1; int s = 0;
for(i = 1; i <= n;i ++)
if(s + v[i] <= m)
s = s + v[i];
else
{
t++;
s = v[i];
}
if( t > x)
st = m + 1;
else
{
elem = m;
dr = m - 1;
}
}
return elem;
}
int main()
{
int i, mini = 0, sum = 0, cm;
cin >> n >> k;
for(i = 1; i <= n; i++)
{
cin >> v[i];
if(v[i] > mini)
mini = v[i];
sum = sum + v[i];
}
cout << bini(sum, mini, v, k);
return 0;
}