报错的奇奇怪怪
  • 板块学术版
  • 楼主zoe0403
  • 当前回复7
  • 已保存回复7
  • 发布时间2023/10/4 12:22
  • 上次更新2023/11/2 15:52:41
查看原帖
报错的奇奇怪怪
638802
zoe0403楼主2023/10/4 12:22

导弹拦截1158导弹拦截

#include<bits/stdc++.h>
using namespace std;
struct as{
	int d1,d2;
	bool operator < (const as &A){
		return d1 < A.d1;
	}
}a[100001];
int n,X1,X2,Y1,Y2,f[100001];

int main(){
	scanf("%d%d%d%d",&X1,&Y1,&X2,&Y2);
	scanf("%d",&n);
	for(int i=1;i<=n;i++){
		int x,y;
		scanf("%d%d",&x,&y);
		a[i].d1=(x-X1)*(x-X1)+(y-Y1)*(y-Y1);
		a[i].d2=(x-X2)*(x-X2)+(y-Y2)*(y-Y2);
	}
	sort(a+1, a+n+1);
	f[n+1]=0;
	for(int i=n;i;i--){
		f[i]=max(f[i+1],a[i].d2);
	}
	int ans=1<<30; 
	for(int i=1;i<=n;i++){
		ans=min(ans,a[i].d1+f[i+1]);
	} 
	cout<<ans<<endl;
}
2023/10/4 12:22
加载中...