5 条题解

  • -1
    @ 2025-4-14 11:41:45
    #include<cstdio>
    #include<algorithm>
    #include<cmath>
    using namespace std;
    int n,x[10005],y[10005],ans=0,rx,ry;
    int main()
    {
    	scanf("%d",&n);
    	for(int i=1;i<=n;i++) scanf("%d%d",x+i,y+i);
    	sort(x+1,x+n+1); sort(y+1,y+n+1);
    	for(int i=1;i<=n;i++) x[i]-=i;
    	sort(x+1,x+n+1);
    	if(!n%2)
    	{
    		rx=(x[n/2]+x[n/2+1])/2;
    		ry=(y[n/2]+y[n/2+1])/2;
    		}
    	else
    	{
    		rx=x[n/2+1];
    		ry=y[n/2+1];
    	}
    	for(int i=1;i<=n;i++) ans+=abs(x[i]-rx)+abs(y[i]-ry);
    	printf("%d",ans);
    	 return 0; 
    } 
    

    信息

    ID
    306
    时间
    1000ms
    内存
    128MiB
    难度
    6
    标签
    递交数
    222
    已通过
    64
    上传者