解いた問題

10/12/2011

SRM465 Div1 Easy

250
2つの正方形は、互いの最も近い変動しが平行になるように配置すればいい。
( ◇◇ではなく□□の方だけを考える )
片方の正方形の辺の長さを1伸ばすと、2つの正方形の距離はは0.5だけ縮まる。

typedef long long int lli;

class TurretPlacement {
public:
  long long count(vector <int> x, vector <int> y) {

    lli ret = 0;
    
    const int size = x.size();
    for (int i = 0; i < size; ++i) {
      for (int j = i + 1; j < size; ++j) {
        double X = x[i] - x[j];
        double Y = y[i] - y[j];
        lli dist = (lli)(sqrt(X * X + Y * Y) / 0.5);
        ret += dist * (dist - 1LL) / 2LL;
      }
    }

    return ret;
  }
};

0 件のコメント :

コメントを投稿