在二维平面上给定原点坐标,给与三个可选择的点和其价值,选择最近的点并输出其名称,距离相等时,输出价值高的点。
#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;
}