🤖

ABC351E

に公開

問題

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