C. 构造题
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output

给你一段魔改的 Dijkstra 代码,构造一组节点数 $$$\le 30$$$ 的数据使得这段代码内的 $$$push\_count \ge 10^{8}$$$


for each vertex v ∈ G.V
v.d = ∞
s.d = 0

Q = ∅
INSERT(Q, (s, 0))
push_count = 0

while Q ≠ ∅
(u, d) = EXTRACT-MIN(Q)
if d > u.d
continue
for each vertex v ∈ G.Adj[u]
if u.d + w(u, v) < v.d
v.d = u.d + w(u, v)
INSERT(Q, (v, v.d))
push_count = push_count + 1
return push_count

你需要构造一张有向图,满足以下所有条件:

  1. 图的节点编号为 $$$1$$$ 到 $$$N$$$,其中节点数限制为 $$$1 \le N \le 30$$$。
  2. 图的有向边数限制为 $$$0 \le M \le 100$$$。
  3. 边权的范围可以为负数,要求 $$$-10^{12} \le w \le 10^{12}$$$。
  4. 图中绝对不能存在任何负权环(即必须保证最短路径有解且不会陷入死循环)。
  5. 将你的图输入到题面的程序中(以节点 $$$1$$$ 为起点),程序运行结束时,统计到的 push_count(即向优先队列中执行插入操作的次数)必须大于等于 $$$10^{8}$$$。
Input

本题没有输入数据。

Output

你需要输出你构造的图:

第一行输出两个正整数 $$$N$$$ 和 $$$M$$$,分别表示节点数和边数。

接下来 $$$M$$$ 行,每行三个整数 $$$u, v, w$$$,表示存在一条从节点 $$$u$$$ 指向节点 $$$v$$$ 的有向边,权重为 $$$w$$$。($$$1 \le u, v \le N, u \neq v$$$)。

你可以输出重边,但不能输出自环。请确保图中不存在总和为负的环。