Pagini recente » Cod sursa (job #1602540) | Cod sursa (job #1656566) | Cod sursa (job #2862885) | Cod sursa (job #421040) | Cod sursa (job #2275765)
#include <iostream>
#include <math.h>
#include <fstream>
using namespace std;
int main()
{
int m = -1, sum = 0, v[16000], n, k, nr, s, su, ok = 0, i, j;
float a;
ifstream ifs("transport.in");
ofstream ofs("transport.out");
ifs >> n >> k;
for ( i = 0; i != n; i++ ) {
ifs >> v[i];
if ( v[i] > m ) {
m = v[i];
}
sum = sum + v[i];
}
a = sum / k;
a = ceil(a);
if ( a > m ) {
nr = a;
}
else {
nr = m;
}
while ( ok == 0 ) {
s = 0;
su = 0;
i = 0;
j = 0;
while ( ( i != k ) && ( j != n ) ) {
if ( s + v[j] > nr ) {
s = v[j];
i++;
if ( i == k ) {
break;
}
}
else {
s = s + v[j];
}
su = su + v[j];
j++;
}
if ( su == sum ) {
ok = 1;
}
else {
nr++;
}
}
ofs << nr;
return 0;
}