3923 - back abc2: Difference between revisions

From Bitnami MediaWiki
Gabii (talk | contribs)
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...
 
Gabii (talk | contribs)
am adaugat explicatia
 
Line 13: Line 13:
* <code>m ≤ n</code>
* <code>m ≤ n</code>


= Exemplu: =
= Exemplul 1 =
Intrare
Intrare
  4 3
  4 3
Line 42: Line 42:
  DCB
  DCB


= Exemplu: =
== 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))
  1. 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())

  1. Verificăm restricțiile folosind funcția check_restrictions

if check_restrictions(n, m):

   generate_words(n, m)

</syntaxhighlight>