Cod sursa(job #229762)

Utilizator cotofanaCotofana Cristian cotofana Data 11 decembrie 2008 14:02:58
Problema Ordine Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.57 kb
#include <stdio.h>
#include <string.h>
#define dim 1000000

char str[dim];
long nr[30]={0}, n;

int main()
{
	long i, x, j, ok;
	freopen("ordine.in", "r", stdin);
	freopen("ordine.out", "w", stdout);
	gets(str);
	n=strlen(str);
	for (i=0; i<n; i++) nr[str[i]-'a']++;
	for (i=0; i<n; i++)
	{
		ok=0;
		x=-1;
		for (j=0; j<26 && !ok; j++)
			if (nr[j])
			{
				if (i%2==0)
					if (nr[j]==(n-i-1)/2+1)
					{
						ok=1;
						x=j;
					}
				if (x==-1)
					if (str[i-1]!=j+'a') x=j;
			}
		str[i]='a'+x;
		nr[x]--;
	}
	puts(str);
	return 0;
}