zoukankan      html  css  js  c++  java
  • PAT 1082. 射击比赛 (20)

    本题目给出的射击比赛的规则非常简单,谁打的弹洞距离靶心最近,谁就是冠军;谁差得最远,谁就是菜鸟。本题给出一系列弹洞的平面坐标(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


    本题比较简单,我们可以把每个与运动员的信息封装在一个结构体中。
    然后利用sort函数来对结构体数组进行排序。
     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 struct node{
     4     int id;
     5     int x;
     6     int y;
     7 }s[10000];
     8 int cmp(struct node a,struct node b)
     9 {
    10     return (a.x*a.x+a.y*a.y)<(b.x*b.x+b.y*b.y);
    11 }
    12 int main()
    13 {
    14     int n;
    15     scanf("%d",&n);
    16     for(int i=0;i<n;i++)
    17     {
    18         scanf("%d %d %d",&s[i].id,&s[i].x,&s[i].y);
    19     }
    20     sort(s,s+n,cmp);
    21     printf("%04d %04d",s[0].id,s[n-1].id);
    22     return 0;
    23 }

    新人发帖。。。。。。欢迎讨论。。。

  • 相关阅读:
    on SDN
    距离矢量路由协议中路由环路问题的解决方法:
    图的基本算法(BFS和DFS)
    OSPF邻居状态机
    Dijkstra 算法,用于对有权图进行搜索,找出图中两点的最短距离
    关于Dijkstra算法
    RIP路由协议及工作原理
    帧中继网络 (转)
    OSPF建立邻居、邻接关系 学习笔记
    OSPF中 hello报文的 内容
  • 原文地址:https://www.cnblogs.com/intbjw/p/8848101.html
Copyright © 2011-2022 走看看