Cod sursa(job #1224324)

Utilizator mihaimusatMihai Musat mihaimusat Data 30 august 2014 16:20:09
Problema Ordine Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <fstream>
#include <cstring>

#define LEN_MAX 1000005
#define NMAX 26

using namespace std;

char sir[LEN_MAX];
int v[NMAX];

int main()
{
    ifstream f("ordine.in");
    ofstream g("ordine.out");
    f.getline(sir, LEN_MAX);
    int lg = strlen(sir);
    for(int i = 0; i < lg; i++)
        v[sir[i] - 'a']++;
    int b = -1, a = -1;
    for(int i = 0; i < lg; i++)
    {
        int j = 0;
        while(!v[j] || j == a) j++;
        b = a, a = j;
        for(j = a + 1; j < NMAX; j++)
            if(v[j] == (lg - i) / 2 + 1 && j != b)
                a = j;
        v[a]--;
        g<<(char)('a' + a);
    }
    return 0;
}