fbpx

Problema #1291 – CifreGen4 – Rezolvari PBInfo

de Mihai-Alexandru

Cerința

Se dau două numere n m. Să se genereze toate numerele cu exact n cifre mai mici decât m cu proprietatea că diferența în valoare absolută dintre oricare două cifre consecutive este cel puțin 2.

Date de intrare

Programul citește de la tastatură numerele n m.

Date de ieșire

Programul va afișa pe ecran numerele generate, câte unul pe linie, în ordine crescătoare.

Restricții și precizări

  • 1 ≤ n ≤ 7
  • 0 < m < 6

Exemplu

Intrare

3 4

Ieșire

130
131
202
203
302
303
313
#include <bits/stdc++.h>

using namespace std;
int n , m ,  x[10] , a[10] , rez;

int valid(int k)
{
    if(k == 1 && x[k] != 0) return 1;
    if(abs(x[k] - x[k - 1]) > 1) return 1;
    else return 0;
}

void afisare()
{
    for(int i = 1 ; i <= n ; ++i)
        cout << x[i];
    cout << '\n';
}

void back(int k)
{
    for(int i = 0 ; i < m ; ++i)
    {
        x[k] = i;
        if(valid(k))
        {
            if(k == n)afisare();
            else back(k + 1);
        }
    }
}

int main()
{
    cin >> n >> m;
    back(1);
    return 0;
}
Comentarii

S-ar putea sa iti placa