Cod sursa(job #583535)

Utilizator radubbRadu B radubb Data 20 aprilie 2011 18:36:53
Problema Ordine Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.58 kb
#include <cstdio>
#include <string>
using namespace std;

#define nmax 1000001
long n;
char s[nmax];
long q[27]; // quantity

void citire()
{
	
	freopen("ordine.in","r",stdin);
	scanf("%s", &s); n = strlen(s);
}

void init()
{
	for(long i=0; i<n; i++)
		q[s[i]-'a'+1]++;
}

void solve()
{
	short ant = -1;
	for(; n; n--)
	{
		for(short i=1; i<=26; i++)
			if(q[i] && i != ant)
			{
				printf("%c", i+'a'-1);
				q[i]--;
				ant = i;
				break;
			}
	}
}

int main()
{
	freopen("ordine.out","w",stdout);
	citire();
	init();
	solve();
	return 0;
}