题库练习 Tree and Array
← 上一题 下一题 →

A9456 | Tree and Array

时间限制1s
内存限制256MB
通过 / 提交0/0

题目描述

User ainta likes trees. This time he is going to make an undirected tree with $n$ vertices numbered by integers from $1$ to $n$ . The tree is weighted, so each edge of the tree will have some integer weight.

Also he has an array $t$ : $t[1],t[2],...,t[n]$ . At first all the elements of the array are initialized to $0$ . Then for each edge connecting vertices $u$ and $v$ ( $u<v$ ) of the tree with weight $c$ , ainta adds value $c$ to the elements $t[u],t[u+1],...,t[v-1],t[v]$ of array $t$ .

Let's assume that $d(u,v)$ is the total weight of edges on the shortest path between vertex $u$ and vertex $v$ . User ainta calls a pair of integers $x,y$ ( $1<=x<y<=n$ ) good if and only if $d(x,y)=t[x]+t[x+1]+...+t[y-1]+t[y]$ .

User ainta wants to make at least ![](/uploads/acgo/image/b9395ea77a26b016_8e83e6344025.jpeg) good pairs, but he couldn't make a proper tree. Help ainta to find such a tree.

输入格式

The first line contains a single integer $n$ ( $5<=n<=10^{5}$ ).

输出格式

Print $n-1$ lines containing the description of the edges. The $i$ -th line should contain three space-separated integers $u_{i},v_{i},c_{i}$ ( $1<=u_{i}<v_{i}<=n; 1<=c_{i}<=10^{5}$ ) — two vertices connected by the edge, and the weight of the edge.

Next print ![](/uploads/luogu/CF398C/d289004abb1deda75bd015b817d8e89f3dffdc1a_00d806aee58d.png) lines containing the good pairs. The $k$ -th line should contain two space-separated integers $x_{k}$ and $y_{k}$ ( $1<=x_{k}<y_{k}<=n$ ). Of course, $x_{k},y_{k}$ must be a good pair. All pairs should be distinct — that is, for all $j,k$ ![](/uploads/acgo/image/6c39d81a6311104f_18e8f36b321f.jpeg), $x_{j}≠x_{k}$ or $y_{j}≠y_{k}$ must be satisfied.

If there are many correct solutions, print any of them.

输入输出样例

输入 #1
7
输出 #1
1 4 1
1 2 2
2 3 5
3 5 3
2 6 2
6 7 3
4 5
5 6
5 7
C++ 编辑器
输入
输出