43 lines
1.1 KiB
C++
43 lines
1.1 KiB
C++
#include <bits/stdc++.h>
|
||
/*
|
||
测试用例I:
|
||
7
|
||
3 5 2 4 7 1 6
|
||
|
||
整体时长
|
||
10 12 6
|
||
|
||
答案:6
|
||
|
||
--------
|
||
|
||
测试用例II:
|
||
2
|
||
1 100
|
||
|
||
期望答案:0
|
||
*/
|
||
using namespace std;
|
||
int a[4]; //每个窗口的工作累加时长
|
||
int n, b[60]; // n:客户个数,b[i]:i这个客户办理业务需要的时长
|
||
int p; //现在该轮到哪个用户办理了
|
||
|
||
int main() {
|
||
cin >> n;
|
||
for (int i = 1; i <= n; i++) cin >> b[i];
|
||
|
||
// 1、计时器,不喜欢while(true),用for循环替代
|
||
for (int t = 0;; t++) {
|
||
// 2、哪个窗口办理完毕
|
||
for (int i = 1; i <= 3; i++) {
|
||
if (a[i] == t) { //如果累计时长等于当前时长,说明现在正好办理完毕
|
||
a[i] += b[++p]; //将i窗口安排上++p这个客户,增加b[++p]的时长
|
||
if (p > n) { //到当前窗口时,没有客户了,说明当前窗口是最早结束任务的,直接输出当前的时间
|
||
cout << t << endl;
|
||
return 0;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
return 0;
|
||
} |