0131 - Sort Cif 2
Se dă un vector cu n elemente numere întregi.
Cerinţa
Să se ordoneze crescător elementele unui vector crescător după prima cifră.
Date de intrare
Fişierul de intrare sortcif2.in conţine pe prima linie numărul n si pe a doua linie n numere întregi separate prin spaţii.
Date de ieşire
Fişierul de ieşire sortcif2.out va conţine pe prima linie cele n elemente ale vectorului, ordonate conform cerinței, separate printr-un spațiu.
Restricții și precizări
- 0 < n ⩽ 100
- valoarea absolută a numerelor de pe a doua linie a fişierului de intrare va fi mai mică decât 2 30
Exemplu
- sortcif2.in
- 6
- 89 2246 91 4005 51 721
- sortcif2.out
- 2246 4005 51 721 89 91
Rezolvare
<syntaxhighlight lang="python" line> def sort_numbers():
with open('sortcif2.in', 'r') as fin: n = int(fin.readline()) # Citim numărul n de la tastatură numbers = list(map(int, fin.readline().split())) # Citim cele n numere de la tastatură
# Sortăm numerele în funcție de prima cifră numbers.sort(key=lambda x: int(str(abs(x))[0]))
with open('sortcif2.out', 'w') as fout: fout.write(' '.join(map(str, numbers))) # Scriem numerele în fișier, separate printr-un spațiu
sort_numbers()
</syntaxhighlight>