# PBinfo #3149 – anagrame_vocale – Rezolvare C++

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

## Enunț

Cerința
Se citește un cuvânt format din cel puțin două și cel mult zece caractere litere mici distincte care conține cel puțin două vocale. Afișați în ordine lexicografică anagramele cuvântului citit care au proprietatea că încep și se termină cu o vocală.

Date de intrare
Programul citește de la tastatură șirul de caractere.

Date de ieșire
Programul va afișa pe ecran anagramele cerute, câte una pe un rând.

Restricții și precizări

numărul de caractere ale șirului dat este cuprins între 2 și 10;
cuvântul dat este format din litere mici distincte și conține cel puțin două vocale;
vocalele sunt a, e, i, o, u;

Exemplu:
Intrare

alin
Ieșire

alni
anli
ilna
inla

## Cod sursă C++

```cpp
#include <iostream>
#include <cstring>
using namespace std;
int n,P[128];
char X[11],s[11],v[]="aeiou";
void back(int k)
{
    for(int i=0;i<n;i++)
        if(!P[(int)s[i]])
        {
            X[k]=s[i];
            P[(int)s[i]]=1;
            if(strchr(v,X[0]))
                if(k==n-1)
                {
                    if(strchr(v,X[n-1]))
                        cout<<X<<"\n";
                }
                else back(k+1);
            else ;
            P[(int)s[i]]=0;
        }
}
int main()
{
    cin>>s;
    n=strlen(s);
    for(int i=0;i<n;i++)
        for(int j=i+1;j<n;j++)
            if(s[i]>s[j])
            {
                char aux=s[i]; s[i]=s[j]; s[j]=aux;
            }
    back(0);
    return 0;
}
```

## Resurse

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