0131 - Sort Cif 2

From Bitnami MediaWiki
Revision as of 17:53, 8 November 2023 by AntalKrisztian (talk | contribs) (Pagină nouă: 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, separat...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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>