USACO 2014 - Line of Sight

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: 1800 (p) Thời gian: 4.0s Bộ nhớ: 512M Input: bàn phím Output: màn hình

\(N\) con bò của Farmer John (\(1 \le N \le 50\,000\)) đứng tại các điểm đôi một khác nhau trên đồng cỏ hai chiều của ông. Ở giữa đồng cỏ có một silo ngũ cốc lớn hình tròn. Những con bò ở hai phía đối diện của silo không thể nhìn thấy nhau vì silo chắn tầm nhìn. Hãy xác định số cặp bò có thể nhìn thấy nhau theo một đường ngắm thẳng.

Silo ngũ cốc có tâm tại gốc tọa độ \((0,0)\) và bán kính \(R\). Không có con bò nào nằm trên hoặc bên trong đường tròn tương ứng với silo, và không có hai con bò nào cùng nằm trên một đường thẳng tiếp xúc với silo. Giá trị \(R\) nằm trong khoảng \(1..1\,000\,000\), và mỗi con bò đứng tại một điểm có tọa độ nguyên trong khoảng \(-1\,000\,000..+1\,000\,000\).

Dữ liệu vào

  • Dòng 1 chứa hai số nguyên \(N\)\(R\).
  • Các dòng \(2..1+N\): mỗi dòng chứa hai số nguyên mô tả tọa độ \((x,y)\) của một con bò.

Dữ liệu ra

  • Dòng 1 chứa số cặp bò có thể nhìn thấy nhau.

Ví dụ

Ví dụ 1

Input
4 5
0 10
0 -10
10 0
-10 0
Output
4
Giải thích

Có 4 con bò tại các vị trí \((0,10)\), \((0,-10)\), \((10,0)\)\((-10,0)\). Silo có tâm tại \((0,0)\) và bán kính 5.

Trong cả 6 cặp bò, mọi cặp đều có thể nhìn thấy nhau ngoại trừ hai cặp nằm ở hai phía đối diện của silo: hai con bò tại \((-10,0)\)\((10,0)\) không thể nhìn thấy nhau, và hai con bò tại \((0,-10)\)\((0,10)\) cũng không thể nhìn thấy nhau.

Nguồn

USACO 2013 November Contest, Gold — Problem 2: Line of Sight

Tác giả đề: Brian Dean và Chad Waters, 2013.

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: