3922 - back abc1

From Bitnami MediaWiki
Revision as of 21:44, 9 December 2023 by Gabii (talk | contribs) (am adaugat explicatia)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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
  1. Citirea datelor de intrare

n, m = map(int, input("Introduceți n și m (separate prin spații): ").split())

  1. Verificarea restricțiilor și generarea cuvintelor

if check_restrictions(n, m):

   generate_words(n, m)

</syntaxhighlight>