Cod sursa(job #197381)

Utilizator sigridMaria Stanciu sigrid Data 3 iulie 2008 23:16:08
Problema Ordine Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include<fstream.h>
#include<string.h>
#define dim 1000001


ifstream f("ordine.in");
ofstream g("ordine.out");


char s[dim];
int v[30],st[dim],n;


void solutie()
{
int i;

for(i=1;i<=n;i++)
 g<<(char)(st[i]+'a'-1);

g<<'\n';
g.close();
}



int ok(int k)
{
if(st[k]==st[k-1]) return 0;

return 1;

}


int back(int k)
{
int i;

if(k==n+1) {solutie(); return 0;}
 else

   {for(i=1;i<=30;i++)

     if(v[i])
      {
       st[k]=i;

       if(ok(k)) {
		  v[i]--;
		  back(k+1);
		 }
      }
   }

}


int main()
{
int i;

f.get(s,dim,'\n');
f.close();

n=strlen(s);

for(i=0;i<n;i++)
  v[s[i]-'a'+1]++;

back(1);

return 0;
}