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

Hai vành khăn

Đề bài

Mô tả

Trên một mặt phẳng vô hạn màu trắng, người ta tô đen đặc hai hình vành khăn.

Một vành khăn là phần mặt phẳng nằm giữa hai đường tròn đồng tâm bán kính rR (với r<R); r gọi là bán kính trong, R gọi là bán kính ngoài. Toàn bộ phần nằm giữa hai đường tròn này được tô đen, còn phần bên trong đường tròn bán kính r vẫn giữ màu trắng.

Hai vành khăn có thể có bán kính tuỳ ý và có thể cắt nhau hoặc chồng lên nhau theo bất kỳ cách nào, chỉ chắc chắn rằng tâm của chúng không trùng nhau.

Ta gọi đường viền là một đường cong khép kín liên tục mà khi đi qua nó thì màu sắc thay đổi từ bên này sang bên kia. Hãy đếm số đường viền có dạng đường tròn.

Mọi đường viền hình tròn đều phải là một trong bốn đường tròn giới hạn hai vành khăn. Một đường tròn như vậy được tính khi và chỉ khi không có cung nào của nó nằm hẳn bên trong phần tô đen của vành khăn còn lại; nếu nó chỉ tiếp xúc với vành khăn kia tại hữu hạn điểm thì vẫn được tính.

Dữ liệu vào

Gồm hai dòng, dòng thứ i chứa bốn số nguyên xi, yi, ri, Ri mô tả vành khăn thứ i: (xi,yi) là toạ độ tâm, riRi lần lượt là bán kính trong và bán kính ngoài.

Dữ liệu ra

Một số nguyên duy nhất là số cách cắt ra một hình tròn.

Ràng buộc

  • 100xi,yi100
  • 1ri<Ri100
  • Tâm hai vành khăn không trùng nhau.

Ví dụ

Input Output Giải thích
50 50 35 45
90 50 35 45
0 Hai vành khăn có cùng kích thước, tâm cách nhau 40. Mỗi đường tròn trong bốn đường tròn đều có một cung chui vào phần đen của vành khăn kia, nên không cắt được hình tròn nào.
60 60 45 55
80 60 15 25
4 Tâm cách nhau 20. Cả hai đường tròn bán kính 1525 đều nằm trong lỗ trắng bán kính 45 (vì 20+25=45, tiếp xúc vẫn hợp lệ), còn hai đường tròn bán kính 4555 đều bao trọn vành khăn thứ hai (vì 4520=25). Cả bốn đều hợp lệ.
60 60 45 55
80 80 8 32
1 Tâm cách nhau 80028.28. Chỉ đường tròn bán kính 8 nằm gọn trong lỗ trắng bán kính 45 của vành khăn thứ nhất; ba đường tròn còn lại đều cắt qua phần đen của vành khăn đối diện.

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