2004 - Ore

From Bitnami MediaWiki
Revision as of 08:52, 31 October 2023 by AntalKrisztian (talk | contribs) (Pagină nouă: == Cerinţa == Se consideră două evenimente a căror durată este exprimată fiecare prin câte trei numere naturale: ore (h), minute (m) şi secunde (s).Să se scrie în fișierul de ieșire: * a) pe primele două linii, duratele în formatul '''h: m: s''' * b) pe următoarele două linii, duratele exprimate în secunde, corespunzătoare fiecăruieveniment, pe rânduri separate; * c) pe următoarea linie suma obţinută din adunarea duratelor celor două evenimente, exprim...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Cerinţa

Se consideră două evenimente a căror durată este exprimată fiecare prin câte trei numere naturale: ore (h), minute (m) şi secunde (s).Să se scrie în fișierul de ieșire:

  • a) pe primele două linii, duratele în formatul h: m: s
  • b) pe următoarele două linii, duratele exprimate în secunde, corespunzătoare fiecăruieveniment, pe rânduri separate;
  • c) pe următoarea linie suma obţinută din adunarea duratelor celor două evenimente, exprimată în ore, minute, secunde, în formatul h: m: s.

Date de intrare

Fișierul de intrare ore.in conține două linii pe care sunt scrise câte trei numere naturale, separate prin câte un spaţiu, reprezentând duratele a două evenimente exprimate în: ore (h), minute (m) şi secunde (s).

Date de ieşire

Fișierul de ieșire ore.out va conține pe primele două linii răspuncul de la cerința a), apoi pe liniile 3 și 4 răspunsul la cerința b), iar pe a 5-a linie răspunsul la cerința c).

Restricții și precizări

  • 1 ⩽ h ⩽ 24
  • 0 ⩽ m ⩽ 60
  • 0 ⩽ s ⩽ 60

Exemplu

ore.in
3 35 55
2 40 8
ore.out
3: 35: 55
2: 40: 8
12955
9608
6: 16: 3

Explicaţii

În fișierul de intrare sunt detaliile referitoare la duratele cele două evenimente, iar suma lor este 6: 16: 3.

Rezolvare

<syntaxhighlight lang="python" line>

  1. Citirea datelor din fișier

h1, m1, s1, h2, m2, s2 = map(int, open('ore.in').read().split())

  1. Calcularea duratelor în secunde și a sumei lor

sec1, sec2 = h1 * 3600 + m1 * 60 + s1, h2 * 3600 + m2 * 60 + s2 total_sec = sec1 + sec2

  1. Conversia sumei duratelor înapoi în ore, minute și secunde

total_o, total_sec = divmod(total_sec, 3600) total_m, total_s = divmod(total_sec, 60)

  1. Scrierea rezultatelor în fișier

with open('ore.out', 'w') as f:

   f.write(f'{h1}: {m1}: {s1}\n{h2}: {m2}: {s2}\n{sec1}\n{sec2}\n{total_o}: {total_m}: {total_s}\n')

</syntaxhighlight>