# PBinfo #3160 – cifre_c – Rezolvare C++

Sursa: Codul lui Andrei
Limbaj: C++
Autor rezolvare: andrei

## Enunț

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 distincte
c este mai mic decât numărul de cifre ale lui n

Exemplu:
Intrare

4618 3
Ieșire

468
168
148
146

## Cod sursă C++

```cpp
#include <iostream>
using namespace std;
int X[11],n,A[11],c;
void afisare()
{
    for(int i=1;i<=c;i++)
        cout<<A[X[i]];
    cout<<"\n";
}
void back(int k)
{
    for(int i=n;i>=1;i--)
    {
        X[k]=i;
        if(A[X[1]]>0 && X[k]>X[k-1])
        {
            if(k==c) afisare();
            else back(k+1);
        }
    }
}
int main()
{
    cin>>n>>c;
    int nc=0;
    while(n>0)
    {
        A[++nc]=n%10;
        n=n/10;
    }
    n=nc;
    for(int i=1;i<=n;i++)
        for(int j=i+1;j<=n;j++)
            if(A[i]>A[j])
                swap(A[i],A[j]);
    back(1);
    return 0;
}
```

## Resurse

- [Pagina originală](https://codulluiandrei.ro/rezolvari/pbinfo/3160)
- [Sursa C++](https://codulluiandrei.ro/rezolvari/pbinfo/3160/cod.cpp)
- [Sursa pe GitHub](https://raw.githubusercontent.com/codulluiandrei/pbinfo/main/pbinfo-3160/main.cpp)
- [Cursuri de informatică pentru BAC](https://codulluiandrei.ro/academia/info-curs/pachet-cpp/)
