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);
因为类型转换那方面的破事!!!