Số giao điểm hai đường tròn

Xem dưới dạng PDF

Gửi bài giải


Điểm: 20
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

Mai đang thiết kế một mạng lưới cảm biến không dây. Mỗi cảm biến có vùng phủ sóng hình tròn. Mai muốn xác định xem vùng phủ sóng của hai cảm biến chồng lên nhau như thế nào: có bao nhiêu điểm chung giữa hai đường tròn biểu diễn vùng phủ sóng.

Hãy giúp Mai viết chương trình đếm số 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\)).

Định dạng đầu ra

  • In ra số giao điểm của hai đường tròn. Nếu hai đường tròn trùng nhau, in ra \(-1\).

Ví dụ

Input:

0 0 5 8 0 3

Output:

1

Giải thích: Hai đường tròn tâm \((0,0)\) bán kính \(5\) và tâm \((8,0)\) bán kính \(3\) tiếp xúc ngoài tại \((5,0)\).

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.