Cod sursa(job #196391)
Utilizator | Gheorghe Cosmin gcosmin | Data | 26 iunie 2008 11:14:58 |
---|---|---|---|
Problema | Ordine | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.45 kb |
#include <stdio.h>
#define NMAX 1000010
char s[NMAX];
int nr[26];
char rez[NMAX];
int main()
{
int i, j, k;
freopen("ordine.in", "r", stdin);
freopen("ordine.out", "w", stdout);
scanf("%s", s);
for (i = 0; s[i]; i++) nr[s[i] - 'a']++;
for (j = 0; j < i; j++) {
for (k = 0; k < 26; k++) {
if (!nr[k]) continue;
if (j && k + 'a' == rez[j - 1]) continue;
rez[j] = k + 'a';
nr[k]--;
break;
}
}
printf("%s\n", rez);
return 0;
}