3999 - Sum Min 9
Sursă: [1]
Cerință[edit | edit source]
Se dau n perechi de numere naturale a, b. Să se determine cea mai mică sumă care se poate obține adunând câte un singur număr din fiecare pereche de numere citite a şi b.
Date de intrare[edit | edit source]
Programul citeşte de la tastatură numărul n, apoi n perechi de numere a, b.
Date de ieșire[edit | edit source]
Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele sunt corecte.". Programul pe ecranului suma minimă obținută. În caz contrar, se va afișa pe ecran: "Datele nu sunt comform restricțiilor impuse.".
Restricții și precizări[edit | edit source]
- 1 ≤ n ≤ 10.000
- fiecare dintre numerele a şi b au cel mult 9 cifre.
Exemple[edit | edit source]
Exemplu 1[edit | edit source]
- Date de intrare
- 3
- 2 69
- 20 10
- 19 30
- Date de ieșire
- 31
Explicatie[edit | edit source]
Se aleg numerele 2, 10 și 19. Suma lor este 31.
Rezolvare[edit | edit source]
<syntaxhighlight lang="python" line="1"> def citeste_n():
while True: try: n = int(input("Introduceti numarul de perechi: ")) if n >= 1 and n <= 10000: print("Datele sunt corecte.") return n else: print("Datele nu sunt conform restrictiilor impuse.") except ValueError: print("Trebuie introduse doar numere intregi.")
def nrcifre(nr):
nrcif = 0 while nr != 0: nrcif += 1 nr //= 10 return nrcif
def citeste_perechi(n):
valori = [] for i in range(n): while True: try: valoare1, valoare2 = map(int, input("Introduceti o pereche de valori separate prin spatiu: ").split()) cifre1 = nrcifre(valoare1) cifre2 = nrcifre(valoare2) if cifre1 <= 9 and cifre2 <= 9: print("Datele sunt corecte.") valori.append((valoare1, valoare2)) break else: print("Datele nu sunt conform restrictiilor impuse.") except ValueError: print("Trebuie introduse doar valori cu mai putin de 9 cifre.") return valori
def Sum_Min_9(valori):
suma_min = 0 for a, b in valori: suma_min += min(a, b)
print("Suma minima este:", suma_min)
if _name_ == '_main_':
n = citeste_n() valori = citeste_perechi(n) Sum_Min_9(valori)
</syntaxhighlight>