Giao điểm hai đường tròn

Xem dưới dạng PDF

Gửi bài giải


Điểm: 25
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
đầu vào: stdin
Đầu ra: stdout

Tác giả:
Kiểu bài tập

Hai vệ tinh viễn thông có vùng phủ sóng hình tròn trên mặt đất. Khi hai vùng phủ sóng chồng lên nhau, có hai điểm chung trên mặt đất. Kỹ sư cần xác định chính xác toạ độ của các điểm này để lắp đặt trạm chuyển tiếp.

Hãy viết chương trình tìm toạ độ các giao điểm của hai đường tròn.

Định dạng đầu vào

  • Một dòng chứa sáu số nguyên \(x_1, y_1, r_1, x_2, y_2, r_2\) (\(-10^4 \le x_i, y_i \le 10^4\), \(1 \le r_i \le 10^4\)). Hai đường tròn không trùng nhau.

Định dạng đầu ra

  • Dòng đầu in số giao điểm \(k\) (\(0\), \(1\), \(2\)).
  • Nếu \(k > 0\): các dòng tiếp theo in toạ độ \(x\) \(y\) của từng giao điểm, làm tròn đến sáu chữ số thập phân, mỗi giao điểm trên một dòng.
  • Nếu \(k = 2\): in giao điểm có toạ độ \(x\) nhỏ hơn trước.

Ví dụ

Input:

0 0 5 5 0 5

Output:

2
2.500000 -4.330127
2.500000 4.330127

Ràng buộc

  • 30% số điểm: \(|x_i|,|y_i|, r_i \le 20\).
  • 30% số điểm tiếp theo: \(|x_i|,|y_i|, r_i \le 1000\).
  • 40% số điểm còn lại: không có ràng buộc gì thêm.

Nhận xét

Không có ý kiến tại thời điểm này.