题目大意
题目描述
给定一个正整数 N。
你需要将集合 {0,1,2,…,3N−1} 划分为 N 个有序三元组 (x1,y1,z1),(x2,y2,z2),…,(xN,yN,zN)。
这些三元组必须同时满足以下所有条件:
-
集合 {0,1,2,…,3N−1} 中的每个整数在所有三元组中恰好出现一次。等价地说,序列 x1,y1,z1,x2,y2,z2,…,xN,yN,zN 必须是集合 {0,1,2,…,3N−1} 的一个排列。
-
对于每个 i∈{1,2,…,N},都必须满足 zi>0 且 ximodzi=yi。
其中,amodb 表示非负整数 a 除以正整数 b 所得的余数。
可以证明,在给定的数据范围内,对于任意 N 至少存在一种合法的构造。你只需要输出任意一种合法的构造即可。
输入格式
输入仅包含一行一个正整数 N(1≤N≤2×105)。
输出格式
输出 N 行。
第 i 行需要包含三个整数 xi,yi,zi,表示第 i 个有序三元组。
对于每个 i∈{1,2,…,N},你的输出必须满足 0≤xi,yi,zi<3N,zi>0 且 ximodzi=yi。
此外,输出的序列 x1,y1,z1,x2,y2,z2,…,xN,yN,zN 必须是集合 {0,1,2,…,3N−1} 的一个排列。
如果存在多种合法的构造,输出任意一种即可。
样例
样例输出给出了三个有序三元组:(5,0,1),(8,2,6),以及 (7,3,4)。
它们分别满足等式:5mod1=0,8mod6=2,7mod4=3。
此外,这些三元组中出现的所有整数恰好为 0,1,2,3,4,5,6,7,8,这正是集合 {0,1,…,3N−1} 中的所有整数。
思路讲解
AC代码
心路历程(WA,TLE,MLE……)