Pagini recente » Cod sursa (job #533665) | Cod sursa (job #2988888) | Cod sursa (job #288258) | Cod sursa (job #47440) | Cod sursa (job #902781)
Cod sursa(job #902781)
#include<cstdio>
#include<cstring>
#define MAX_SIZE 1000005
FILE *f=fopen("ordine.in","r");
FILE *g=fopen("ordine.out","w");
using namespace std;
char sir[MAX_SIZE];
int frec[29],size;
int ant;
void read ( void )
{
fgets(sir,MAX_SIZE,f);
for(int i(0); sir[i] ; ++i,++size )
++frec[sir[i]-'a'];
}
void solve ( void )
{
ant=-1;
for(int i(1) ; i <= size ; ++i )
{
int ch=-1;
for( int j(0) ;j < 26 ; ++j )
if( ( frec[j] == (( size - i +1 )/2 + 1) ) )
{
ch=j ;
break;
}
if( ch != -1 )
{
fprintf(g,"%c",char(ch+'a'));
--frec[ch];
ant=ch;
}
else
for(int j(0); j < 26 ; j++ )
if( frec[j] && j!=ant)
{
fprintf(g,"%c",char(j+'a'));
--frec[j];
ant=j;
break;
}
}
}
int main( void )
{
read();
solve();
return 0;
}