Cod sursa(job #295905)

Utilizator ConsstantinTabacu Raul Consstantin Data 3 aprilie 2009 19:23:08
Problema Ordine Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.52 kb
#include<stdio.h>
#include<string.h>
int v[30],i,j,k,l,m,n,ok;
char text[10000100];

int main(){


FILE *f=fopen("ordine.in","r");
freopen("ordine.out","w",stdout);

fgets(text,1000010,f);
n=strlen(text);

for(i=0;i<n;i++)
	v[text[i]-'a'+1]++;

for(i=1;i<=n;i++)

	{ok=0;
		for(j=1;j<=26;j++)
			if(v[j]==(n-i+1)/2+1)ok=j;
		if(ok){printf("%c",char(ok+'a'-1));v[j]--;text[i]=j;}
		else
			for(j=1;j<=26;j++)
				if(v[j]&&text[i-1]!=j){printf("%c",char(j+'a'-1));v[j]--;text[i]=j;break;}
				
}
return 0;}