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)

Explicatie