fbpx

Problema #3153 – eliminaren – Rezolvari PBInfo

de Mihai-Alexandru

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.

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

#include <bits/stdc++.h>

using namespace std;

int x[30] , s , n , p[30];
char cuv[30];

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


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

int main()
{
    cin >> cuv >> s;
    n = strlen(cuv);

    back(1);
}
Comentarii

S-ar putea sa iti placa