求改错,20分
查看原帖
求改错,20分
181715
gjh303987897楼主2021/10/20 12:06
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#define maxn 100001
#define R read()
using namespace std;
int read(){
	int x=0,f=1;
	char ch=getchar();
	while(ch<'0'||ch>'9'){
		if(ch=='-') f=-1;
		ch=getchar();
	}
	while(ch>='0'&&ch<='9'){
		x=(x<<3)+(x<<1)+(ch^48);
		ch=getchar();
	}
	return x*f;
}

struct das{
	int dist_a;
	int dist_b;
}d[maxn*2+1];
inline bool cmp(das a,das b){
	return a.dist_a<b.dist_a;
}
int x1,x2,x3,x4,n;

int main(){
	x1=R; x2=R; x3=R; x4=R; n=R;
	for(register int i=1;i<=n;i++){
	    int x=R,y=R;
		d[i].dist_a=pow((x-x1),2)+pow((x2-y),2);
		d[i].dist_b=pow((x-x3),2)+pow((y-x4),2);
	}
	sort(d+1,d+1+n,cmp); int ans=d[n].dist_a;
	int maxx=d[n].dist_b;
	for(register int i=n-1;i>=1;i--){
		if(maxx>d[i].dist_b) d[i].dist_b=maxx;
		else maxx=d[i].dist_b;
	}
	for(register int i=n-1;i>=1;i--){
		if(ans>(d[i].dist_a+d[i].dist_b)) ans=d[i].dist_a+d[i].dist_b;
	}
	cout<<ans;
	return 0;
} 
2021/10/20 12:06
加载中...