3999 - Sum Min 9
De la Universitas MediaWiki
Sursă: [1]
Cerință
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
Programul citeşte de la tastatură numărul n, apoi n perechi de numere a, b.
Date de ieșire
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
- 1 ≤ n ≤ 10.000
- fiecare dintre numerele a şi b au cel mult 9 cifre.
Exemple
Exemplu 1
- Date de intrare
- 3
- 2 69
- 20 10
- 19 30
- Date de ieșire
- 31
Explicatie
Se aleg numerele 2, 10 și 19. Suma lor este 31.
Rezolvare
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)