80分 求助
查看原帖
80分 求助
1265678
Lrhnb楼主2024/8/15 08:51
#include<bits/stdc++.h>
using namespace std;
struct k{
	long long x,y;
}a[1005];
int main(){
	long long x,y;
	int n;
	double mx=INT_MAX;
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a[i].x>>a[i].y;
	}
	for(int i=1;i<=n-1;i++){
		for(int j=i+1;j<=n;j++){
			if(a[i].x==a[j].x){
				mx=min(mx,1.0*max(a[i].y,a[j].y)-min(a[i].y,a[j].y));
			}else if(a[i].y==a[j].y){
				mx=min(mx,1.0*max(a[i].x,a[j].x)-min(a[i].x,a[j].x));
			}else{
				x=a[i].x;
				y=a[j].y;
				x=max(x,a[j].x)-min(x,a[j].x);
				y=max(y,a[i].y)-min(y,a[i].y);
				mx=min(mx,sqrt(1.0*(x*x)+(y*y)));
			}
		}
	}
	//四舍五入 
	/*int m=mx*10000,q=m%10;
	if(q>=5){
		m=mx*1000+1;
		mx=m;
		mx/=1000;
	}
	if(n<2){
		mx=0;
	}*/
	printf("%0.4lf",mx);
	return 0;
}

2024/8/15 08:51
加载中...