Cod sursa(job #1638198)

Utilizator CodeFxSAPIENTIA CodeFx CodeFx Data 7 martie 2016 21:46:05
Problema Ordine Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.02 kb
#include <fstream>
#include <cstring>

using namespace std;

ifstream fin("ordine.in");
ofstream fout("ordine.out");




int main()
{
    char elozo, s;
    int i, j, k, ok, n = 0, stat[30] = {0}, m;
    while(!fin.eof()){
        fin >> s;
        if(fin.eof()){
            break;
        }
        ++stat[s - 'a'];
        ++n;
    }
    elozo = 0;
    for(i = 1 ; i <= n ; i++)
    {
        m = 1;
        for(j = 0 ; j < 26 && m; j++)
        {
            if(stat[j] > 0 && elozo != j + 'a')
            {
                stat[j]--;
                ok = 1;
                for(k = 0 ; k < 26 && ok; k++)
                    if(stat[k] > (n - i + 1) / 2)
                        ok = 0;
                if(ok)
                {
                    fout << (char)(j + 'a');
                    elozo = j + 'a';
                    m = 0;
                }
                else{
                    stat[j]++;
                }
            }

        }
    }
    fout << "\n";
    return 0;
}