🤖
ABC351E
問題
解法
斜めの 1マス移動は 45度回転させてマンハッタン距離の 2マス移動に対応する.
マンハッタン距離は,軸毎に独立なので解きやすい.
コード
main.cpp
ll f(vll& xs){
sort(all(xs));
ll ret = 0;
rep(i,xs.size()){
ll coe = i - (xs.size()-1-i);
ret += coe * xs[i];
}
return ret/2;
}
int main() {
ll n;
cin >> n;
vvll xs(2), ys(2);
rep(i,n){
ll X,Y; cin >> X >> Y;
ll x = X + Y;
ll y = X - Y;
xs[(X + Y)%2].push_back(x);
ys[(X + Y)%2].push_back(y);
}
ll ans = 0;
rep(i,2) ans += f(xs[i]) + f(ys[i]);
cout << ans << "\n";
return 0;
}
Discussion