3922 - back abc1
Cerința[edit | edit source]
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[edit | edit source]
Programul citește de la tastatură numerele n
și m
, separate prin spații.
Date de ieșire[edit | edit source]
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[edit | edit source]
1 ≤ n ≤ 26
,0 ≤ m ≤ 10
m ≤ n
Exemplul 1[edit | edit source]
Intrare
5 3
Ieșire
ABC ABD ABE ACD ACE ADE BCD BCE BDE CDE
Explicație[edit | edit source]
Primele 5 litere mari sunt {A,B,C,D,E} și se formează cuvinte cu 3 litere având literele ordonate alfabetic.
Exemplul 2[edit | edit source]
Intrare
5 7
consola
Nu corespunde restricțiilor
Rezolvare[edit | edit source]
<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>