Pagini recente » Cod sursa (job #2232178) | Cod sursa (job #1543487) | Cod sursa (job #433614) | Cod sursa (job #2918364) | Cod sursa (job #111953)
Cod sursa(job #111953)
#include <stdio.h>
#include <fstream>
using namespace std;
#define in "ordine.in"
#define out "ordine.out"
#define dim 1000002
int size=0;
int R[dim], L[dim], H[33];
char ch;
int main()
{
freopen(in,"r",stdin);
freopen(out,"w",stdout);
memset(H,0,sizeof(H));
while ( scanf("%c", &ch ) != EOF )
{
if ( ch >= 'a' && ch <= 'z' )
{
int t = (int)ch-96;
H[t]++;
L[t]++;
size++;
}
}
R[0] = 0;
for ( int i = 1; i <= size; i++ )
{
int sol=-1;
for ( int j = 1; j <= 26; j++ )
if ( size-i == (H[j]-1)*2 && R[i-1] != j )
{
sol = j;
break;
}
//printf("%d ", sol);
if ( sol != -1 )
{
R[i] = sol, H[sol] -= 1;
}
else
{
for ( int j = 1; j <= 26; j++ )
if ( H[j] >= 1 && R[i-1] != j )
{
R[i] = j, H[j] -= 1;
break;
}
}
//printf("%d\n", R[i]);
}
for ( int i = 1; i <= size; i++ )
printf("%c", 'a'+R[i]-1);
}