範例程式碼 uva714
//uva714
#include <cstdio>
#include <iostream>
#include <cstring>
using namespace std;
int main(void) {
int N, m, k, i, p[505], cnt, s[505];
long long r, l, t, sum;
scanf("%d", &N);
while(N--) {
scanf("%d %d", &m, &k);
r = l = 0;
for(i = 0; i < m; ++i) {
scanf("%d", &p[i]);
if(l < p[i]) l = p[i];
r += p[i];
}
while(l < r) {
t = (r + l) / 2;
cnt = sum = 0;
for(i = 0; i < m; ++i) {
sum += p[i];
if(sum > t) {
++cnt;
sum = p[i];
}
}
if(cnt < k) r = t;
else l = t + 1;
}
cnt = sum = 0;
memset(s, 0, sizeof(s));
for(i = m - 1; i >= 0; --i) {
sum += p[i];
if(sum > r || i < k - cnt - 1) {
s[i] = 1;
++cnt;
sum = p[i];
}
}
for(i = 0; i < m; ++i) {
if(i) printf(" ");
printf("%d", p[i]);
if(s[i])
printf(" /");
}
printf("\n");
}
return 0;
}