题目链接:
https://pintia.cn/problem-sets/994805260223102976/problems/994805260990660608
AC代码:
#include <iostream>
#include <cctype>
#include <cstdio>
#include <cmath>
#include <string>
#include <cstdlib>
#include <sstream>
#include <algorithm>
#include <set>
#include <map>
#include <vector>
#include <cstring>
using namespace std;
const int maxn=10010;
struct person{
int number;
double dis;
}per[maxn];
bool cmp(struct person a,struct person b){
return a.dis>b.dis;
}
int main(){
int N;
scanf("%d",&N);
for(int i=0;i<N;i++){
int x,y;
scanf("%d%d%d",&per[i].number,&x,&y);
per[i].dis=sqrt(x*x+y*y);
}
sort(per,per+N,cmp);
printf("%04d %04d",per[N-1].number,per[0].number);
}
#include <iostream>
#include <cstdio>
#include <string>
#include <vector>
#include <map>
#include <cmath>
#include <algorithm>
using namespace std;
int main(){
int N;
map<string,int> a;
scanf("%d",&N);
string id;
int x,y,sum;
cin>>id;
scanf("%d%d",&x,&y);
int MAX=x*x+y*y,MIN=x*x+y*y;//测试点2 ,若输入数据只有一个元素(1分),
string max1=id,min1=id;
for(int i=1;i<N;i++){
cin>>id;
scanf("%d%d",&x,&y);
sum=x*x+y*y;
a[id]=sum;
if(sum>MAX){
MAX=sum;
max1=id;
}
if(sum<MIN){
MIN=sum;
min1=id;
}
}
cout<<min1<<" "<<max1<<endl;
return 0;
}