# PBinfo #1812 – LitereGen1 – Rezolvare C++

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

## Enunț

Cerința
Scrieți un program care citeşte o valoare naturală impară pentru n şi apoi generează şi afişează în ordine crescătoare lexicografic toate combinaţiile formate din n litere mici care îndeplinesc următoarele proprietăţi:

- încep şi se termină cu a;
- oricare două litere alăturate dintr-o combinaţie sunt consecutive în alfabet.
Astfel, pentru n=5, combinaţiile afişate sunt, în ordine, următoarele: ababa, abcba.

Date de intrare
Programul citește de la tastatură numărul n, impar.

Date de ieșire
Programul va afișa pe ecran, pe rânduri separate, combinaţiile care îndeplinesc  proprietăţile cerute. 

Restricții și precizări

3 ≤ n ≤ 25

Exemplu:
Intrare

5
Ieșire

ababa
abcba

## Cod sursă C++

```cpp
#include <iostream>
using namespace std;
int n,X[52];
char L[]="abcdefghijklmnopqrstuvwxyz";
int modul(int n)
{
    if(n<0) n=-n;
    return n;
}
void afisare()
{
    for(int i=1;i<=n;i++)
        cout<<L[X[i]];
    cout<<'\n';
}
void back(int k)
{
    for(int i=X[k-1]-1;i<=X[k-1]+1;i=i+2)
    if(i>=0)
    {
        X[k]=i;
            if(k==n)
            {
                if(X[n]==0) afisare();
            }
            else back(k+1);
    }
}
int main()
{
    cin>>n;
    X[1]=0;
    back(2);
    return 0;
}
```

## Resurse

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