Pagini recente » Cod sursa (job #1963703) | Cod sursa (job #410480) | Cod sursa (job #2596029) | Cod sursa (job #913873) | Cod sursa (job #3259990)
/*
[P1]. Se citeste un cuvant. Sa se afiseze toate
anagramele cuvantului, in ordine lexicografica, eliminand literele
duplicate din cuvant
Exemplu: maria => aimr, airm, etc.
*/
#include <fstream>
using namespace std;
ifstream cin("pb.in");
ofstream cout("pb.out");
bool viz[256];
char sol[256], t[256];
int f[26];
int k;
void afis()
{
sol[k] = '\0';
cout << sol << '\n';
}
void bkt(int l)
{
if(l == k)
{
afis();
return;
}
for(int i = 0; i < k; i++)
if(!viz[i])
{
viz[i] = 1;
sol[l] = t[i];
bkt(l + 1);
viz[i] = 0;
}
}
int main(){
char s[256];
cin.getline(s, 256);
int n = strlen(s);
for(int i = 0; i < n; i++)
f[s[i] - 'a'] = 1;
for(int i = 0; i <= 25; i++)
if(f[i])
{
t[k++] = (char)(i + 'a');
}
bkt(0);
return 0;
}