4116: 所有的三元组

内存限制:1024 MB 时间限制:2.000 S
评测方式:文本比较 命题人:
提交:1 解决:1

题目描述

# Tetrahedral Number ## 题目描述 给定一个整数 $N$。 请按照字典序升序打印所有满足 $x + y + z ≤ N$ 的非负整数三元组 $(x, y, z)$。 一个非负整数三元组 $(x,y,z)$ 被称为**字典序小于** $(x',y',z')$,当且仅当以下条件之一成立: 1. $x < x'$;或者 2. $x = x'$ 且 $y < y'$;或者 3. $x = x'$ 且 $y = y'$ 且 $z < z'$。 这个定义描述了如何比较两个三元组的顺序。它首先比较第一个元素,如果相等则比较第二个元素,如果第二个元素也相等则比较第三个元素。这种比较方法类似于字典中单词的排序方式,因此被称为"字典序"。

输入

## 输入格式 输入$N$。

输出

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

样例输入 复制

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

提示

## 输入输出样例 ### 输入样例1 ``` 3 ``` ### 输出样例1 ``` 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 ``` ### 输入样例2 ``` 4 ``` ### 输出样例2 ``` 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 ``` ## 数据范围与提示 【数据范围】 - $0 ≤ N ≤ 21$ ## 题目来源 ABC335B