Pagini recente » Cod sursa (job #1599184) | Cod sursa (job #2685508) | Cod sursa (job #1473757) | Cod sursa (job #2215721) | Cod sursa (job #902728)
Cod sursa(job #902728)
#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[50],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 ii(0) ; ii < 26 ; ++ii )
if( ant != ii && frec[ii] == ( size -i +1)/2+1 )
{
ch=ii ;
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;
}