3910 - Aranjamente1
Cerința[edit | edit source]
Se citesc trei numere naturale a b n
. Să se afișeze, în ordine lexicografică, șirurile cu n
elemente distincte din mulțimea {a, a + 1, ..., b}
.
Date de intrare[edit | edit source]
Programul citește de la tastatură numerele a b n
.
Date de ieșire[edit | edit source]
Programul va afișa pe ecran șirurile cerute, fiecare pe câte o linie. Elementele fiecărui șir vor fi separate prin câte un spațiu. În cazul în care restricțiile nu sunt îndeplinite, se va afișa mesajul "Nu corespunde restricțiilor".
Restricții și precizări[edit | edit source]
1 ≤ a < b ≤ 1.000.000.000
1≤ n ≤ b - a < 8
Exemplul 1[edit | edit source]
Intrare
4 6 2
Ieșire
4 5 4 6 5 4 5 6 6 4 6 5
Exemplul 2[edit | edit source]
Intrare
6 8 3
consola
Nu corespunde restricțiilor
Rezolvare[edit | edit source]
<syntaxhighlight lang="python3" line="1"> from itertools import permutations
def verificare_restrictii(a, b, n):
if not(1 <= a < b <= 1000000000) or not(1 <= n <= b - a < 8): print("Nu corespunde restricțiilor") return False return True
def afisare_permutari(a, b, n):
if not verificare_restrictii(a, b, n): return # Generarea tuturor permutărilor distincte de lungime n permutari = list(permutations(range(a, b + 1), n))
# Afișarea permutărilor for permutare in permutari: print(*permutare)
- Citirea datelor de intrare
a, b, n = map(int, input("Introduceți trei numere naturale separate prin spațiu (a b n): ").split())
- Apelarea funcției pentru afișarea permutărilor sau mesaj de eroare
afisare_permutari(a, b, n)
</syntaxhighlight>