# PBinfo #3153 – eliminaren – Rezolvare C++

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

## Enunț

Cerința
Se citesc de la tastatură un cuvânt s format din litere mici distincte și un număr natural n. Să se afișeze pe ecran toate cuvintele care se pot obține din s eliminând exact n litere.
Eliminarea se face începând cu literele de la sfârșitul cuvântului, iar ordinea din cuvânt a literelor nu se schimbă (vezi explicația din exemplu).

Date de intrare
Programul citește de la tastatură cuvântul s și numărul n.

Date de ieșire
Programul va afișa pe ecran pe rânduri separate cuvintele care se pot obține din s eliminând exact n litere.

Restricții și precizări

Cuvântul s are cel mult 20 de litere
Cuvântul s este format din litere mici distincte
1 <=  n < numărul de litere ale lui s

Exemplu:
Intrare

dorel 2
Ieșire

dor
doe
dol
dre
drl
del
ore
orl
oel
rel
Explicație
Din cele 5 litere se elimina două, astfel:
dor – se elimina a 4-a si a 5-a litera
doe – se elimina a 3-a si a 5-a litera
dol – se elimina a 3-a si a 4-a litera
dre
drl
del
ore
orl
oel – se elimina prima si a 3-a litera
rel – se elimina prima si a 2-a litera

## Cod sursă C++

```cpp
#include <iostream>
#include <cstring>
using namespace std;
int X[21],n,m;
char s[22];
void afis()
{
    for(int i=1;i<=m-n;i++)
        cout<<s[X[i]-1];
    cout<<"\n";
}
void back(int k)
{
    for(int i=X[k-1]+1;i<=m;i++)
    {
        X[k]=i;
        if(k==m-n) afis();
            else back(k+1);
    }
}
int main()
{
    cin>>s>>n;
    m=strlen(s);
    back(1);
    return 0;
}
```

## Resurse

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