#4265. 四面体数(Tetrahedral Number)

四面体数(Tetrahedral Number)

题目描述

给定一个整数 NN

请按照字典序升序打印所有满足 x+y+zNx + y + z ≤ N 的非负整数三元组 (x,y,z)(x, y, z)

一个非负整数三元组 (x,y,z)(x,y,z) 被称为字典序小于 (x,y,z)(x',y',z'),当且仅当以下条件之一成立:

  1. x<xx < x';或者

  2. x=xx = x'y<yy < y';或者

  3. x=xx = x'y=yy = y'z<zz < z'

这个定义描述了如何比较两个三元组的顺序。它首先比较第一个元素,如果相等则比较第二个元素,如果第二个元素也相等则比较第三个元素。这种比较方法类似于字典中单词的排序方式,因此被称为"字典序"。

输入格式

输入NN

输出格式

按字典序升序打印所有满足 x+y+zNx + y + z ≤ N 的非负整数三元组 (x,y,z)(x, y, z),每个三元组占一行,xxyyzz 用空格分隔。

样例

3
0 0 0
0 0 1
0 0 2
0 0 3
0 1 0
0 1 1
0 1 2
0 2 0
0 2 1
0 3 0
1 0 0
1 0 1
1 0 2
1 1 0
1 1 1
1 2 0
2 0 0
2 0 1
2 1 0
3 0 0
4
0 0 0
0 0 1
0 0 2
0 0 3
0 0 4
0 1 0
0 1 1
0 1 2
0 1 3
0 2 0
0 2 1
0 2 2
0 3 0
0 3 1
0 4 0
1 0 0
1 0 1
1 0 2
1 0 3
1 1 0
1 1 1
1 1 2
1 2 0
1 2 1
1 3 0
2 0 0
2 0 1
2 0 2
2 1 0
2 1 1
2 2 0
3 0 0
3 0 1
3 1 0
4 0 0

数据范围

  • 0N210 ≤ N ≤ 21

来源

  • AtCoder ABC335B