Cod sursa(job #968639)

Utilizator blasterzMircea Dima blasterz Data 2 iulie 2013 14:15:09
Problema Ordine Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.5 kb
#include <cstdio>
#include <cstring>

char a[1000003];
int n;
int cnt[27];

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)
        cnt[ a[i] - 'a' ]++;
    
    a[0] = 0;
    for (i = 1; i <= n; ++i) {
        for (j = 0; j < 26; ++j)
            if (cnt[j] && (j + 'a') != a[i - 1])
                break;
        cnt[j]--;
        a[i] = j + 'a';
    }
    printf ("%s\n", a + 1);
}