Cod sursa(job #514327)

Utilizator cosmyoPaunel Cosmin cosmyo Data 18 decembrie 2010 14:54:01
Problema Ordine Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.55 kb
#include <cstdio>
#include <cstring>
using namespace std;
const int N = 1000005;
char a[N], sol[N];
int o[300];
int n, nr;
int main() {
	freopen("ordine.in", "r", stdin);
	freopen("ordine.out", "w", stdout);
	scanf("%s", &a);
	n = strlen(a);
	
	int i, j;
	for( i = 0; i < n; ++i)
		++o[a[i]];
	nr = -1;
	for( i = 'a'; i <= 'z'; ++i) 
		while(o[i]) {
			sol[++nr] = i;
			--o[i];
			if(o[i])
			for( j = i + 1; j <='z'; ++j)
				if(o[j]) {
					sol[++nr] = j;
					--o[j];
					break;
				}
		}
	sol[nr + 1] = '\0';

	printf("%s",sol);
	printf("\n");

	return 0;
}