Cod sursa(job #2008803)

Utilizator Mircea_DonciuDonciu Mircea Mircea_Donciu Data 7 august 2017 17:17:05
Problema Ordine Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <fstream>
#include <cstring>
#define dmax 1000004

using namespace std;

ifstream cin("ordine.in");
ofstream cout("ordine.out");

int n,y[30],ok;
char x[dmax],z[dmax],c;

int main()
{
    int i,j;
    cin>>x;
    n=strlen(x);
    for(i=0;i<n;i++)
        y[x[i]-'a']++;
    for(i=0;i<=n;i++)
    {
        ok=1;
        for(j=0;j<=27;j++)
            if(y[j]==(n-i)/2+1)
            {
                z[i]='a'+j;
                y[j]--;
                ok=0;
            }
        for(j=0;j<=27 && ok==1;j++)
            if(y[j])
            {
                c='a'+j;
                if(c!=z[i-1] )
                {
                    z[i]=c;
                    y[j]--;
                    ok=0;
                }
            }
    }
    for(i=0;i<n;i++)
        cout<<z[i];
    return 0;

}