#P3096. [USACO13DEC] Vacation Planning G

[USACO13DEC] Vacation Planning G

说明

题目描述 Air Bovinia 航空公司运营连接奶牛们居住的 NN 个农场的农场(1N20,0001 \le N \le 20,000)。与任何航空公司一样,其中有 KK 个农场被指定为枢纽(1K2001 \le K \le 200KNK \le N)。

目前,Air Bovinia 提供 MM 条单向航班(1M20,0001 \le M \le 20,000),其中第 ii 个航班从农场 uiu_i 飞往农场 viv_i,费用为 did_i 美元(1di10,0001 \le d_i \le 10,000)。与其他任何明智的航空公司一样,对于这些航班中的每一个,uiu_iviv_i 中至少有一个是枢纽。在任何给定的方向上,两个农场之间最多有一条直飞航班,并且没有航班从同一个农场起飞并降落在同一个农场。

Bessie 负责管理 Air Bovinia 的票务服务。不幸的是,当她离开几个小时去咀嚼美味的干草时,收到了 QQ 个奶牛假期度假的单向旅行请求(1Q50,0001 \le Q \le 50,000),其中第 ii 个请求是从农场 aia_i 到农场 bib_i

由于 Bessie 在处理这些票务时不知所措,请帮助她计算每个票务请求是否可以实现,以及如果可以的话,其最小费用是多少。

为了减少输出大小,你只需要输出可以实现的票务请求的总数,以及它们的最小总费用。请注意,这个数字可能无法放入 32 位整数中。

输入格式

  • 第 1 行:整数 NNMMKKQQ
  • 第 2 行到第 M+1M + 1 行:第 i+1i + 1 行包含 uiu_iviv_idid_i。(1ui,viN1 \le u_i, v_i \le Nuiviu_i \neq v_i
  • M+2M + 2 行到第 M+K+1M + K + 1 行:每行包含单个枢纽的 ID(范围在 11NN 之间)。
  • M+K+2M + K + 2 行到第 M+K+Q+1M + K + Q + 1 行:每行两个数字,表示从农场 aia_ibib_i 的票务请求。(1ai,biN1 \le a_i, b_i \le Naibia_i \neq b_i

输出格式

  • 第 1 行:可以实现票务请求的数量。
  • 第 2 行:实现所有可行票务请求的最小总费用。
3 3 1 2 
1 2 10 
2 3 10 
2 1 5 
2 
1 3 
3 1 

1 
20 

提示

对于第一个航班,唯一可行的路线是 1231 \to 2 \to 3,花费 2020 美元。没有从农场 33 起飞的航班,所以可怜的奶牛们被困在那里了。