1921 - Ceas

De la Universitas MediaWiki

Cerința

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

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

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

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:

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

Rezolvare

<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>