#2639. 枚举(enumerate)
枚举(enumerate)
题目描述
青蛙老师在笔记本上写了一个数字,然后拿出了一张草稿纸进行运算:
他先将 平方然后加 ,得到 ,即 。
接着将 模了一个正整数 ,得到 ,即 。
然后他将 加了一个非负整数 ,得到 ,即 。
然后他将 模了一个正整数 ,得到 ,即 。
最后他将 抄回了笔记本,过了几天,他发现草稿纸找不到了并且忘记了运算的中间过程中的 是多少了。
他希望根据笔记本上的 和 还原出中间的运算过程。
青蛙老师记得他写的数字不会很大,不会超过 ,因此他希望求出符合条件的整数三元组 , 。
但是他不会做,于是将问题交给你了。
青蛙老师希望知道符合条件的三元组个数,也想知道具体的方案,但符合条件的三元组个数可能很多,如果超过 个,输出方案的时候只需要输出字典序最小的 个三元组即可。
输入格式
一行三个整数 。
输出格式
第一行输出不同的三元组个数 ,
接下来 行按字典序输出对应的三元组( 小的先输出,若 相同则 小的先输出,若 和 均相同则 小的先输出),每行三个数字以空格隔开。若符合条件的三元组个数超过 ,你只需要输出字典序最小的 个三元组。
样例输入
1 2 3
样例输出
4
1 2 3
2 2 3
3 0 3
3 3 3
大样例:e.zip
数据范围
对于 的数据,满足 。
对于另外 的数据,满足 。
对于 的数据,满足 , 。