http://icpc.ahu.edu.cn/OJ/Problem.aspx?id=231
#include <iostream>
#include <algorithm>
using namespace std;
int arr[10005];
unsigned long long Fun(int N)
{
sort(arr, arr + N);
unsigned long long ans = 0;
for (int i = 0; i < N - 1; i++) {
ans += (arr[i + 1] - arr[i]) * (i + 1) * (N - i - 1);
}
return ans * 2;
}
int main(void)
{
// freopen("cin.txt", "r", stdin);
int k;
cin >> k;
for (int i = 0; i < k; i++)
cin >> arr[i];
cout << Fun(k) << endl;
return 0;
}
这个是WA,看了半天,没找到错误,反正 The location of each cow (in the range 0..1,000,000,000)
没超21亿,用int就是可以!搞了半天,是我错了,应该把那句改为
ans += ( (long long)(arr[i + 1] - arr[i]) ) * (i + 1) * (N - i - 1);
因为类型转换那方面的破事!!!