3181 - Marte3

De la Universitas MediaWiki
Versiunea pentru tipărire nu mai este suportată și poate avea erori de randare. Vă rugăm să vă actualizați bookmarkurile browserului și să folosiți funcția implicită de tipărire a browserului.

Cerința

Pe planeta Marte anul marțian durează x zile marțiene, iar o zi marțiană durează y ore. În fiecare oră, marțianului Iggle îi crește o antenă. După cât timp va avea Iggle n antene?

Date de intrare

Programul citește de la tastatură numerele naturale x y n.

Date de ieșire

Programul va afișa pe ecran trei numere naturale: a, z, h, pe rânduri diferite, reprezentând numărul de ani, zile și ore după care Iggle va avea n antene.

Restricții și precizări

  • 1 ≤ x , y ≤ 1.000
  • 1 ≤ n ≤ 1.000.000.000

Exemplu:

Intrare

5 3 100

Ieșire

6
3
1

Explicație

Anul marțian are 5 zile, iar ziua marțiană are 3 ore. Astfel, un an marțian va avea 5*3 = 15 ore. Atunci 100 de ore marțiene înseamnă 6 ani și încă 10 ore. Cele 10 ore înseamnă 3 zile și 1 oră.

Rezolvare

# 3181 - Marte3
def validare(nr_x, nr_y, nr_n):
    # Daca datele sunt invalide v-om face raise la eroarea ValueError

    conditii = (
        nr_x >= 1, nr_y >= 1, nr_n >= 1,
        nr_x <= 1000, nr_y <= 1000, nr_n <= 1000000000
    )

    if not all(conditii):
        raise ValueError


def marte3(nr_x, nr_y, nr_n):
    # un an martian are x zile, o zi are y ore,
    # deci un an va avea x*y ore, astfel a=nr_n//(nr_x * nr_y)
    a = nr_n // (nr_x * nr_y)
    # aflam numarul de ore ramase
    nr_n = nr_n - a * nr_x * nr_y
    # aflam numarul de zile
    z = nr_n // nr_y
    h = nr_n - z * nr_y
    print(f"{a}\n{z}\n{h}")


if __name__ == '__main__':
    # Citim de la tastatura numerele cerute
    nr_x = int(input())
    nr_y = int(input())
    nr_n = int(input())

    # Verificam daca datele introduse sunt valide
    # daca nu afisam mesajul corespunsador
    try:
        validare(nr_x, nr_y, nr_n)
    except ValueError:
        print("Nu au fost respectate cerintele impuse")
    else:
        print("Datele de intrare corespund restricțiilor impuse")

        marte3(nr_x, nr_y, nr_n)