U121868 毕达哥拉斯三元组(升级版)
题目背景
注意,题目数据已升级。
题目描述
“毕达哥拉斯三元组”是三个正整数$(a,b,c)$组成的组合,满足$a < b < c$,且$a^2 + b^2 = c^2$。
例如$3^2 + 4^2 = 9 + 16 = 25 = 5^2$,故$(3,4,5)$是一个“毕达哥拉斯三元组”。
读入$n$,按字典序($a$越小越靠前,$a$相同则$b$越小越靠前)输出所有毕达哥拉斯三元组$(a,b,c)$,满足$a + b + c = n$。
输入格式
一行,一个正整数$n$。
输出格式
若干行,按字典序输出所有的解,每行一组,每组解为三个用单个空格隔开的正整数$a,b,c$。
说明/提示
对$20\%$的数据,$12 \le n \le 10^{3}$;
对$40\%$的数据,$12 \le n \le 10^{4}$;
对$60\%$的数据,$12 \le n \le 10^{7}$;
对$80\%$的数据,$12 \le n \le 10^{10}$;
对$100\%$的数据,$12 \le n \le 10^{15}$。