2630: 最小奖励

内存限制:128 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:4 解决:2

题目描述

Jzabc更是一个狂热的旅游爱好者。这次他想去一个诡异的地方。这个地方有n个村庄,编号为1n。此刻他在1号村庄,他想去n号村庄。这n个村庄之间有m条单向道路。通过某些道路时,可能会花费一些钱作为“买路钱”,可是通过一些道路时,不仅不需要交“买路钱”,而且会得到一些奖励(这就是诡异的地方?)。当然两个村庄之间可能有多条直接相连的道路。但是每一条路只能通过一次。

这些村庄有这样的特性,从任何一个村庄出发,沿着任一条路径走都不会回到出发点。找到一条路径从1号村庄到n号村庄后,他需要计算一共得到多少奖励,一共交了多少“买路钱”。如果得到的总奖励钱数大于交的“买路钱”数,那么称这走一条路径可以得到奖励;相反,如果前者小于后者,那么称走这一条路径需要花费。如果两者相等,那么Jzabc不会选这一条路(我也不知道他为什么不选这一条路径)。不会出现所有的路径两者都相等。他又需要你的帮助,让你找一条路径,使他得到的奖励最小(为什么不是最大的奖励?),并输出最小奖励。如果找不到一条路径能使他得到奖励,那么就找一条路径是他得到的花费最大(为什么就不是最小的花费?),并输出最大花费。

 

输入

第一行

两个正整数nm,中间用空格隔开

n是村庄总数,m是道路总数

以下m行,每行三个正整数xyw,描述一条道路的信息,中间用空格隔开

x是此条道路的起点,y是终点,

w为正,则是通过此条道路得到的奖励钱数

w为负,则是通过此条道路交的“买路钱”数

w不为0,并且|w|<=10

 

输出

一个整数。若有最小奖励,则输出。否则输出最小花费。

样例输入 复制

3 4
1 2 2
2 3 -1
2 3 3
1 3 -1

样例输出 复制

1

提示

minaw.in

minaw.out

3 4

1 2 2

2 3 -3

2 3 -5

1 3 -2

3

 

20%的数据,n<=20m<=200

50%的数据,n<=50m<=2000

100%的数据,n<=100m<=20000