3922 - back abc1
Cerința
Se citesc două numere naturale n
și m
. Afișați în ordine lexicografică toate cuvintele care sunt formate din m
litere folosind primele n
litere mari din alfabet și care au literele ordonate alfabetic strict crescător.
Date de intrare
Programul citește de la tastatură numerele n
și m
, separate prin spații.
Date de ieșire
Programul va afișa pe ecran pe linii separate cuvintele cerute. În cazul în care restricțiile nu sunt îndeplinite, se va afișa mesajul "Nu corespunde restricțiilor".
Restricții și precizări
1 ≤ n ≤ 26
,0 ≤ m ≤ 10
m ≤ n
Exemplul 1
Intrare
5 3
Ieșire
ABC ABD ABE ACD ACE ADE BCD BCE BDE CDE
Explicație
Primele 5 litere mari sunt {A,B,C,D,E} și se formează cuvinte cu 3 litere având literele ordonate alfabetic.
Exemplul 2
Intrare
5 7
consola
Nu corespunde restricțiilor
Rezolvare
<syntaxhighlight lang="python3" line="1"> from itertools import combinations
def generate_words(n, m):
alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' letters = alphabet[:n]
for combination in combinations(letters, m): word = .join(sorted(combination)) print(word)
def check_restrictions(n, m):
if 1 <= n <= 26 and 0 <= m <= 10 and m <= n: return True else: print("Nu corespunde restricțiilor") return False
- Citirea datelor de intrare
n, m = map(int, input("Introduceți n și m (separate prin spații): ").split())
- Verificarea restricțiilor și generarea cuvintelor
if check_restrictions(n, m):
generate_words(n, m)
</syntaxhighlight>