JOI 2008 - Belt

Xem PDF



Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 2300 (p) Thời gian: 5.0s Bộ nhớ: 64M Input: bàn phím Output: màn hình

Thành phố JOI muốn xây một lối đi bộ tự động chạy theo đường thẳng từ đầu này đến đầu kia thành phố. Một cư dân hài lòng nếu khoảng cách từ nhà mình đến đường này không quá \(d\), và không hài lòng nếu khoảng cách lớn hơn \(d\).

Hãy chọn vị trí và hướng của đường sao cho số cư dân hài lòng lớn nhất, rồi tính số đó. Mỗi ngôi nhà là một điểm trên mặt phẳng; lối đi có chiều rộng bằng \(0\). Lối đi có thể đi qua nhà, khi đó cư dân vẫn hài lòng. Khoảng cách được hiểu là khoảng cách Euclid từ điểm đến đường thẳng.

Dữ liệu vào

Đọc từ đầu vào chuẩn.

Dòng đầu chứa số cư dân \(n\) và khoảng cách \(d\), với \(1 \le n \le 1000\), \(0.001 \le d \le 10000\). \(d\) là số thực dương, có thể có tới ba chữ số sau dấu thập phân.

\(n\) dòng tiếp theo, mỗi dòng chứa hai số nguyên \(x_i,y_i\), với \(-1000 \le x_i,y_i \le 1000\). Các vị trí nhà đôi một khác nhau.

Cả ví dụ lẫn dữ liệu chấm đều bảo đảm: nếu thay \(d\) bằng bất kỳ số thực nào trong đoạn \([d-0.0005,d+0.0005]\), số cư dân hài lòng tối đa không thay đổi.

Dữ liệu ra

Ghi ra đầu ra chuẩn một dòng chứa số cư dân hài lòng lớn nhất.

Chấm điểm

Giới hạn thời gian: \(10\) giây mỗi bộ dữ liệu. Giới hạn bộ nhớ: \(64\) MB.

\(10\) bộ dữ liệu, mỗi bộ \(10\) điểm; tổng cộng \(100\) điểm. \(60\%\) số điểm ứng với \(n \le 100\).

Ví dụ

Ví dụ 1

Input
10 8.000
-2 1
-10 2
-2 3
-7 -8
7 5
10 -5
-9 -6
-6 10
-5 8
4 -2
Output
9

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.

Kỳ thi: