1277 - ProdusCartezian1: Diferență între versiuni
De la Universitas MediaWiki
(Pagină nouă: = Cerinţa = Se dau două numere naturale nenule <code>n</code> și <code>m</code>. Considerăm mulțimea <code>A={1,2,..,n}</code>. Să se genereze în ordine lexicografică elementele produsului cartezian . = Date de intrare = Fișierul de intrare <code>produscartezian1IN.txt</code> conține pe prima linie numerele <code>n</code> și <code>m</code>, separate printr-un spațiu. = Date de ieşire = Fișierul de ieșire <code>produscartezian1OUT.txt</code> va conține elemen...) |
(Nicio diferență)
|
Versiunea curentă din 18 mai 2024 19:18
Cerinţa
Se dau două numere naturale nenule n
și m
. Considerăm mulțimea A={1,2,..,n}
. Să se genereze în ordine lexicografică elementele produsului cartezian .
Date de intrare
Fișierul de intrare produscartezian1IN.txt
conține pe prima linie numerele n
și m
, separate printr-un spațiu.
Date de ieşire
Fișierul de ieșire produscartezian1OUT.txt
va conține elementele produsului cartezian, fiecare pe o linie. Valorile de pe fiecare linie vor fi separate prin câte un spațiu. În cazul în care restricțiile nu sunt îndeplinite, se va afișa mesajul "Datele nu corespund restrictiilor impuse".
Restricţii şi precizări
1 ≤ n ≤ 7
1 ≤ m ≤ 6
Exemplul 1:
produscartezian1IN.txt
2 3
produscartezian1OUT.txt
1 1 1 1 1 2 1 2 1 1 2 2 2 1 1 2 1 2 2 2 1 2 2 2
Exemplul 2:
produscartezian1IN.txt
2 8
produscartezian1OUT.txt
Datele nu corespund restrictiilor impuse
Rezolvare
def afisare(x, m, out_file):
with open(out_file, 'a') as f:
for i in range(1, m + 1):
f.write(f"{x[i]} ")
f.write("\n")
def bectreching(k, n, m, x, out_file):
for i in range(1, n + 1):
x[k] = i
if k < m:
bectreching(k + 1, n, m, x, out_file)
else:
afisare(x, m, out_file)
def verifica_restrictii(n, m):
if 1 <= n <= 7 and 1 <= m <= 6:
return True
else:
return False
def main():
with open("produscartezian1IN.txt", 'r') as infile:
n, m = map(int, infile.readline().strip().split())
if verifica_restrictii(n, m):
x = [0] * (m + 1)
out_file = "produscartezian1OUT.txt"
with open(out_file, 'w'): # Clear the output file
pass
bectreching(1, n, m, x, out_file)
else:
with open("produscartezian1OUT.txt", 'w') as outfile:
outfile.write("Datele nu corespund restrictiilor impuse\n")
if __name__ == "__main__":
main()