POJ 2231 Moo Volume
くっそ頭悪い
戒め
#include <set> #include <algorithm> #include <string> #include <queue> #include <iostream> #include <utility> #include <cstdio> #include <string.h> #include <vector> using namespace std; long long int d[10010]; long long int tmp[10010]; int main(){ long long int n; scanf("%lld",&n); for(int i = 0;i < n;i++){ scanf("%lld",&d[i]); } sort(d,d+n); tmp[0] = d[0]; for(int i = 1;i < n;i++){ tmp[i] = tmp[i-1] + d[i]; } long long int ans = 0; for(int i = 0;i < n;i++){ if(i != n-1) ans += tmp[n-1] - tmp[i] - d[i]*(n-i-1); if(i != 0) ans -= tmp[i-1] - d[i]*i; } printf("%lld\n",ans); return 0; }