whenever

  • Home

  • Tags21

  • Categories6

  • Archives122

  • About

PAT乙级1082 || 射击比赛(详解,C/C++示例,测试点分析)

Posted on 2019-12-30 In PAT

射击比赛

题目描述

本题目给出的射击比赛的规则非常简单,谁打的弹洞距离靶心最近,谁就是冠军;谁差得最远,谁就是菜鸟。本题给出一系列弹洞的平面坐标(x,y),请你编写程序找出冠军和菜鸟。我们假设靶心在原点(0,0)。

输入格式

输入在第一行中给出一个正整数 N(≤ 10 000)。随后 N 行,每行按下列格式给出:

1
ID x y

其中 ID 是运动员的编号(由 4 位数字组成);x 和 y 是其打出的弹洞的平面坐标(x,y),均为整数,且 0 ≤ |x|, |y| ≤ 100。题目保证每个运动员的编号不重复,且每人只打 1 枪。

输出格式

输出冠军和菜鸟的编号,中间空 1 格。题目保证他们是唯一的。

输入样例

1
2
3
4
3
0001 5 7
1020 -1 3
0233 0 -1

输出样例

1
0233 0001

问题解决

解题思想

水题。

坑点提醒

None

代码示例(C/C++)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <iostream>

using namespace std;

int main() {
int n, id, x, y, maxd, mind, maxid, minid;
cin >> n;
cin >> id >> x >> y;
maxid = minid = id;
maxd = mind = x * x + y * y; //离靶心最大最小距离平方初始化为第一个
n--;
while (n--) {
int tmp;
cin >> id >> x >> y;
tmp = x * x + y * y;
if (maxd < tmp) {
maxd = tmp;
maxid = id;
}
else if (mind > tmp) {
mind = tmp;
minid = id;
}
}
printf("%04d %04d", minid, maxid);
return 0;
}

题目来源:PAT乙级1082
作者:CHEN, Yue
单位:浙江大学

稀罕作者
Mengzhao Wang WeChat Pay

WeChat Pay

Mengzhao Wang Alipay

Alipay

# C/C++ # PAT # 编程
PAT乙级1081 || 检查密码(详解,C/C++示例,测试点分析)
PAT乙级1083 || 是否存在相等的差(详解,C/C++示例,测试点分析)
  • Table of Contents
  • Overview
Mengzhao Wang

Mengzhao Wang

Try? All the way !
122 posts
6 categories
21 tags
  1. 1. 射击比赛
    1. 1.1. 题目描述
    2. 1.2. 输入格式
    3. 1.3. 输出格式
    4. 1.4. 输入样例
    5. 1.5. 输出样例
    6. 1.6. 问题解决
      1. 1.6.1. 解题思想
      2. 1.6.2. 坑点提醒
      3. 1.6.3. 代码示例(C/C++)
© 2021 Mengzhao Wang