Giao điểm đường thẳng và đườ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
Một trạm radar phát hiện vật thể bay trên quỹ đạo là đường thẳng. Vùng phát hiện của radar là một hình tròn. Kỹ sư cần xác định vị trí vật thể đi vào và đi ra khỏi vùng phát hiện, tức là giao điểm giữa đường thẳng (quỹ đạo) và đường tròn (vùng phát hiện).
Hãy viết chương trình tìm giao điểm của đường thẳng và đường tròn.
Định dạng đầu vào
- Dòng đầu chứa ba số nguyên \(x_c, y_c, r\) (\(-10^4 \le x_c, y_c \le 10^4\), \(1 \le r \le 10^4\)) là tâm và bán kính đường tròn.
- Dòng thứ hai chứa ba số nguyên \(A, B, C\) (\(-10^4 \le A, B, C \le 10^4\), \(A^2 + B^2 > 0\)) là phương trình đường thẳng \(Ax + By + C = 0\).
Đị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.
- Nếu \(k = 2\): in giao điểm có toạ độ \(x\) nhỏ hơn trước.
Ví dụ
Input:
0 0 5
1 0 -3
Output:
2
3.000000 -4.000000
3.000000 4.000000
Giải thích: Đường thẳng \(x = 3\) cắt đường tròn tâm \((0,0)\) bán kính \(5\) tại \((3,4)\) và \((3,-4)\).
Ràng buộc
- 30% số điểm: \(|x_c|,|y_c|, r \le 10\).
- 30% số điểm tiếp theo: \(|x_c|,|y_c|, r \le 100\).
- 40% số điểm còn lại: không có ràng buộc gì thêm.
Nhận xét