列表

详情


NC53195. 汇款

描述

译自 JOI Open 2019 T2 「送金 / Remittance
JOI王国的河狸湖边有N座房子,按逆时针方向给房子从1到N编号。
站在湖所在的位置看,每一座房子可以给它左边相邻的房子汇款,即:对于房子,它左边的房子是房子i+1,对于房子N,它左边的房子为房子1。然而,汇一笔款的手续费等于汇款金额。汇款金额必须是一个整数。当你汇款的时候,你必须交手续费,所以汇款钱数和手续费之和不能超出房子里的钱数。
目前,房子里有A_i元。另一方面,从收税的角度来看,我们希望房子i里的钱数等于B_i。因此你希望利用汇款系统使得房间i里钱数等于B_i元。你不能通过除给别的房子汇款和交手续费之外的方式花掉钱。
给定每座房子目前有的钱数和期望钱数,写一个程序判断能否使得每间房子都达到期望的钱数。

输入描述

第一行一个整数N,表示房子数目;
接下来N行,每行两个非负整数A_i,B_i,分别表示房子i的目前钱数和期望钱数。

输出描述

如果能让所有房子内钱数等于期望钱数,输出Yes,否则输出No。

示例1

输入:

5
0 0
1 0
2 3
3 3
4 0

输出:

Yes

说明:

例如,按以下方法,可以让所有房子内钱数等于期望钱数。

1.从房子5给房子1汇2元,并交手续费2元;

2.从房子1给房子2汇1元,并交手续费1元;

3.从房子2给房子3汇1元,并交手续费1元。

示例2

输入:

5
0 0
1 2
2 4
3 2
4 0

输出:

No

说明:

通过汇款系统,你不可能使得所有房子的钱数等于期望钱数。

示例3

输入:

2
1 1
2 1

输出:

No

说明:

注意汇款金额必须是整数。

示例4

输入:

2
1 1
2 2

输出:

Yes

说明:

你不需要使用汇款系统。

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

上一题