有 n 位畫家、m 幅畫。畫家以流水線方式作業:第 j 位畫家處理第 i 幅畫需 tij 時間。規則:
求每幅畫完成的時間。
維護陣列 t[j] 記錄第 j 位畫家完成上一幅畫的時間。對每幅畫 i:
t[1]max(t[j], 完成時間 of 畫家 j-1)t[j] 為該畫家完成本幅畫的時間#include <stdio.h>
#include <string.h>
#include <algorithm>
using namespace std;
const int N = 50005;
int m, n, ans[N];
int main() {
int v[10];
memset(v, 0, sizeof(v));
scanf("%d%d", &m, &n);
for (int i = 1; i <= m; i++) {
int cur_time = 0, a;
for (int j = 0; j < n; j++) {
scanf("%d", &a);
int start = max(v[j], cur_time);
cur_time = start + a;
v[j] = cur_time;
}
ans[i] = cur_time;
}
for (int i = 1; i < m; i++) printf("%d ", ans[i]);
printf("%d\n", ans[m]);
return 0;
}