一、题意分析
简单阅读一边题目,看一眼数据范围,发现 $n \le 1000$。显然,最多 $1000$ 条申请直接模拟即可。
二、思路
没什么好说的,忠实地模拟每一条申请即可。
一定要注意操作的逻辑、时间顺序以及最大值的记录时间
三、AC code
Python
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| n = eval(input()) cnt = 0 lt = 0 mn = 0 for i in range(n): t, c = input().split() t, c = int(t), int(c) cnt -= t - lt lt = t if cnt < 0: cnt = 0 cnt += c if cnt > mn: mn = cnt print(cnt + t, mn)
|
C++
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| #include <bits/stdc++.h>
using namespace std;
int n, cnt, lt, mn, t, c;
int main() { cin >> n; for (int i = 0; i < n; i++) { cin >> t >> c; cnt -= t - lt; lt = t; if (cnt < 0) cnt = 0; cnt += c; if (cnt > mn) mn = cnt; } cout << cnt + t << " " << mn; }
|