Codeforces 707 C. Pythagorean Triples(找规律)——Codeforces Round #368 (Div. 2)

来源:互联网 发布:淘宝客 知乎 编辑:程序博客网 时间:2024/05/21 05:57

传送门

Katya studies in a fifth grade. Recently her class studied right triangles and the

Pythagorean theorem. It appeared, that there are triples of positive integers such that you

can construct a right triangle with segments of lengths corresponding to triple. Such

triples are called Pythagorean triples.

For example, triples (3, 4, 5), (5, 12, 13) and (6, 8, 10) are Pythagorean triples.

Here Katya wondered if she can specify the length of some side of right triangle and find

any Pythagorean triple corresponding to such length? Note that the side which length is

specified can be a cathetus as well as hypotenuse.

Katya had no problems with completing this task. Will you do the same?

Input

The only line of the input contains single integer n(1n109) — the length of some

side

of a right triangle.

Output

Print two integers m and k (1m,k1018) such that n, m and k form a Pythagorean

triple, in the only line.

In case if there is no any Pythagorean triple containing integer n, print  - 1 in the only line.

If there are many answers, print any of them.

Examples

input

3

output

4 5

input

6

output

8 10

input

1

output

-1

input

17

output

144 145

input

67

output

2244 2245

题目大意:

给你一个数,让你判断这个数是不是能够满足勾股数,如果满足输出另外两条边,否则输出 1.

解题思路:

因为让我们输出任意一组数据,所以我们特判一下就行了:

假设是奇数的话:那么是 2n+1  2n2+2n  2n2+2n+1 ,然后判断一下子就行了。

假设是偶数的话:那么是 2n  n21  n2+1 ,然后判断一下就行了。

My Code

/**2016 - 08 - 19 上午Author: ITAKMotto:今日的我要超越昨日的我,明日的我要胜过今日的我,以创作出更好的代码为目标,不断地超越自己。**/#include <iostream>#include <cstdio>#include <cstring>#include <cstdlib>#include <cmath>#include <vector>#include <queue>#include <algorithm>#include <set>using namespace std;typedef long long LL;typedef unsigned long long ULL;const int INF = 1e9+5;const int MAXN = 1e5+5;const int MOD = 1e9+7;const double eps = 1e-7;const double PI = acos(-1);using namespace std;LL Scan_LL()///输入外挂{    LL res=0,ch,flag=0;    if((ch=getchar())=='-')        flag=1;    else if(ch>='0'&&ch<='9')        res=ch-'0';    while((ch=getchar())>='0'&&ch<='9')        res=res*10+ch-'0';    return flag?-res:res;}int Scan_Int()///输入外挂{    int res=0,ch,flag=0;    if((ch=getchar())=='-')        flag=1;    else if(ch>='0'&&ch<='9')        res=ch-'0';    while((ch=getchar())>='0'&&ch<='9')        res=res*10+ch-'0';    return flag?-res:res;}void Out(LL a)///输出外挂{    if(a>9)        Out(a/10);    putchar(a%10+'0');}int main(){    LL n;    while(cin>>n)    {        if(n == 1LL || n==2LL)        {            puts("-1");            continue;        }        if(n & 1)        {            LL tmp = (n-1)/2;            cout<<2*tmp*tmp+2*tmp<<" "<<2*tmp*tmp+2*tmp+1<<endl;        }        else        {            LL tmp = n*n/4;             if(tmp <= 1)                puts("-1");            else                cout<<tmp-1<<" "<<tmp+1<<endl;        }    }    return 0;}
0 0
原创粉丝点击