#P13043. [AGC045E] Fragile Balls

[AGC045E] Fragile Balls

题目描述

我们有nn个盒子和mm个球(编号都从11开始),目前,球iiAiA_i盒子中。

接下来,对于每次操作,你可以执行以下几个操作中的一个:

  • 选择一个装有两个或更多球的盒子,从中拿出一个球,把它放入另一个盒子当中
  • 由于球都是易碎的,因此,你总共不能移动球ii超过CiC_i次。

你现在的目标是对于每个ii,将球ii放入盒子BiB_i中。请确定这个目标是否可以实现,如果可以,则输出最少需要操作的次数,如果不可以,则输出-1。

输入格式

第一行输入两个数字n,mn,m,表示盒子和球的数量。

接下来mm行,每行三个数字Ai,Bi,CiA_i,B_i,C_i,表示第ii个球最初始的位置,需要到达的目标位置,能够最多移动的次数。

输出格式

如果有解,则输出最少需要操作的次数,如果无解,则输出-1.

输入输出样例 #1

输入 #1

3 3
1 2 1
2 1 1
1 3 2

输出 #1

3

输入输出样例 #2

输入 #2

2 2
1 2 1
2 1 1

输出 #2

-1

输入输出样例 #3

输入 #3

5 5
1 2 1
2 1 1
1 3 2
4 5 1
5 4 1

输出 #3

6

输入输出样例 #4

输入 #4

1 1
1 1 1

输出 #4

0