#iai21c3. 四方定理(Four-Square)

四方定理(Four-Square)

四方定理

题目背景

四方定理是数论中著名的一个定理,指任意一个自然数都可以拆成四个自然数的平方之和。例如:

25=12+22+22+4225 = 1^2 + 2^2 + 2^2 + 4^2

2525 来说,还有其他方案:

25=02+02+32+4225 = 0^2 + 0^2 + 3^2 + 4^2

以及

25=02+02+02+5225 = 0^2 + 0^2 + 0^2 + 5^2

题目描述

给定一个自然数 nn,请输出 nn 的所有四平方拆分方案。

输入格式

单个整数:表示 nn

输出格式

若干行:每行四个由小到大排列的自然数,表示一种拆分方案。如果有多种方案,先输出首项较小的方案,对于首项相同的方案,先输出第二项较小的方案,其他情况以此类推。

样例输入 #1

25

样例输出 #1

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

数据范围

0n500000\le n \le 50000


测试点分布

Subtask 分值 测试点编号 说明
0 10 1~2 样例
1 20 3~8 小规模 N≤20 / 特殊: n=0 / 特殊: 完全平方数
2 15 9~11 Hack: n=1边界 / Hack: 质数 / Hack: 含大量方案
3 30 12~20 中等 N≈100~10000 / 最大 N=50000 压力
4 25 21~25 随机 N=0~50000 回归