#codefestival2016finalg. [codefestival_2016_final_g]Zigzag MST

[codefestival_2016_final_g]Zigzag MST

题目描述

我们有一个具有NN个顶点的图,编号为00N1N-1。边还没有添加。

我们将处理QQ个查询来添加边。在第ii(1iQ)(1≤i≤Q)查询中,将给出三个整数Ai,BiA_i, B_iCiC_i,我们将如下无限添加多条边到图中:

  • 编号为AiA_iBiB_i的两个顶点将以权重CiC_i相连。
  • 编号为BiB_iAi+1A_i+1的两个顶点将以权重Ci+1C_i+1相连。
  • 编号为Ai+1A_i+1Bi+1B_i+1的两个顶点将以权重Ci+2C_i+2相连。
  • 编号为Bi+1B_i+1Ai+2A_i+2的两个顶点将以权重Ci+3C_i+3相连。
  • 编号为Ai+2A_i+2Bi+2B_i+2的两个顶点将以权重Ci+4C_i+4相连。
  • 编号为Bi+2B_i+2Ai+3A_i+3的两个顶点将以权重Ci+5C_i+5相连。
  • 编号为Ai+3A_i+3Bi+3B_i+3的两个顶点将以权重Ci+6C_i+6相连。
  • ...

在这里,考虑顶点的索引对NN取模。例如,编号为NN的顶点是编号为00的顶点,编号为2N12N-1的顶点是编号为N1N-1的顶点。

下图显示了当N=16,Ai=7,Bi=14,Ci=1N=16, A_i=7, B_i=14, C_i=1时添加的前七条边:

处理完所有查询后,找到包含在图的最小生成树中的边的总权重。

约束条件

  • 2N200,0002≤N≤200,000
  • 1Q200,0001≤Q≤200,000
  • 0Ai,BiN10≤A_i,B_i≤N-1
  • 1Ci1091≤C_i≤10^9

输入

输入以以下格式从标准输入给出:

NN QQ A1A_1 B1B_1 C1C_1 A2A_2 B2B_2 C2C_2 : AQA_Q BQB_Q CQC_Q

输出

打印包含在图的最小生成树中的边的总权重。

示例输入 1

7 1
5 2 1

示例输出 1

21

下图显示了图的最小生成树:

注意,可以有多条连接相同一对顶点的边。

示例输入 2

2 1
0 0 1000000000

示例输出 2

1000000001

还要注意,可以有自环。

示例输入 3

5 3
0 1 10
0 2 10
0 4 10

示例输出 3

42