canuc80k6920·21/50

Bình Phương Khoảng Cách Gần Nhất

Nộp bài trên LQDOJ

Bài 69 · Geometry

Cho điểm phân biệt trên mặt phẳng tọa độ. Với hai điểm và , bình phương khoảng cách Euclid giữa chúng là

Hãy tìm giá trị nhỏ nhất của biểu thức trên trong tất cả các cặp điểm phân biệt.

Input

  • Dòng đầu chứa số nguyên .
  • dòng tiếp theo, mỗi dòng chứa hai số nguyên là tọa độ của điểm thứ .

Output

  • In một số nguyên là bình phương khoảng cách Euclid nhỏ nhất giữa hai điểm bất kỳ.

Constraints

  • .
  • .
  • Mọi điểm đôi một phân biệt.

Scoring

  • Subtask ( điểm): .
  • Subtask ( điểm): không có giới hạn bổ sung.

Example

Test 1

Input

5
0 0
7 7
3 4
10 1
4 4

Output

1

Giải thích: Hai điểm và cách nhau một đơn vị, nên bình phương khoảng cách bằng và không thể có giá trị dương nhỏ hơn.

Lời giải tóm tắt
  • Ý tưởng: Sắp các điểm theo hoành độ và dùng chia để trị. Với một đoạn điểm, ta giải hai nửa rồi trộn chúng theo tung độ. Gọi là bình phương khoảng cách tốt nhất trong hai nửa; mọi cặp tốt hơn nối hai nửa phải có cả hai điểm cách đường chia một khoảng có bình phương nhỏ hơn .
  • Ý tưởng: Ta đưa các điểm đó vào một dải đã tăng theo tung độ. Với mỗi điểm, chỉ cần xét các điểm tiếp theo cho đến khi bình phương hiệu tung độ đạt . Lập luận đóng gói trong các ô vuông cho biết tổng số cặp được xét ở mỗi tầng là tuyến tính.
  • Ý tưởng: Cần lưu hoành độ đường chia trước khi hai nửa bị trộn theo tung độ. Mọi phép bình phương được thực hiện bằng __int128; kết quả tối đa vẫn được in dưới dạng số nguyên.
  • Ý tưởng: Độ phức tạp là thời gian và bộ nhớ.