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 件のコメント :
コメントを投稿