PDA

View Full Version : [PBINFO] Problema #194



~Wolf~
05-11-2020, 04:35 PM
Site: pbinfo (<b>You have to register to ba able to see this link</b>)
Link problema: anagrame1 (<b>You have to register to ba able to see this link</b>)
-clasa a 11 -a
-diferenta dintre algoritmul anagramelor(din problema) si cel al permutarilor e ca trebuie lucrat cu litere(si in cazul problemei, ordonate, problema cerand in ordine alfabetica)

#include <fstream>
#include <cstring>
using namespace std;

ifstream fin("anagrame1.in");
ofstream fout("anagrame1.out");

char s[8],v[8];
unsigned int n;

void back(unsigned int);
unsigned int valid(unsigned int);
unsigned int solutie(unsigned int);
void afisare();
void sortare();

int main()
{
fin>>s;
n=strlen(s);
sortare();
back(0);
return 0;
}
void sortare()
{
char aux;
unsigned int i,j;
for(i=0;i<n-1;i++)
{
for(j=i+1;j<n;j++)
{
if(s[i]>s[j])
{
aux=s[i];
s[i]=s[j];
s[j]=aux;
}
}
}
}
void back(unsigned int k)
{
unsigned int i;
for(i=0;i<n;i++)
{
v[k]=s[i];
if(valid(k))
{
if(solutie(k))
{
afisare();
}
else
{
back(k+1);
}
}
}
}
unsigned int valid(unsigned int k)
{
unsigned int i;
for(i=0;i<k;i++)
{
if(v[k]==v[i])
{
return 0;
}
}
return 1;
}
unsigned int solutie(unsigned int k)
{
return k==n-1;
}
void afisare()
{
fout<<v;
fout<<'\n';
}