Pagini recente » Cod sursa (job #1644607) | Cod sursa (job #2047570) | Cod sursa (job #1442042) | Cod sursa (job #966062) | Cod sursa (job #312151)
Cod sursa(job #312151)
#include <stdio.h>
#include <string.h>
#define N 1000005
char s[N];
int v[28],t,exceptie,ult_af;
void citire()
{
fgets(s+1,N,stdin);
int i;
t=(int)strlen(s+1);
for (i=1; i<=t && s[i]!='\n'; i++)
v[(int)s[i]-96]++;
}
void rezolva()
{
int i,j,k;
while (t)
{
for (i=1; i<=27; i++)
{
if (v[i]>t/2)
{
exceptie=1;
for (j=1; j<=v[i]; j++)
{
printf("%c",i+96);
t--;
//v[i]--;
for (k=1; k<=27; k++)
if (k!=i && v[k])
{
printf("%c",k+96);
t--;
v[k]--;
break;
}
}
break;
}
}
if (exceptie)
break;
for (i=1; i<=27; i++)
if (v[i] && i!=ult_af)
{
printf("%c",i+96);
ult_af=i;
t--;
v[i]--;
break;
}
}
}
int main()
{
freopen("ordine.in","r",stdin);
freopen("ordine.out","w",stdout);
citire();
rezolva();
return 0;
}