AcWing 3292. 称检测点查询
原题链接
简单
作者:
Value
,
2021-04-08 20:05:13
,
所有人可见
,
阅读 677
#include <iostream>
#include <cstdio>
#include <cmath>
#include <algorithm>
using namespace std;
const int N = 1010;
struct node{
int x, y;
double dis;
int id;
}a[N];
bool cmp(node t, node q){
if(abs(t.dis - q.dis) >= 1e-5) return t.dis < q.dis;
return t.id < q.id;
}
int main(){
int n, x, y; scanf("%d%d%d", &n, &x, &y);
for(int i = 1; i<= n; i ++ ){
scanf("%d%d", &a[i].x, &a[i].y);
a[i].id = i;
a[i].dis = sqrt(pow(a[i].x - x, 2) + pow(a[i].y - y, 2));
}
sort(a + 1, a + n + 1, cmp);
for(int i = 1; i <= 3; i ++ ) cout << a[i].id << endl;
return 0;
}
为啥我sort出来的时候 p.second 排序 大的会拍到小的前面呀 比如 p[1].second = 57 p[2].second = 2 ; 她把小的排后面去了
代码发来看看,是不是比较函数学错了?
带佬,求不用结构体暴力,小白看不懂结构体
结构体就是把几个属性绑定在一个,很简单的。不用结构体,他们之间的属性关系你要维护比较困难的