1013 - Aniversari

From Bitnami MediaWiki
Revision as of 16:17, 30 October 2023 by AntalKrisztian (talk | contribs) (Pagină nouă: == Cerinţa == Se dau datele de naștere a n persoane, numerotate de la '''1''' la '''n''', în forma '''an luna zi'''. Să se determine numărul de ordine al celei mai tinere și al celei mai în vârstă persoană dintre cele date. == Date de intrare == Programul citește de la tastatură numărul '''n''', iar apoi '''n''' triplete de numere naturale '''a l z''', reprezentând anul, luna și ziua de naștere a fiecărei persoane. == Date de ieşire == Programul va afișa pe...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Cerinţa

Se dau datele de naștere a n persoane, numerotate de la 1 la n, în forma an luna zi. Să se determine numărul de ordine al celei mai tinere și al celei mai în vârstă persoană dintre cele date.

Date de intrare

Programul citește de la tastatură numărul n, iar apoi n triplete de numere naturale a l z, reprezentând anul, luna și ziua de naștere a fiecărei persoane.

Date de ieşire

Programul va afișa pe ecran două numere p q, reprezentând numărul de ordine al celei mai tinere, respectiv al celei mai în vârstă persoană.

Restricții și precizări

  • 1 ⩽ n ⩽ 1000
  • cele n date calendaristice sunt corecte
  • dacă există două sau mai multe persoane cele mai tinere (în vârstă) se va afișa numărul de ordine mai mic

Exemplu

Intrare
5
1998 5 26
1987 12 18
1987 9 25
2015 1 16
2015 1 8
Ieșire
4 3

Rezolvare

<syntaxhighlight lang="python" line> def persoane():

   # Citim numărul de persoane
   n = int(input())
   # Inițializăm datele celei mai tinere și celei mai în vârstă persoane
   data_tanar = (0, 0, 0)
   data_batran = (9999, 12, 31)
   nr_tanar = nr_batran = 0
   # Parcurgem fiecare persoană
   for i in range(1, n+1):
       # Citim data de naștere a persoanei
       an, luna, zi = map(int, input().split())
       # Dacă persoana este mai tânără decât cea mai tânără persoană curentă
       if (an, luna, zi) > data_tanar:
           # Actualizăm data celei mai tinere persoane și numărul său de ordine
           data_tanar = (an, luna, zi)
           nr_tanar = i
       # Dacă persoana este mai în vârstă decât cea mai în vârstă persoană curentă
       if (an, luna, zi) < data_batran:
           # Actualizăm data celei mai în vârstă persoane și numărul său de ordine
           data_batran = (an, luna, zi)
           nr_batran = i
   # Afișăm numărul de ordine al celei mai tinere și al celei mai în vârstă persoană
   print(nr_tanar, nr_batran)

persoane()

</syntaxhighlight>