0124 - Permutari1
Cerinţa[edit | edit source]
Se citeşte un număr natural nenul n
. Să se afişeze, în ordine invers lexicografică, permutările mulţimii {1,2,..,n}
.
Date de intrare[edit | edit source]
Fişierul de intrare permutari1IN.txt
conţine pe prima linie numărul n
.
Date de ieşire[edit | edit source]
Fişierul de ieşire permutari1OUT.txt
va conţine pe fiecare linie elementele unei permutări, separate prin câte un spaţiu.
Restricţii şi precizări[edit | edit source]
0 < n < 9
Exemplul 1[edit | edit source]
permutari1IN.txt
3
permutari1OUT.txt
3 2 1 3 1 2 2 3 1 2 1 3 1 3 2 1 2 3
Exemplul 2[edit | edit source]
permutari1IN.txt
10
consola
Eroare: Numărul n trebuie să fie în intervalul (0, 9).
Rezolvare[edit | edit source]
<syntaxhighlight lang="python3" line="1"> def verifica_restrictii(n):
if not (0 < n < 9): print("Eroare: Numărul n trebuie să fie în intervalul (0, 9).") return False return True
def generate_permutations(n, current_permutation, output_file):
if len(current_permutation) == n: output_file.write(" ".join(map(str, current_permutation[::-1])) + "\n") return
for i in range(1, n + 1): if i not in current_permutation: generate_permutations(n, current_permutation + [i], output_file)
def main():
with open("permutari1IN.txt", "r") as f: linie = f.readline().strip() if not linie: print("Eroare: Fișierul de intrare este gol sau conține doar linii goale.") return
try: n = int(linie) except ValueError: print("Eroare: Numărul n nu poate fi convertit la întreg. Asigurați-vă că fișierul de intrare este formatat corect.") return
if not verifica_restrictii(n): return
with open("permutari1OUT.txt", "w") as output_file: generate_permutations(n, [], output_file)
if __name__ == "__main__":
main()
</syntaxhighlight>