1 solutions

  • 0
    @ 2024-12-5 18:22:02

    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