#Lutece2214. 迷宫
迷宫
Migrated from Lutece 2214 迷宫
All parts of this problem, including description, images, samples, data and checker, might be broken. If you find bugs in this problem, please contact the admins.
Description
有一天QWsin
梦到了一个巨型迷宫,迷宫有个房间,条有向边,一条有向边表示可以从房间出发走到房间,迷宫的出口是那些无法再往其他任何房间走的房间,到达了出口QWsin
才能醒来。由于QWsin菜的不清醒,也不知道整个迷宫的样子,他只能随机
走,他怀疑自己可能会碰到最坏的情况然后在迷宫永远无法醒来。所以他找到了你,一个梦境外的人,在他开始走迷宫之前帮他翻转一些边的方向(注:若一条边翻转之前是,那么翻转之后变成),使得无论他采取何种方法,从哪个点出发,足够长时间之后都能够走到迷宫的出口(你可能会改变出口房间,但无论何时,出口房间都是那些无法再往其他任何房间走的房间)。同时翻转一条边是需要一定时间的,但由于你在梦境外,你可以同时翻转任意多条边,并且QWsin希望你用最短的时间使得迷宫符合之前所述条件。
如果这是不可能的,请输出"Sleep forever!"
(不含引号)
数据保证不会有一条有向边的起点和终点是同一个点。
Input
第一行两个数表示迷宫的房间数和边数。
下面行每行3个数,表示一条从到的边,翻转这条边需要的时间。 。
Output
如果有可行方案,输出 一行一个数,表示达成目标条件需要的最短时间。
否则输出一行一个字符串 "Sleep forever!"
(不含引号)。
Samples
4 7
1 2 1
2 3 2
3 4 3
4 1 4
1 3 5
1 3 5
4 2 6
3
Note
对于所给的样例,将边和同时翻转即可。
Resources
2019 UESTC ACM Training for Graph