Description
请你找一个适当的C,使得上式结果最小(2<n<10000,ai<1e9,n,ai均为整数)
Input
第一行一个数n 表示有几个数第二行n个数用空格隔开分别代表a1……an
Output
请输出一个结果
数学问题。
C可能是排序完成后中部的值
#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;
int a[10009];
int main()
{
int n;
cin>>n;
long long ans=0;//数据大 long long
for(int i=0;i<n;i++)//这里是从0开始
{
cin>>a[i];
}
sort(a,a+n);
for(int i=0;i<n;i++)
{
ans+=abs(a[i]-a[n/2]);
//printf("%d\n",a[i]);
}
printf("%lld",ans);
return 0;
}
这个类似曼哈顿距离 问题。。。