描述
是否存在面积为S/2的整点锐角三角形?存在输出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
题意
如上
题解
首先1和2不行,直角三角形不满足题意
其余点分奇偶
偶数,(0,0),(2,0),(1,s/2)
奇数,(0,1),(1,0),((1+s)/2,(1+s)/2)
代码
1 #include<bits/stdc++.h> 2 using namespace std; 3 4 #define ll long long 5 int main() 6 { 7 ll s; 8 while(cin>>s) 9 { 10 if(s<=2)cout<<"No"<<endl; 11 else if(s&1)cout<<"Yes\n1 0\n0 1\n"<<(s+1)/2<<" "<<(s+1)/2<<endl; 12 else cout<<"Yes\n0 0\n2 0\n1 "<<s/2<<endl; 13 } 14 return 0; 15 }