Cod sursa(job #1619299)

Utilizator stefzahZaharia Stefan Tudor stefzah Data 28 februarie 2016 14:59:35
Problema Ordine Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <fstream>
#include <cstring>
using namespace std;
ifstream fin("ordine.in");
ofstream fout("ordine.out");
char s[1000005],v[1000005];
int f[30];
int n;
bool ok;
int main()
{int i,j;
 fin>>(s + 1);
 n=strlen(s+1);
    for(i=1;s[i];i++)
    {j=s[i]-'a'+1;
     f[j]++;
    }
    for(i=1;i<=n;i++)
    {ok=false;
     for(j=1;j<=26;j++)
            if(f[j]>=(n-i+1)/2+1&&j+'a'-1!=v[i-1])
            {ok=true;
             v[i]=j+'a'-1;
             f[j]--;
             break;
            }
        if(!ok)
        {for(j=1;j<=26;j++)
                if(f[j]!=0&&j+'a'-1!=v[i-1])
                {v[i]=j+'a'-1;
                    f[j]--;
                    break;
                }
        }
    }
fout<<(v+1);
}