0618 - Inaltimi
Cerința
Se dau înălțimile a n copii, numerotați de la 1 la n, exprimate prin numere naturale. Afișați numerele de ordine ale copiilor în ordinea crescătoare a înălțimii lor.
Date de intrare
Programul citește de la tastatură numărul n, iar apoi n numere naturale, separate prin spații, reprezentând, în ordine, înălțimile copiilor.
Date de ieșire
Programul va afișa pe ecran n numere naturale distincte cuprinse între 1 și n, separate prin exact un spațiu, reprezentând numerele de ordine ale copiilor în ordinea crescătoare a înălțimii.
Restricții și precizări
- 1 ≤ n ≤ 1000
- înălțimile copiilor vor fi numere naturale distincte din intervalul [1, 10.000]
Exemplul 1
- Intrare
- 7
- 8 20 16 14 10 4 12
- Ieșire
- Datele de intrare corespund restricțiilor impuse.
- 6 1 5 7 4 3 2
Exemplul 2
- Intrare
- 0
- Ieșire
- Datele de intrare nu corespund restricțiilor impuse.
Rezolvare
<syntaxhighlight lang="python" line="">
- 0618 - Inaltimi
def citeste_inaltimi(n):
inaltimi = list(map(int, input().split())) return inaltimi
def ordonare_crescatoare_si_afisare(n, inaltimi):
numere_ordine = list(range(1, n+1)) for i in range(n): for j in range(i+1, n): if inaltimi[j] < inaltimi[i]: inaltimi[i], inaltimi[j] = inaltimi[j], inaltimi[i] numere_ordine[i], numere_ordine[j] = numere_ordine[j], numere_ordine[i] print(*numere_ordine)
if __name__ == '__main__':
n = int(input()) inaltimi = citeste_inaltimi(n) if n < 1 or n > 1000 or (min(inaltimi) < 1 or max(inaltimi) > 10000): print("Datele de intrare nu corespund restricțiilor impuse.") else: print("Datele de intrare corespund restricțiilor impuse.") ordonare_crescatoare_si_afisare(n, inaltimi)
</syntaxhighlight>