Cod sursa(job #114402)

Utilizator coderninuHasna Robert coderninu Data 14 decembrie 2007 02:00:30
Problema Ordine Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.58 kb
#include <stdio.h>
#include <string.h>
#define Nmax 1000001

int c[350], n, i, last=100, j, sol;
char ch;
char jeg[Nmax], rez[Nmax];

int main()
{
	freopen("ordine.in", "r", stdin);
	scanf("%s", &jeg);
	n=strlen(jeg);
	for (i=0; i<n; i++) c[jeg[i]]++;
	fclose(stdin);
	freopen("ordine.out", "w", stdout);
	for (i=1; i<=n; i++)
	{
		sol=999;
		for (j='a'; j<='z'; j++)
		{
		if (c[j])
		{
			if (j!=rez[i-1] && j<sol)
				sol=j;
			if (c[j]==(n-i+1)/2+1) {sol=j; break;}
		}}
		rez[i]=sol;
		c[sol]--;
	}



	printf("%s\n", rez+1);

	fclose(stdout);
	return 0;
}