CF1764F.Doremy's Experimental Tree

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

Doremy has an edge-weighted tree with nn vertices whose weights are integers between 11 and 10910^9 . She does n(n+1)2\frac{n(n+1)}{2} experiments on it.

In each experiment, Doremy chooses vertices ii and jj such that jij \leq i and connects them directly with an edge with weight 11 . Then, there is exactly one cycle (or self-loop when i=ji=j ) in the graph. Doremy defines f(i,j)f(i,j) as the sum of lengths of shortest paths from every vertex to the cycle.

Formally, let disi,j(x,y)\mathrm{dis}_{i,j}(x,y) be the length of the shortest path between vertex xx and yy when the edge (i,j)(i,j) of weight 11 is added, and Si,jS_{i,j} be the set of vertices that are on the cycle when edge (i,j)(i,j) is added. Then,

f(i,j)=x=1n(minySi,jdisi,j(x,y)).f(i,j)=\sum_{x=1}^{n}\left(\min_{y\in S_{i,j}}\mathrm{dis}_{i,j}(x,y)\right).

Doremy writes down all values of f(i,j)f(i,j) such that 1jin1 \leq j \leq i \leq n , then goes to sleep. However, after waking up, she finds that the tree has gone missing. Fortunately, the values of f(i,j)f(i,j) are still in her notebook, and she knows which ii and jj they belong to. Given the values of f(i,j)f(i,j), can you help her restore the tree?

It is guaranteed that at least one suitable tree exists.

输入格式

The first line of input contains a single integer nn (2n20002 \le n \le 2000) — the number of vertices in the tree.

The following nn lines contain a lower-triangular matrix with ii integers on the ii -th line; the jj -th integer on the ii -th line is f(i,j)f(i,j) ( 0f(i,j)210150 \le f(i,j) \le 2\cdot 10^{15} ).

It is guaranteed that there exists a tree whose weights are integers between 11 and 10910^9 such that the values of f(i,j)f(i,j) of the tree match those given in the input.

输出格式

Print n1n-1 lines describing the tree. In the ii -th line of the output, output three integers uiu_i , viv_i , wiw_i ( 1ui,vin1 \le u_i,v_i \le n , 1wi1091 \le w_i \le 10^9 ), representing an edge (ui,vi)(u_i,v_i) whose weight is wiw_i .

If there are multiple answers, you may output any.

All edges must form a tree and all values of f(i,j)f(i,j) must match those given in the input.

输入输出样例

  • 输入#1

    3
    7
    3 5
    0 2 8

    输出#1

    2 3 3
    1 2 2
  • 输入#2

    9
    8081910646
    8081902766 8081903751
    8081902555 8081903540 8081905228
    3090681001 3090681986 3090681775 7083659398
    7083657913 7083658898 7083658687 2092437133 15069617722
    1748216295 1748217280 1748217069 5741194692 749972427 10439821163
    2377558289 2377559274 2377559063 6370536686 1379314421 5028071980 8866466178
    1746983932 1746984917 1746984706 5739962329 748740064 10438588800 5026839617 10448447704
    2341942133 2341943118 2341942907 6334920530 1343698265 4992455824 8830850022 4991223461 9115779270

    输出#2

    1 2 985
    2 3 211
    2 4 998244353
    2 5 998244853
    4 6 671232353
    6 8 1232363
    4 7 356561356
    7 9 35616156

说明/提示

In the first test case, the picture below, from left to right, from top to bottom, shows the graph when pairs (1,1)(1,1) , (1,2)(1,2) , (1,3)(1,3) , (2,2)(2,2) , (2,3)(2,3) , (3,3)(3,3) are connected with an edge, respectively. The nodes colored yellow are on the cycle.

首页