正经题解|接水
2024-03-22 13:37:02
发布于:浙江
55阅读
0回复
0点赞
观察题目的数据范围,可以对每一秒钟发生的情况进行考虑。模拟 个水龙头每一秒的情况。按照题目要求当遇到一位同学接完时,等待的所有编号中最小的同学开始接水。
#include <iostream>
using namespace std;
const int maxn = 1e4 + 9;
int w[maxn], a[109];
int main() {
int n, m;
cin >> n >> m;
for (int i = 1; i <= n; i++) {
cin >> w[i];
}
for (int i = 1; i <= m; i++) {
a[i] = w[i];
}
int now = m + 1, ans = 0;
while (now <= n) {
for (int i = 1; i <= m; i++) {
a[i]--;
if (a[i] == 0) {
if (now <= n) {
a[i] = w[now];
now++;
}
}
}
ans++;
}
int ma = 0;
for (int i = 1; i <= m; i++) {
ma = max(ma, a[i]);
}
cout << ans + ma;
return 0;
}
这里空空如也
有帮助,赞一个