1 solutions
-
0
C++ :
#include<cstdio> int n,x1,y1,x2,y2; int a[200005][2],b[100005],ans=2147483647; int min(int a,int b){ return a>b?b:a; } void swap(int &a,int &b){ int t = a; a = b; b = t; return ; } int qsort(int x,int y) { int r=x,l=y,midz=a[(x+y)>>1][0]; while(r<=l) { while(a[r][0]<midz)r++; while(a[l][0]>midz)l--; if(r<=l) { swap(a[r][0],a[l][0]); swap(a[r][1],a[l][1]); r++;l--; } } if(x<l) qsort(x,l); if(r<y) qsort(r,y); return 0; } int main() { //freopen("missile.in","r",stdin); //freopen("missile.out","w",stdout); 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][0]=(x1-x)*(x1-x)+(y1-y)*(y1-y); a[i][1]=(x2-x)*(x2-x)+(y2-y)*(y2-y); } qsort(1,n); int mx = 0; for(int i = n;i >= 1;i--) { if(mx < a[i][1]) mx = a[i][1]; b[i] = mx; } for(int i=0;i<=n;i++) ans=min(b[i+1]+a[i][0],ans); printf("%d",ans); return 0; }
- 1
Information
- ID
- 9179
- Time
- 1000ms
- Memory
- 128MiB
- Difficulty
- (None)
- Tags
- # Submissions
- 0
- Accepted
- 0
- Uploaded By