彗星OJ -コンテスト#8 Bのサポート都市
直接アナログ\(O(^ N-2)\) TLE、計算式を展開し、\(O(N)\)
\ [\ sum_ {i = 1} ^ N {(w_i - w_x)^ 2} = \ sum_ {i = 1} ^ N(w_i ^ 2 - 2w_iw_x + w_x ^ 2)= \ sum_ {i = 1} ^ N w_i ^ 2 - 2w_x \ sum_ {i = 1} ^ N w_i + \ sum_ {i = 1} ^ N w_x ^ 2 \]
$ \ sum_ {i = 1} ^ N w_i ^ 2 $ と呼ばれる\(SS \)
\(\ sum_ {i = 1 } ^ N w_iは\) と呼ばれる\(S \)
上記の式は、と略記:$のSS - 2w_xs + nw_x ^ 2 $
コード
#include <iostream>
using namespace std;
const int N = 1e5 + 10;
typedef long long ll;
ll a[N],s,ss;
int main(){
ios::sync_with_stdio(0);
cin.tie(0),cout.tie(0);
int n;
cin >> n;
for(int i = 0;i < n; ++i){
cin >> a[i];
s += a[i];
ss += a[i] * a[i];
}
for(int i = 0;i < n; ++i){
cout << ss - 2 * a[i] * s + n * a[i] * a[i] <<' ';
}
return 0;
}