Description:
请你找一个适当的C,使得上式结果最小( 2<n<10000,ai<1e9 ,n,ai均为整数)
Input:
第一行一个数n 表示有几个数第二行n个数用空格隔开分别代表a1……an
Output:
请输出一个结果
Sample Input:
2
1 3
Sample Output:
2
Sample Input:
4
1 2 3 4
Sample Output:
4
题目连接
这道题目当时比赛的时候看了很久没有看出来,真是僵硬。C的结果就是等于输入数据中大小排序中间的那个数,要求输出的结果是和不是C。
AC代码:
#include <iostream>
#include <cstdio>
#include <string>
#include <cstring>
#include <algorithm>
#include <iomanip>
#include <cctype>
#include <cmath>
#include <stack>
#include <queue>
#include <vector>
#include <cstdlib>
#include <sstream>
#include <set>
#include <map>
using namespace std;
#define mem(a,b) memset(a,b,sizeof(a))
#define pb push_back
typedef long long ll;
typedef pair<int,int> P;
const int INF = 0x3f3f3f3f;
const int maxn = 1e5+5;
const double eps = 1e-5;
const double pi = asin(1.0)*2;
const double e = 2.718281828459;
int n;
ll a[maxn];
ll ans;
int main() {
cin >> n;
for (int i = 0; i < n; ++i) {
cin >> a[i];
}
sort(a, a + n);
ans = 0;
for (int i = 0; i < n; ++i) {
ans += abs(a[n / 2] - a[i]);
}
cout << ans;
return 0;
}