#AT2402. F - Pay or Receive

F - Pay or Receive

当前没有测试数据。

F - 支付或接收

分值:500分

问题描述

有$N$个城镇,编号为$1,\ldots,N$,以及$M$条道路,编号为$1,\ldots,M$。

第$i$条道路连接城镇$A_i$和$B_i$。当你使用一条道路时,你的分值会按照以下规则变化:

  • 当你从城镇$A_i$移动到城镇$B_i$,使用道路$i$时,你的分值会增加$C_i$;当你从城镇$B_i$移动到城镇$A_i$,使用道路$i$时,你的分值会减少$C_i$。

你的分值可能为负数。

回答以下$Q$个问题。

  • 如果你从初始分值为$0$的城镇$X_i$开始旅行,求在到达城镇$Y_i$时可能的最大分值。
    如果你无法从城镇$X_i$到达城镇$Y_i$,输出nan;如果在到达城镇$Y_i$时,你可以获得尽可能大的分值,输出inf

约束

  • $2\leq N \leq 10^5$
  • $0\leq M \leq 10^5$
  • $1\leq Q \leq 10^5$
  • $1\leq A_i,B_i,X_i,Y_i \leq N$
  • $0\leq C_i \leq 10^9$
  • 输入中的所有值都是整数。

输入

输入数据有以下格式:

NN MM QQ

A1A_1 B1B_1 C1C_1

\vdots

AMA_M BMB_M CMC_M

X1X_1 Y1Y_1

\vdots

XQX_Q YQY_Q

输出

按照问题描述中的要求输出$Q$行。
第$i$行输出第$i$个问题的答案。


5 5 3
1 2 1
1 2 2
3 4 1
4 5 1
3 5 2
5 3
1 2
3 1
-2
inf
nan

对于第一个问题,如果使用道路$5$从城镇$5$移动到城镇$3$,在到达城镇$3$时,你可以获得分值$-2$。
由于你无法获得更大的分值,答案是$-2$。

对于第二个问题,如果你按照以下规则行动,你可以在到达城镇$2$时获得任意大的分值: 反复“使用道路$2$从城镇$1$移动到城镇$2$,然后使用道路$1$从城镇$2$移动到城镇$1$”任意次数, 最后使用道路$2$从城镇$1$移动到城镇$2$。

对于第三个问题,你无法从城镇$3$到达城镇$1$。


2 1 1
1 1 1
1 1
inf

一条道路的两个端点可能相同,同样的,问题中给定的两个城镇也可能相同。


9 7 5
3 1 4
1 5 9
2 6 5
3 5 8
9 7 9
3 2 3
8 4 6
2 6
4 3
3 8
3 2
7 9
inf
nan
nan
inf
-9