1 条题解

  • 0
    @ 2024-12-24 10:06:18

    C++ :

    #include<iostream>
    #include<algorithm>
    #include<cstdlib>
    using namespace std;
    int main()
    {
        int n;
        cin>>n;
        int x[n+1],y[n+1],sum=0;
        for(int i=1;i<=n;i++)
            cin>>x[i]>>y[i];
        sort(x+1,x+n+1);
        sort(y+1,y+n+1);
        if(n%2==1)
        {
            int t=y[n/2+1];
            for(int i=1;i<=n;i++)
            {
                if(y[i]>t) sum+=y[i]-t;
                if(y[i]<=t) sum+=t-y[i];
            }
            t=x[n/2+1];
            for(int i=1;i<=n;i++)
            {
                if(x[i]>t) sum+=x[i]-t;
                if(x[i]<=t) sum+=t-x[i];
            }
        }
        if(n%2==0)
        {
            int t=(y[n/2]+y[n/2+1])/2;
            for(int i=1;i<=n;i++)
            {
                if(y[i]>t) sum+=y[i]-t;
                if(y[i]<=t) sum+=t-y[i];
            }
            t=(x[n/2]+x[n/2+1])/2;
            for(int i=1;i<=n;i++)
            {
                if(x[i]>t) sum+=x[i]-t;
                if(x[i]<=t) sum+=t-x[i];
            }
        }
        cout<<sum;
        return 0;
    }
    

    Java :

    import java.util.Scanner;
    
    public class Main {
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            int n = sc.nextInt();
            int x[] = new int[n];
            int y[] = new int[n];
            for (int i = 0; i < n; i++) {
                x[i] = sc.nextInt();
                y[i] = sc.nextInt();
            }
            int minx = Integer.MAX_VALUE;
            int miny = Integer.MAX_VALUE;
    
            for (int i = 0; i < n; i++) {
                int sumx = 0;
                int sumy = 0;
                int d = x[i];
                int f = y[i];
                for (int j = 0; j < n; j++) {
                    sumx = sumx + Math.abs(d - x[j]);
                    sumy = sumy + Math.abs(f - y[j]);
                }
                if (sumx < minx)
                    minx = sumx;
                if (sumy < miny) {
                    miny = sumy;
                }
            }
            System.out.println(minx + miny);
        }
    }
    
    
    • 1

    信息

    ID
    2619
    时间
    1000ms
    内存
    128MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者