Cod sursa(job #2580706)

Utilizator BAlexandruBorgovan Alexandru BAlexandru Data 13 martie 2020 22:26:10
Problema Ordine Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.62 kb
#include <fstream>

using namespace std;

ifstream f("ordine.in");
ofstream g("ordine.out");

char c[1000005];
int fr[27];
int n;

int main()
{
    f >> c;
    for (n=0; c[n]; n++)
        fr[c[n] - 'a']++;

    int p = 0;
    int u = - 1;
    while (n)
    {
        p = - 1;
        for (int i=0; i<26; i++)
            if (fr[i] && i != u)
            {
                if (p == - 1)
                    p = i;
                else if (fr[i] > n / 2)
                    p = i;
            }

        g << char(p + 'a');
        fr[p]--;
        u = p;
        n--;
    }

    return 0;
}