giaoxu02

Xem PDF

Điểm: 100 Thời gian: 1.0s Bộ nhớ: 640M Input: bàn phím Output: màn hình

cho \(n\) đường tròn có bán kính \(r\), và 1 đường tròn O có bán kính \(R\).

Hỏi có thể đặt \(n\) đường tròn bán kính \(r\) đó vào trong đường tròn O sao cho

  • \(n > 1\): 2 đường tròn bất kỳ trong \(n\) đường tròn có nhiều nhất \(1\) điểm chung
  • mỗi đường tròn phải có ít nhất 1 điểm chung với đường tròn O.

Nhập \(n, R, r\), kiểm tra tính khả thi - "YES" (khả thi) - "NO" ko khả thi.

Lưu ý nhập nhiều test.

Example

Test 1

Input
2
4 10 4
5 10 4
Output
YES
NO

Bình luận


  • 0
    thanphong    7:57 p.m. 24 Tháng 2, 2022

    code bằng python nhé


    • 0
      thanphong    7:57 p.m. 24 Tháng 2, 2022

      đây là ý tưởng của tôi

      trong quá trình sử lý thì có một chút sai số cực nhỏ nên tôi mới để lớn hơn 360.00000000000006


      • 0
        thanphong    7:56 p.m. 24 Tháng 2, 2022
        1. from sys import stdin

        from math import pi,asin,degrees as rad

        q=int(stdin.readline())

        for i in range(q):

        n, R, r = map(int, stdin.readline().split())
        
        if r==R and n==1:
        
            print('YES')
        
        elif r>R or (r==R and n!=1):
        
            print('NO')
        
        else:
        
            if r/(R-r)>1 and n!=1:
                print('NO')
            elif r/(R-r)>1 and n==1:
                print('YES')
            else:
                t = asin(r / (R - r))
                t = rad(t) * 2 * n
                print(t)
                if t > 360.00000000000006:
                    print('NO')
                else:
                    # print(t)
                    print('YES')
        

        • 0
          thanphong    5:08 p.m. 24 Tháng 2, 2022

          ai cho tôi xin ý tưởng bài này được không