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}$。