0185 - Cif Init

De la Universitas MediaWiki

Cerința

Se citește de la tastură un număr natural num_numere, apoi num_numere numere naturale. Să se afişeze cel mai mic număr care poate fi scris folosind prima cifră a numerelor citite.

Date de intrare

Programul citește de la tastatură numărul num_numere, iar apoi cele num_numere numere naturale, separate prin spaţii.

Date de ieșire

Pe ecran se va afișa mesajul: "Datele de intrare corespund restricțiilor impuse". În următorul rând se va afișa pe ecran numărul numar_minim, cel mai mic număr care poate fi scris folosind prima cifră a numerelor citite.

În cazul în care datele introduse de la tastatură nu îndeplinesc cerințele enunțate, pe ecran se va afișa mesajul "Nu au fost respectate cerintele impuse".

Restricții și precizări

  • 0 < num_numere < 1000
  • cele num_numere numere citite vor fi mai mari decât 0 și mai mici decât 1000000000

Exemplu 1

Intrare
5
100
312
276
985
5021
Ieșire
Datele de intrare corespund restricțiilor impuse
12359


Exemplu 2

Intrare
0
Ieșire
Nu au fost respectate cerintele impuse


Rezolvare

# 0185 - CifInit
def validare(num_numere, numere):
    # Daca datele sunt invalide v-om face raise la eroarea ValueError

    if (not (num_numere > 0 and num_numere < 1000)):
        raise ValueError

    for numar in numere:
        if (not (numar > 0 and numar < 1000000000)):
            raise ValueError


def cifinit(num_numere, numere):
    # Pentru fiecare dintre cele n numere vom determina prima cifra.
    # Vom memora aceste cifre intr-un vector pe care il vom sorta crescator.
    # Numarul dorit se obtine prin scrierea elementelor acestui vector.
    # Putem observa ca toate elementele acestui vector sunt nenule.
    primele_cifre = []

    for numar in numere:
        primele_cifre.append(str(numar)[0])

    primele_cifre.sort()

    numar_minim = int(''.join(primele_cifre))

    print(numar_minim)


if __name__ == '__main__':
    # Citim de la tastatura numerele cerute
    num_numere = int(input())
    numere = []

    for i in range(num_numere):
        numar = int(input())

        numere.append(numar)

    # Verificam daca datele introduse sunt valide
    # daca nu afisam mesajul corespunsador
    try:
        validare(num_numere, numere)
    except ValueError:
        print("Nu au fost respectate cerintele impuse")
    else:
        print("Datele de intrare corespund restricțiilor impuse")

        cifinit(num_numere, numere)