Pagini recente » Cod sursa (job #426025) | Cod sursa (job #2540137) | Statistici vesko penev (veselin465) | Cod sursa (job #1788384) | Cod sursa (job #186977)
Cod sursa(job #186977)
#include <cstdio>
#include <cstring>
int A[30],V[30];
char S[1000002];
void solve()
{
int N = strlen(S),i,last = 45;
for(i=0; i<N; i++)
A[S[i] - 'a']++,V[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();
}