374
Cerința
Se citesc un număr natural n având cifrele diferite două câte două și o cifră c. Afișați în ordine crescătoare numerele formate din c cifre distincte care se pot obține din cifrele lui n.
Date de intrare
Programul citește de la tastatură numerele n și c.
Date de ieșire
Programul va afișa pe ecran numerele cerute, câte unul pe fiecare rând.
Restricții și precizări
1 ≤ n ≤ 1.000.000.000,1 < c < 9nare cifrele distincteceste mai mic decât numărul de cifre ale luin
Exemplu
Intrare
2576 2
Ieșire
25 26 27 52 56 57 62 65 67 72 75 76
#include <bits/stdc++.h>
using namespace std;
int n , m , a[30] , x[30] , p[30] , cnt;
int afisare()
{
for(int i = 1 ; i <= m ; i++)
cout << a[x[i]];
cout << '\n';
}
void back(int k)
{
for(int i = 1 ; i <= cnt ; i++)
if(!p[i])
{
x[k] = i;
p[i] = 1;
if(k == 1 && a[i] == 0);
else
{
if(k == m) afisare();
else back(k + 1);
}
p[i] = 0;
}
}
int main()
{
cin >> n >> m;
while(n != 0)
{
a[++cnt] = n % 10;
n /= 10;
}
sort(a + 1 , a + cnt + 1);
back(1);
}
Comentarii