Mã bài:

TimCamBien

Tên bài:

Tìm cảm biến

Giới hạn bộ nhớ:

64 MB

Giới hạn thời gian:

1 giây

Đăng bởi:

haunv

Độ khó:

Dễ

Dạng nhập:

CAMBIEN.INP

Dạng xuất:

CAMBIEN.OUT

Tại một trại nghiên cứu sinh thái, các nhà khoa học đặt cảm biến tại nhiều vị trí khác nhau trong một khu rừng để theo dõi nhiệt độ và độ ẩm.
Mỗi cảm biến được xác định bằng tọa độ (x, y) trên bản đồ.

Một ngày nọ, hệ thống báo cáo rằng một số cảm biến có thể bị đặt quá gần nhau, gây nhiễu sóng.
Bạn – kỹ sư phụ trách hệ thống – cần viết một chương trình xác định hai cảm biến gần nhau nhất để điều chỉnh lại vị trí.

Vì số lượng cảm biến có thể lên đến hàng trăm nghìn, nếu duyệt từng cặp một thì chương trình sẽ chạy rất chậm.
Vì vậy, bạn cần vận dụng kỹ thuật chia để trị để tìm ra khoảng cách nhỏ nhất hiệu quả nhất.


📥 Dữ liệu vào: Đọc từ tệp CAMBIEN.INP bao gồm:

  • Dòng 1: Một số nguyên n — số lượng cảm biến (2 ≤ n ≤ 10⁵).

  • n dòng tiếp theo: Mỗi dòng chứa hai số thực xy — tọa độ của cảm biến.


📤 Dữ liệu ra: Ghi ra tệp CAMBIEN.OUT gồm:

  • In ra khoảng cách nhỏ nhất giữa hai cảm biến, làm tròn đến 6 chữ số sau dấu phẩy.


Ví dụ mẫu

CAMBIEN.INP CAMBIEN.OUT
4
0 0
1 1
2 2
5 5
1.414214
3
-1 0
0 0
3 4
1.000000