1 条题解
-
0
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
- 上传者