Cod sursa(job #167779)

Utilizator tm_raduToma Radu tm_radu Data 30 martie 2008 01:09:33
Problema Ordine Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <stdio.h>

int n;
int i, j, k;
int s[30];
char c;
int last;

int main()
{
    freopen("ordine.in", "r", stdin);
    freopen("ordine.out", "w", stdout);
    scanf("%c", &c);
    while ( 'a' <= c && c <= 'z' )
    {
        s[(int)(c-'a'+1)]++;
        n++;
        scanf("%c", &c);
    }
    
    for ( i = 1; i <= n; i++ )
    {
		int ok = 0;
		for ( j = 1; j <= 26; j++ )
			if ( s[j] == (n-i+1)/2 + 1 )
			{
				printf("%c", (char)(j-1+'a'));
				last = j;
				s[j]--;
				ok = 1;
				break;
			}
		if ( !ok )
			for ( j = 1; j <= 26; j++ )
				if ( s[j] > 0 && j != last )
				{
					printf("%c", (char)(j-1+'a'));
					last = j;
					s[j]--;
					break;
				}
    }        
    printf("\n");
    return 0;        
}