Cod sursa(job #2871479)

Utilizator AlexSerban21Serban Alexandru AlexSerban21 Data 14 martie 2022 20:25:11
Problema Ordine Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <fstream>
using namespace std;
ifstream fin ("ordine.in");
ofstream fout ("ordine.out");
int k,fr[30],j,l,i,ant;
char v[1000001],g[1000001];
int main()
{
    fin>>v;
    for (i=0; v[i]; i++)
    {
        fr[v[i]-'a']++;
        k++;
    }
    ant=-1;
    for (i=0; v[i]; i++)
    {
        l=-1;
        for (j=0; j<='z'-'a'; j++)
        {
            if (fr[j]>k/2&&ant!=j)
            {
                l=j;
                break;
            }
        }
        if (l==-1)
        {
            for (j=0; j<='z'-'a'; j++)
            {
                if (fr[j]!=0&&j!=ant)
                {
                    l=j;
                    break;
                }
            }
        }
        fr[l]--;
        ant=l;
        k--;
        g[i]='a'+l;
    }
    fout<<g;
    return 0;
}