3923 - back abc2: Difference between revisions
Pagină nouă: = Cerința = Se citesc două numere naturale <code>n</code> și <code>m</code>. Afișați în ordine lexicografică toate cuvintele care sunt formate din <code>m</code> litere distincte folosind primele <code>n</code> litere mari din alfabet. = Date de intrare = Programul citește de la tastatură numerele <code>n</code> și <code>m</code>, separate prin spații. = Date de ieșire = Programul va afișa pe ecran pe linii separate cuvintele cerute. În cazul în care restric... |
am adaugat explicatia |
||
Line 13: | Line 13: | ||
* <code>m ≤ n</code> | * <code>m ≤ n</code> | ||
= | = Exemplul 1 = | ||
Intrare | Intrare | ||
4 3 | 4 3 | ||
Line 42: | Line 42: | ||
DCB | DCB | ||
= | == Explicație == | ||
Primele 4 litere mari sunt {A,B,C,D} și se formează cuvinte cu 3 litere distincte. | |||
= Exemplul 2 = | |||
Intrare | Intrare | ||
4 3 | 4 3 |
Latest revision as of 21:46, 9 December 2023
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 distincte folosind primele n
litere mari din alfabet.
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]
0 ≤ n ≤ 26
,0 ≤ m ≤ 5
m ≤ n
Exemplul 1[edit | edit source]
Intrare
4 3
Ieșire
ABC ABD ACB ACD ADB ADC BAC BAD BCA BCD BDA BDC CAB CAD CBA CBD CDA CDB DAB DAC DBA DBC DCA DCB
Explicație[edit | edit source]
Primele 4 litere mari sunt {A,B,C,D} și se formează cuvinte cu 3 litere distincte.
Exemplul 2[edit | edit source]
Intrare
4 3
consola
Nu corespunde restricțiilor.
Rezolvare[edit | edit source]
<syntaxhighlight lang="python3" line="1"> import itertools
def check_restrictions(n, m):
if 0 <= n <= 26 and 0 <= m <= 5 and m <= n: return True else: print("Nu corespunde restricțiilor.") return False
def generate_words(n, m):
alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' letters = alphabet[:n]
# Generăm toate permutările posibile de lungime m folosind literele primele n din alfabet permutations = itertools.permutations(letters, m)
# Afisăm cuvintele în ordine lexicografică for word in sorted(permutations): print(.join(word))
- Citim numerele n și m de la tastatură
n, m = map(int, input("Introduceți valorile lui n și m (separate prin spațiu): ").split())
- Verificăm restricțiile folosind funcția check_restrictions
if check_restrictions(n, m):
generate_words(n, m)
</syntaxhighlight>