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 Am=A×A×⋯×A.
Date de intrare
Fișierul de intrare produscartezian1.in
conține pe prima linie numerele n
și m
, separate printr-un spațiu.
Date de ieşire
Fișierul de ieșire produscartezian1.out
va conține elementele produsului cartezian, fiecare pe o linie. Valorile de pe fiecare linie vor fi separate prin câte un spațiu.
Restricţii şi precizări
1 ≤ n ≤ 7
1 ≤ m ≤ 6
Exemplu
produscartezian1.in
2 3
produscartezian1.out
1 1 1 1 1 2 1 2 1 1 2 2 2 1 1 2 1 2 2 2 1 2 2 2
#include <bits/stdc++.h> using namespace std; ifstream cin("produscartezian1.in"); ofstream cout("produscartezian1.out"); int n , m , x[10]; void afisare() { for(int i = 1 ; i <= m ; i++) cout << x[i] << ' '; cout << '\n'; } void back(int k) { if(k == m + 1) { afisare(); return ; } else { x[k] = 0; while(x[k] < n) { x[k]++; back(k + 1); } } } int main() { cin >> n >> m; back(1); }