1921 - Ceas

From Bitnami MediaWiki

Cerința[edit | edit source]

Săturat de ținut uși, Hodor s-a hotărât să devină ceasornicar. Maestrul ceasornicar îi spune lui Hodor că îl va învăța, doar dacă va trece un test. Maestrul îi da lui Hodor un sistem de coordonate xOy, și un ceas cu raz r, al cărui centru se află în centrul sistemului de coordonate O(0,0). Ceasul contine doar limba care indica orele, de lungime r. Inițial limba indică ora 12:00, cu vârful în punctul de coordonate A(0,r). Hodor trebuie să afle coordonatele vârfului limbii, după h ore și m minute.

Date de intrare[edit | edit source]

Fișierul de intrare ceas.in conține pe prima linie trei numere naturale r,h, m, separate prin câte un spațiu, cu semnificațiile din enunț.

Date de ieșire[edit | edit source]

Fișierul de ieșire ceas.out va conține pe prima linie două numere x, y, reprezentând coordonatele vârfului limbii ceasului după h ore și m' minute.

Restricții și precizări[edit | edit source]

1 ≤ r ≤ 100 0 ≤ h ≤ 11 0 ≤ m ≤ 59 coordonatele vor fi punctate dacă diferența dintre cele afișate de program și cele corecte este mai mică decât 0.01.

Exemplu:[edit | edit source]

ceas.in
33 6 0
ceas.out
0.000 -33.000

Rezolvare[edit | edit source]

<syntaxhighligh lang="python"line=""> import math

def coordonate_ceas(r, h, m):

   if not (1 <= r <= 100):
       raise ValueError
   if not (0 <= h <= 11):
       raise ValueError
   if not (0 <= m <= 59):
       raise ValueError
   theta = (math.pi / 6) * (h + m / 60)
   x = r * math.cos(theta)
   y = r * math.sin(theta)
   return x, y

r, h, m = map(int, input("Introduceți r, h și m (separate prin spațiu): ").split())

rezultat = coordonate_ceas(r, h, m)

print(f"{rezultat[0]:.3f} {rezultat[1]:.3f}") </syntaxhighlight>