#ddcc2019finale. [ddcc2019_final_e]飾りつけ (Decoration)

[ddcc2019_final_e]飾りつけ (Decoration)

问题描述

公司D将迎来成立80周年纪念,为此决定在办公室前面装饰一个图形。
该图形需要满足以下条件:

  • 它是一幅有向加权图。
  • 它有N个顶点和M条边,顶点从1到N编号。
  • N ≤ 70。
  • 第i条边是从顶点uiu_i到顶点viv_i的有向边,权重为wiw_i,满足ui<vi,0wi2,000u_i < v_i, 0 ≤ w_i ≤ 2,000(其中wiw_i为整数),并且当iji \neq j时,(ui,vi)(uj,vj)(u_i, v_i) \neq (u_j, v_j)
  • 从顶点1到N的任何路径的长度都是p1,p2,p3,...,pQp_1, p_2, p_3, ..., p_Q中的某一个值。其中路径长度指的是该路径上所有边的权重之和。
  • 从顶点1到N的路径中,长度为p1p_1的路径至少有1条,长度为p2p_2的路径至少有1条,长度为p3p_3的路径至少有1条,..., 长度为pQp_Q的路径至少有1条。

请构建一幅满足以上条件的图形。
顶点数越少,装饰的费用就越低,因此总经理也会很高兴。

约束条件

  • 1Q2,0001 ≤ Q ≤ 2,000
  • 1p1<p2<p3<...<pQ2,0001 ≤ p_1 < p_2 < p_3 < ... < p_Q ≤ 2,000
  • 所有输入值都是整数

得分

得分根据以下计算方法确定:

  • 如果有任何一个测试用例不正确,则得分为0分。
  • 如果所有测试用例都正确,使用最大的N值作为L,则得分根据以下规则确定:
    • 66L7066 ≤ L ≤ 70时,得分为600分。
    • 61L6561 ≤ L ≤ 65时,得分为800分。
    • 54L6054 ≤ L ≤ 60时,得分为990+30×(60L)990 + 30 \times (60 - L)分。
    • L53L ≤ 53时,得分为1200分。

注意,在该问题的约束条件下,可以证明对于任意输入,总会存在满足条件的图形使得N53N ≤ 53

输入

从标准输入中以以下格式给出输入。

QQ

p1p_1 p2p_2 p3p_3 ...... pQp_Q

输出

以以下格式输出满足条件的一幅图形。

NN MM

u1u_1 v1v_1 w1w_1

u2u_2 v2v_2 w2w_2

u3u_3 v3v_3 w3w_3

...

uMu_M vMv_M wMw_M

如果存在多个满足条件的图形,输出其中任意一个即可。

示例1

3
1 2 5

输出示例1

5 6
1 2 1
1 3 2
1 4 5
2 5 0
3 5 0
4 5 0

这个输出对应以下图形:

从顶点1到N=5的路径有以下3条:

  • 112255:长度为1+0=11 + 0 = 1
  • 113355:长度为2+0=22 + 0 = 2
  • 114455:长度为5+0=55 + 0 = 5

以上路径满足Q=3,p1=1,p2=2,p3=5Q = 3, p_1 = 1, p_2 = 2, p_3 = 5的条件。除此之外,例如以下输出也是正确的解答:

4 6
1 2 1
1 3 4
1 4 1
2 3 3
2 4 1
3 4 1

示例2

4
1 2 3 4

输出示例2

5 10
1 2 1
1 3 1
1 4 1
1 5 1
2 3 1
2 4 1
2 5 1
3 4 1
3 5 1
4 5 1

示例3

7
1 3 7 9 11 14 16

输出示例3

8 15
1 2 1
1 3 2
1 4 3
5 8 0
6 8 0
7 8 0
2 5 0
2 6 2
2 7 6
3 5 7
3 6 9
3 7 12
4 5 13
4 6 8
4 7 6