fbpx

Problema #1277 – ProdusCartezian1 – Rezolvari PBInfo

de Mihai-Alexandru

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××AAm=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);
}
Comentarii

S-ar putea sa iti placa