trang chủ / bài tập / fifawifi

Fifa và Fafa

Đề bài

Mô tả

Căn hộ của Fifa có dạng hình tròn tâm (x1,y1) bán kính R trên mặt phẳng toạ độ. Fifa muốn đặt một điểm phát Wi-Fi bên trong căn hộ. Vùng phủ sóng của điểm phát là một hình tròn tâm (xap,yap) bán kính r (cả tâm lẫn bán kính đều do Fifa chọn).

Hai điều kiện phải được bảo đảm:

  • Vùng phủ sóng phải nằm hoàn toàn bên trong căn hộ, để không ai ở ngoài căn hộ bắt được sóng.
  • Chiếc laptop của Fafa đặt tại (x2,y2) (không nhất thiết nằm trong căn hộ) phải nằm ngoài vùng phủ sóng.

Trong số các vùng phủ sóng thoả mãn hai điều kiện trên, hãy chọn vùng có diện tích lớn nhất (tức bán kính r lớn nhất) để phần căn hộ không được phủ sóng là nhỏ nhất. In ra tâm và bán kính của vùng phủ sóng đó.

Dữ liệu vào

Một dòng gồm 5 số nguyên R,x1,y1,x2,y2.

Dữ liệu ra

In ra ba số thực xap,yap,r là toạ độ tâm và bán kính vùng phủ sóng mà Fifa chọn.

Đáp án được chấp nhận nếu bán kính sai khác so với đáp án tối ưu không quá 106 (tuyệt đối hoặc tương đối), và bán kính in ra có thể thay đổi thêm không quá 106 (tuyệt đối hoặc tương đối) sao cho mọi điểm nằm ngoài căn hộ cũng như vị trí laptop của Fafa đều nằm ngoài vùng phủ sóng.

Ràng buộc

  • 1R105
  • |x1|,|y1|,|x2|,|y2|105

Ví dụ

Input Output Giải thích
10 5 5 5 15 5.0000000000 5.0000000000 10.0000000000 Laptop cách tâm đúng 10=R nên nằm trên biên căn hộ, vùng phủ sóng có thể trùm cả căn hộ với r=R=10.
5 3 3 1 1 3.7677669530 3.7677669530 3.9142135624 Laptop nằm trong căn hộ nên vùng phủ sóng bị đẩy lệch, tiếp xúc trong với biên căn hộ và chạm tới vị trí laptop, đạt r=R+d2 với d là khoảng cách từ tâm tới laptop.
10 0 0 0 0 5.0000000000 0.0000000000 5.0000000000 Laptop nằm ngay tâm căn hộ, vùng phủ sóng lớn nhất có bán kính R/2=5, tiếp xúc trong với biên và đi qua tâm.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0