c语言 求以下不定方程组的所有非负整数解

求以下不定方程组的所有非负整数解(提示:可以考虑让计算机在一定范围内穷举)
x+y+z=31
x+2y+3z=58

要求:
(1)每一组根单独占一行,三个数用空格分隔。
(2)根的输出顺序为:x的根 y的根 z的根
(3)x的根按从小到大的顺序

例如:输出的部分根为:
4 27 0
5 25 1
6 23 2
7 21 3
8 19 4
9 17 5
10 15 6
11 13 7

输入

输出

若干行,每一行三个数(用空格分隔),分别x的根、y的根、z的根