问题 3303 --位置挑选(程序填空)

3303: 位置挑选(程序填空)★★★

时间限制: 1 Sec  内存限制: 128 MB
提交: 64  解决: 53
[提交][状态][命题人:]

题目描述

在二维平面上给定原点坐标,给与三个可选择的点和其价值,选择最近的点并输出其名称,距离相等时,输出价值高的点。

#include <stdio.h> 
#include <algorithm>
#include <iostream>
using namespace std;
int zx0, zy0;    
struct my
{
      char a[255];  
      int val;      
      int x, y;    
};
bool cmp(my a, my b)
{
      int disa = (a.x-zx0)*(a.x-zx0)+(a.y-zy0)*(a.y-zy0);
      int disb = (b.x-zx0)*(b.x-zx0)+(b.y-zy0)*(b.y-zy0);
      if(disa != disb)
           return disa<disb;  
      return a.val > b.val;    
}
int main()
{
      my arr[3];                
      ______(1)______;  
      for(int i=0; i<3; i++)
     {
          scanf("%s%d%d%d",_____(2)_____, &arr[i].val, &arr[i].x, &arr[i].y);  
      }
      sort(arr, arr+3, cmp);  
      ______(3)______;          
      return 0;
}

输入

第一行输入原点X坐标,原点Y坐标,

之后输入三个点的数据,一行一个点,依次输入点名称 点价值 点X坐标 点Y坐标。

输出

最符合条件的点名称。

样例输入
Copy
1 1
a 10 2 2
b 20 3 3
c 30 2 2
样例输出
Copy
c

提示

来源

[提交][状态]