358
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 ≤ 71 ≤ 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);
}
Comentarii