Pagini recente » Cod sursa (job #474753) | Cod sursa (job #426947) | Clasament preONI 2008, Runda 1, Clasa a 9-a | Cod sursa (job #3217140) | Cod sursa (job #2327938)
#include <fstream>
#include <algorithm>
#include <cstring>
using namespace std;
ifstream cin("ordine.in");
ofstream cout("ordine.out");
char s[1000010],ch;
int N,fr[30],nr,ant,p;
int main()
{
cin.getline(s,1000001);
N=strlen(s);
for(int i=0;i<N;i++)
fr[s[i]-'a']++;
ant=-1;
for(int l=0;l<N;l++)
{
p=-1;
for(int i=0;i<26;i++)
if(((fr[i]>0&&p<0)||(fr[i]>=(N-l)/2+1&&ant!=i))&&i!=ant)
p=i;
cout<<(char)(p+'a');
ant=p;fr[p]--;
}
cout<<'\n';
return 0;
}