Pagini recente » Cod sursa (job #1677966) | Cod sursa (job #1250543) | Cod sursa (job #3159546) | Cod sursa (job #278972) | Cod sursa (job #1690718)
#include <fstream>
#include <algorithm>
#include <cstring>
using namespace std;
ifstream f("ordine.in");
ofstream g("ordine.out");
int n,sol[1000005],nr;
bool ok1;
char a[1000009];
void afis()
{
int i;
for(i=1;i<=n;i++)
g<<a[sol[i]];
g<<'\n';
}
bool ok(int k)
{
int i;
for(i=1;i<k;i++)
if(sol[k]==sol[i] || a[sol[i]]==a[sol[i+1]])
return false;
return true;
}
bool back(int k)
{
nr=0;
int i;
if(k>n)
{
afis();
ok1=true;
}
else
{
for(i=1; i<=n; i++)
{
sol[k]=i;
if(ok(k) && !ok1)
back(k+1);
else if(ok1) return false;
}
}
}
int main()
{
f.getline(a,100007);
n=strlen(a);
sort(a,a+n);
for(int i=n+1;i>=1;i--)
a[i]=a[i-1];
a[0]='0';
back(1);
return 0;
}