Cod sursa(job #179897)

Utilizator crusRus Cristian crus Data 16 aprilie 2008 13:57:05
Problema Ordine Scor 0
Compilator c Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <stdio.h>
#include <ctype.h>
#include <string.h>
#define input "ordine.in"
#define output "ordine.out"
#define nmax 1000005
char a[nmax];
long v[30],nl=0;
void citire()
{
 FILE *fin;
 long i;
 fin=fopen(input,"r");
 fscanf(fin,"%s",a);
 for (i=0;i<strlen(a);i++)
      {
       v[a[i]-'a']++;
       nl++;
      }
 fclose(fin);
}
int af(int n)
{
 long i;
 for (i=0;i<26;i++)
     if ((i!=n)&&(v[i]))
	{
	 v[i]--;
	 return i;
	}
 return 0;
}
void afisare()
{
 long i,ul;
 FILE *fout=fopen(output,"w");
 ul=af(-1);
 fprintf(fout,"%c",(char)(ul+(int)'a'));
 for (i=2;i<=nl;i++)
     {
      ul=af(ul);
      fprintf(fout,"%c",(char)(ul+(int)'a'));
     }
 fclose(fout);
}
int main()
{
 citire();
 afisare();
 return 0;
}