292
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 descrescătoare numerele formate din c
cifre distincte care se pot obține din cifrele lui n
și care au cifrele ordonate crescător.
Date de intrare
Programul citește de la tastatură numele 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 < 9
n
are cifrele distinctec
este mai mic decât numărul de cifre ale luin
Exemplu
Intrare
4618 3
Ieșire
468 168 148 146
#include <bits/stdc++.h> using namespace std; int n , m , x[30] , cnt , p[30] , c , a[30]; int afisare() { for(int i = 1 ; i <= c ; i++) cout << a[x[i]]; cout << '\n'; } void back(int k) { for(int i = cnt; i >= x[k - 1] + 1 ; i--) { x[k] = i; if(k == 1 && a[i] == 0); else { if(k == c) afisare(); else back(k + 1); } } } int main() { cin >> n >> c; while(n != 0) { a[++cnt] = n % 10; n /= 10; } sort(a + 1 , a + cnt + 1); back(1); }
Comentarii