解题思路
直接对每个询问模拟 K 位车主,时间复杂度为 O(KT),最多达到 109,无法通过。
注意到题目中:
- Fi≤500
- Pi≤500
题目内容
充电场站财务侧维护一条周转金账户。巡检员按固定顺序接待 K 位车主,账户初始持有若干非负整数周转金。
对第 i 位车主(1≤i≤K),登记三项参数:
- Fi:对方资金水位;
- Ri:若账户回流,对方拨付给账户的金额;
- Pi:若账户拨付,账户付给对方的金额。
接待规则如下:
- 若 Fi<当前周转金:账户拨付 Pi,周转金减少 Pi;若当前不足 Pi,则变为 0。
- 若 Fi≥当前周转金:对方拨付 Ri 给账户,周转金增加 Ri(保证 Ri≤Fi)。
共有 T 次核算询问。每次给出一个初始周转金 sj,求接待完全部 K 位车主后账户的周转金。
输入描述
第一行一个整数 K,表示车主人数。
接下来 K 行,每行三个整数 Fi,Ri,Pi,表示第 i 位车主的资金水位、回流金额与拨付金额。
接下来一行一个整数 T,表示询问次数。
接下来 T 行,每行一个整数 sj,表示第 j 次询问的初始周转金。
输出描述
对每个询问输出一行一个整数,表示接待结束后的周转金。
样例1
输入
3
12 4 2
18 6 3
14 5 2
5
0
8
12
16
20
输出
15
16
20
18
22
说明
以初始周转金 12 为例:
- 第 1 位 F1=12,当前 12,12≥12,回流 4,变为 16。
- 第 2 位 F2=18,当前 16,18≥16,回流 6,变为 22。
- 第 3 位 F3=14,当前 22,14<22,拨付 2,变为 20。
初始为 0 时依次回流 4,6,5,答案为 15。
初始为 20 时:先拨付 2 得 18,再回流 6 得 24,最后拨付 2 得 22。
数据范围
- 1≤K≤1×104
- 1≤Fi,Ri,Pi≤5×102,且 Ri≤Fi
- 1≤T≤100000
- 0≤sj≤1000000000
- 所有输入均为整数