wtf为什么会有2.9514e+06这种东西
查看原帖
wtf为什么会有2.9514e+06这种东西
116368
BinDir0楼主2018/10/3 20:34

#7和#10两个测试点给出来的是2.9514e+06和3.72579e+06。。。无语

#include<bits/stdc++.h>
using namespace std;
struct item
{
	double a,b,d;
} h[100003];
long long x1,x2,x3,x4,x,y,n;
double ans;
double gg(int a,int b,int c,int d)
{
    int x=a-c,y=b-d;
    return sqrt(x*x+y*y);
}
int cmp(item x,item y)
{
	return x.a>y.a;
}
double pf(double g)
{
	return g*g;
}
int main()
{
	cin>>x1>>x2>>x3>>x4>>n;
	for(int i=1;i<=n;i++)
	{
		scanf("%d%d",&x,&y);
		h[i].a=gg(x1,x2,x,y);
		h[i].b=gg(x3,x4,x,y);
	}
	sort(h+1,h+n+1,cmp);
	for(int i=1;i<=n;i++)
	{
		h[i].d=max(h[i-1].d,h[i].b);
		//cout<<h[i].a<<" "<<h[i].d<<endl;
	}
	ans=pf(h[1].a);
	for(int i=2;i<=n+1;i++)
	{
		ans=min(ans,pf(h[i].a)+pf(h[i-1].d));
	}
	
	cout<<ans;
	 
	
	
	
	return 0;
}
2018/10/3 20:34
加载中...