关闭

Codeforces 407 A. Triangle 【Codeforces Round #239 (Div. 1)】

标签: 暴力枚举
462人阅读 评论(0) 收藏 举报
分类:

点击打开链接

A. Triangle
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output

There is a right triangle with legs of length a and b. Your task is to determine whether it is possible to locate the triangle on the plane in such a way that none of its sides is parallel to the coordinate axes. All the vertices must have integer coordinates. If there exists such a location, you have to output the appropriate coordinates of vertices.

Input

The first line contains two integers a, b (1 ≤ a, b ≤ 1000), separated by a single space.

Output

In the first line print either "YES" or "NO" (without the quotes) depending on whether the required location exists. If it does, print in the next three lines three pairs of integers — the coordinates of the triangle vertices, one pair per line. The coordinates must be integers, not exceeding 109 in their absolute value.

Sample test(s)
input
1 1
output
NO
input
5 5
output
YES
2 1
5 5
-2 4
input
5 10
output
YES
-10 4
-2 -2
1 2

题目大意:

给你两个数 a 和 b ,分别是一个直角三角形的两条直角边,让你求出是否存在不与坐标轴平行的三角形的三个坐标。。。

如果存在输出 YES,并且将这三个坐标输出,(任选一个输出),否则输出NO


解题思路:


首先想到的是这两条直角边一定是其他直角三角形的一条斜边。。。然后数据范围并不是很大,所以就直接枚举就行了。

有一个点的坐标是固定的 就是原点 (0, 0)点。。。

上代码:

 #include <iostream>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <cmath>
#include <vector>
#include <queue>
#include <algorithm>
#include <set>
using namespace std;

#define MM(a) memset(a,0,sizeof(a))

typedef long long LL;
typedef unsigned long long ULL;
const int maxn = 3e3+5;
const int mod = 1e9+7;
const double eps = 1e-8;
const int INF = 0x3f3f3f3f;
LL gcd(LL a, LL b)
{
    if(b == 0)
        return a;
    return gcd(b, a%b);
}
struct node
{
    int x, y;
};
node p1[maxn], p2[maxn];
int main()
{
    int a, b;
    while(cin>>a>>b)
    {
        int cnt1, cnt2, cnt, j;
        double tmp;
        cnt1 = cnt2 = cnt = 0;
        for(int i=1; i<a; i++)
        {
            tmp = a*a-i*i;
            j = (int)sqrt(tmp);
            if(i*i+j*j == a*a)
            {
                p1[cnt1].x = i;
                p1[cnt1++].y = j;
            }
        }
        for(int i=1; i<b; i++)
        {
            tmp = b*b-i*i;
            j = (int)sqrt(tmp);
            if(i*i+j*j == b*b)
            {
                p2[cnt2].x = i;
                p2[cnt2++].y = j;
            }
        }
        bool ok = false;
        for(int i=0; i<cnt1; i++)
        {
            for(int j=0; j<cnt2; j++)
            {
                if(p1[i].y!=p2[j].y && p1[i].x*p2[j].x==p1[i].y*p2[j].y)
                {
                    puts("YES");
                    puts("0 0");
                    printf("%d %d\n",-p1[i].x,p1[i].y);
                    printf("%d %d\n",p2[j].x,p2[j].y);
                    ok = true;
                    break;
                }
            }
            if(ok)
                break;
        }
        if(!ok)
            puts("NO");
    }
    return 0;
}

 	


0
0
查看评论

Codeforces Round #327 (div.2)(A B C D)

codeforces round #327 (div.2)
  • lincifer
  • lincifer
  • 2015-10-26 13:11
  • 1087

Codeforces Round #254 (Div. 1)C. DZY Loves Colors(线段树经典操作/分块)

题目链接 C. DZY Loves Colors time limit per test 2 seconds memory limit per test 256 megabytes input standard input output stan...
  • fouzhe
  • fouzhe
  • 2017-02-11 15:17
  • 279

Codeforces Round #292 (Div. 1)

A. Drazil and Factorial 题意: F(x)定义为x各个位阶乘的乘积,给定一个数x要求求出F(x)=F(y)的最大的数y, 其中y的各个位不能包含0和1. 思路: 对于x的各个位, 先把阶乘分解质因子, 然后有多少个质因子7就弄成多少个7个阶乘, 5,3和2也类似。 #inclu...
  • u013654696
  • u013654696
  • 2015-02-22 13:35
  • 566

Codeforces Round #172 (Div. 1) BMaximum Xor Secondary 单调栈

//给一个长度为N的个不相同的序列,找出所有区间中最大值和第二大数的异或值最大的值 //对于所有区间只需要找其最大值和第二大数,所以对于很多区间的结果是重复的 //对于每一个数,它起作用的区间只有在其前面最多只有一个数是大于它的 //可以用一个单调递减栈来做,对于每一个新的数a[i],在它前面...
  • cq_pf
  • cq_pf
  • 2015-05-26 19:12
  • 708

Codeforces Round #258 (Div. 2)-(A,B,C,D,E)

A:Game With Sticks 水题。。。每次操作,都会拿走一个横行,一个竖行。 所以一共会操作min(横行,竖行)次。 #include #include #include #include #include #include #include #include #pragma commen...
  • rowanhaoa
  • rowanhaoa
  • 2014-07-25 14:39
  • 1474

Codecraft-17 and Codeforces Round #391 (Div. 1 + Div. 2, combined)A+B

A. Gotta Catch Em’ All!time limit per test:1 secondmemory limit per test:256 megabytesinput:standard inputoutput:standard outputBash wants to become a...
  • qq_33183401
  • qq_33183401
  • 2017-01-16 17:12
  • 242

Codeforces Round #395 (Div. 2)(ABCD)

ps:打完这场cf才知道自己真的很菜,还是停留在AB题的水平,有时候CD其实很简单,但就是想不到,别人一眼看出而我就是想不到,有时候想到了点子上但就是突破不了 题目链接:  Codeforces Round #395 (Div. 2) A题: &...
  • qq_34731703
  • qq_34731703
  • 2017-02-03 12:50
  • 492

Codeforces Round #431 (Div. 2) A. Odds and Ends 题解

题目: A. Odds and Ends time limit per test 1 second memory limit per test 256 megabytes input standard input output standar...
  • LamdaSniper
  • LamdaSniper
  • 2017-09-03 16:13
  • 233

【解题报告】Codeforces Round #401 (Div. 2)

简略的解题报告。
  • TRiddle
  • TRiddle
  • 2017-02-25 17:55
  • 411

ICM Technex 2017 and Codeforces Round #400 (Div. 1 + Div. 2, combined) E. The Holmes Children

E. The Holmes Children time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard ...
  • mystery_guest
  • mystery_guest
  • 2017-03-04 18:40
  • 284
    个人资料
    • 访问:528118次
    • 积分:11540
    • 等级:
    • 排名:第1588名
    • 原创:639篇
    • 转载:5篇
    • 译文:0篇
    • 评论:93条
    博客专栏