是否存在面积为 S2 的整点锐角三角形?存在输出 Yes
并输出三个整点坐标, 否则输出 No
。
注意如果存在输出的坐标必须在 long long
范围内。
Input
第一行一个整数 S (1≤S≤1018),表示锐角三角形面积。
Output
第一行一个字符串。
若存在接下去三行,每行两个整数 x,y ,表示三角形三个点的坐标。
Examples
Input
9
Output
Yes 0 0 3 0 1 3
Input
3
Output
Yes 1 0 0 1 2 2
找规律
一和二不行,其余分奇偶偶数
,偶数 (0,0),(0,2),(1,s/2)
,奇数 (1,0),(0,1),((s+1)/2,(s+1)/2)。
#include<bits/stdc++.h>
#define MAXN 100100
using namespace std;
int main()
{
unsigned long long n;
while(~scanf("%llu",&n)){
if(n==1||n==2||n==0)printf("No\n");
else{
printf("Yes\n");
if(n%2==0){
printf("0 0\n");
printf("2 0\n");
printf("1 %llu\n",n/2);
}
else{
printf("1 0\n");
printf("0 1\n");
printf("%llu %llu\n",(n+1)/2,(n+1)/2);
}
}
}
return 0;
}