```cpp
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<cstdlib>
#include<queue>
int x[10],y[10],x1,yy1,x2,y2,n,b[10];
double r[10],ans,ansmax,pi=3.1415926535897932384626433832795,smax;
using namespace std;
double dis(int xx,int yy)
{
return sqrt((x[xx]-x[yy])*(x[xx]-x[yy])+(y[xx]-y[yy])*(y[xx]-y[yy]));
}
int main()
{
cin>>n;
cin>>x1>>yy1>>x2>>y2;
for(int i=1;i<=n;i++)
{
cin>>x[i]>>y[i];
}
for(int i=1;i<=n;i++)
b[i]=i;
smax=abs(x1-x2)*abs(yy1-y2);
do
{
ans=0;
for(int i=1;i<=n;i++)
{
r[b[i]]=(double)min(min(abs(x[b[i]]-min(x1,x2)),abs(max(x1,x2)-x[b[i]])),min(abs(min(yy1,y2)-y[b[i]]),abs(max(yy1,y2)-y[b[i]])));
for(int j=1;j<i;j++)
{
r[b[i]]=min(dis(b[j],b[i])-r[b[j]],r[b[i]]);
} r[b[i]]=max(r[b[i]],0.0);
ans+=pi*r[b[i]]*r[b[i]];
}
ansmax=max(ansmax,ans);
}while(next_permutation(b+1,b+1+n));
cout<<(int)(smax-ansmax+0.5)<<endl;
return 0;
}
```
60分代码。原因在dis函数被设为int而不是double直接自动取整= =。
by Ruff @ 2018-04-26 20:32:18