Cod sursa(job #109276)

Utilizator dushmiMihai-Alexandru Dusmanu dushmi Data 25 noiembrie 2007 09:51:25
Problema Ordine Scor 0
Compilator cpp Status done
Runda preONI 2008, Runda 1, Clasele 5-8 Marime 0.63 kb
#include<stdio.h>
#include<string.h>
long i,j,n,f[30];
char a[30],s[1000000];
int main()
{
	freopen("ordine.in","r",stdin);
	freopen("ordine.out","w",stdout);
	for(i=97;i<=122;i++)
		a[i-96]=i;
	gets(s);
	n=strlen(s)-1;
	for(i=0;i<=n;i++)
		f[(long)s[i]-96]++;
	for(i=1;i<=26;i++)
		if(f[i]==1)
			{
				printf("%c",a[i]);
				f[i]--;
			}
			else if(f[i]>1)
				{
					do
						{
							printf("%c",a[i]);
							f[i]--;
							for(j=i+1;j<=26;j++)
								if(f[j]!=0)
									{
										printf("%c",a[j]);
										f[j]--;
										break;
									}
						}
					while(f[i]>=1);
				}
	return 0;
}