Pagini recente » Cod sursa (job #700266) | Cod sursa (job #2881725) | Cod sursa (job #801214) | Cod sursa (job #2375276) | Cod sursa (job #902696)
Cod sursa(job #902696)
#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[27],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] && ant!=j)
{
fprintf(g,"%c",char(j+'a'));
ant=j;
--frec[j];
break;
}
}
}
int main( void )
{
read();
solve();
return 0;
}