Pagini recente » Cod sursa (job #1148068) | Rating Neagu Bianca (NeaguBianca) | Cod sursa (job #872374) | Cod sursa (job #1559913) | Cod sursa (job #186978)
Cod sursa(job #186978)
#include <cstdio>
#include <cstring>
#define MAX_N 1000002
int A[30];
char S[MAX_N];
void solve()
{
int N = strlen(S),i,last = 45;
for(i=0; i<N; i++)
A[S[i] - 'a']++;
for(i=0; i<N; i++)
{
bool ok = false;
for(int j=0; j<='z'-'a'; j++)
if(A[j] == (N - i)/2 + 1 && j != last && A[j])
{
printf("%c",j+'a');
A[last = j]--;
ok = true;
break;
}
if(ok) continue;
for(int j=0; j<='z'-'a'; j++)
if(A[j] && j!=last)
{
A[last = j]--;
printf("%c",j+'a');
break;
}
}
}
int main()
{
freopen("ordine.in","r",stdin);
freopen("ordine.out","w",stdout);
gets(S);
solve();
}