Pagini recente » Cod sursa (job #722900) | Cod sursa (job #2680208) | Cod sursa (job #717940) | Cod sursa (job #43642) | Cod sursa (job #902689)
Cod sursa(job #902689)
#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 )
frec[sir[i]-'a']++;
size=strlen(sir);
}
void solve ( void )
{
ant=-1;
for(int i(1) ; i<=size ; ++i )
{
int ch=-1;
for(int ii(0) ; ii <= 'z'-'a'; ++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 <= 27 ; ++j )
if(frec[j] && ant!=j)
{
fprintf(g,"%c",char(j+'a'));
ant=j;
--frec[j];
break;
}
}
}
int main( void )
{
read();
solve();
return 0;
}