PAT 1082 射击比赛

https://pintia.cn/problem-sets/994805260223102976/problems/994805260990660608

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

输入格式:

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

ID x y

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

输出格式:

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

输入样例:

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

输出样例:

0233 0001

代码:

#include <bits/stdc++.h>

using namespace std;

const int maxn=1e5+10;

struct player {
    char num[5];
    int x;
    int y;
    int dis;
}s[maxn];

bool cmp(const player& a,const player& b)
{
    return a.dis<b.dis;
}

int main()
{
    int n;
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        scanf("%s%d%d",s[i].num,&s[i].x,&s[i].y);
        s[i].dis=s[i].x*s[i].x+s[i].y*s[i].y;
    }
    sort(s+1,s+1+n,cmp);
    printf("%s %s",s[1].num,s[n].num);
    return 0;
}

  

原文地址:https://www.cnblogs.com/zlrrrr/p/9286272.html

时间: 2024-10-17 13:55:18

PAT 1082 射击比赛的相关文章

PAT 1082. 射击比赛 (20)

本题目给出的射击比赛的规则非常简单,谁打的弹洞距离靶心最近,谁就是冠军:谁差得最远,谁就是菜鸟.本题给出一系列弹洞的平面坐标(x,y),请你编写程序找出冠军和菜鸟.我们假设靶心在原点(0,0). 输入格式: 输入在第一行中给出一个正整数 N(<= 10 000).随后 N 行,每行按下列格式给出: ID x y 其中 ID 是运动员的编号(由4位数字组成):x 和 y 是其打出的弹洞的平面坐标(x,y),均为整数,且 0 <= |x|, |y| <= 100.题目保证每个运动员的编号不重

PAT 1082 射击比赛 (20分)

本题目给出的射击比赛的规则非常简单,谁打的弹洞距离靶心最近,谁就是冠军:谁差得最远,谁就是菜鸟.本题给出一系列弹洞的平面坐标(x,y),请你编写程序找出冠军和菜鸟.我们假设靶心在原点(0,0). 输入格式: 输入在第一行中给出一个正整数 N(≤ 10 000).随后 N 行,每行按下列格式给出: ID x y 其中 ID 是运动员的编号(由 4 位数字组成):x 和 y 是其打出的弹洞的平面坐标(x,y),均为整数,且 0 ≤ |x|, |y| ≤ 100.题目保证每个运动员的编号不重复,且每人

1082 射击比赛 (20 分)

#include <iostream> #include <algorithm> #include <string> using namespace std; struct s { string id; int dis; } num[10010]; // 结构体数组变量开的大一点 bool cmp (s a, s b) { // 形参中用结构体定义两个结构体变量 return a.dis < b.dis; } int main() { int n, x, y; c

1082 射击比赛

水题. 1 #include<iostream> 2 #include<algorithm> 3 using namespace std; 4 5 int main() { 6 int n,id,x,y, MIN = 0x3fffffff,MAX = -1,champion,vegetableBird; 7 cin>>n; 8 while(n--) { 9 cin>>id>>x>>y; 10 if(MIN > x*x+y*y)

打靶归来——记参加射击比赛感想

打靶归来 --记参加射击比赛感想 实弹射击是所有军训项目中我最期待的一项,更令我感到兴奋和荣幸的是我竟能成为连里六个参加射击比赛的战士中的一员.我相信每一个男生曾经做过持枪战沙场梦,都曾在射击游戏中释放激情,都曾幻想自己射击时百步穿杨的雄风,而这次军训终于给了我们这样一个触摸真枪发射实弹的机会. 之前几日连队参加了射击预习,在拿枪之初没有人不欢欣鼓舞兴奋异常的,我们这些排在队伍后面的同学对能先摸枪的同学无不羡慕不已.经历漫长的等待后终于能够轮到我们进行射击预习.第一感觉就是枪重,枪在连长手中就跟

【PAT】B1082 射击比赛(20 分)

水提水题,直接贴代码啦 #include<cstdio> #include<algorithm> using namespace std; struct ppp{ int id; int juli; }arr[10005]; bool cmp(ppp A,ppp B){ return A.juli<B.juli; } int main(){ int N;scanf("%d",&N); for(int i=0;i<N;i++){ int id,

PAT 1082. Read Number in Chinese (25)

1082. Read Number in Chinese (25) Given an integer with no more than 9 digits, you are supposed to read it in the traditional Chinese way. Output "Fu" first if it is negative. For example, -123456789 is read as "Fu yi Yi er Qian san Bai si

射击比赛 (POJ 1719) 题解

[问题描述] 我们假设射击的目标是一个由R*C(2≤R≤C≤ 1000)个小方格组成的矩形网格.网格中每一列恰有2个白色的小方格和R-2个黑色的小方格.定义网格的行从顶至底编号为1~R,列从左至右编号为1~C. 射击者可射击C次.在连续的C次射击中,若每列恰好有一个白色的方格被射中,且不存在无白色方格被射中的行,这样的射击才是正确的.现给出N组数据,对于每组数据,如果存在正确的射击方法,则要求找到它,若不存在,输出NO. [样例输入] 2    4 4 2 4 3 4 1 3 1 4 5 5 1

PAT 1082. Read Number in Chinese

#include <cstdio> #include <cstdlib> #include <string> #include <vector> #include <algorithm> using namespace std; const char* d2cn[] = {"ling", "yi", "er", "san", "si", "