Cod sursa(job #126963)

Utilizator za_wolfpalianos cristian za_wolf Data 23 ianuarie 2008 00:04:37
Problema Ordine Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#include<stdio.h>
#include<string.h>
#define NMAX 1000001
long n,a,x[30],i,j,k,l,poz,ant;
char s[NMAX],c;
int main()
{
	freopen("ordine.in","r",stdin);
	freopen("ordine.out","w",stdout);
	gets(s);
	n=strlen(s)-1;
	for (i=0;i<=n;i++)
	x[s[i]-96]++;
	ant=-1;
	n++;
	for (i=1;i<=n;i++)
	{
		a=1;
		for (j=1;j<=26;j++)
		if (x[j]==(n-i+1)/2+1&&j!=ant)
		{
			poz=j;
			ant=j;
			x[j]--;
			j=26;
			a=0;
		}
		if (a)
		for (j=1;j<=26;j++)
		if (j!=ant&&x[j])
		{
			poz=j;
			ant=j;
			x[j]--;
			j=26;
		}
		c=poz+96;
		printf("%c",c);
	}
	printf("\n");

	return 0;
}