Cod sursa(job #302512)

Utilizator tudgal1001Profir Tudor tudgal1001 Data 8 aprilie 2009 23:01:52
Problema Ordine Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include<fstream.h>
ifstream f("ordine.in");
ofstream g("ordine.out");
long b[27];
int caut_urmat(int i)
{
	int j;
	for (j=i+1; j<=26; j++)
		if (b[j]>0) return j;
	return 0;
}
int main ()
{
	char a[1000001];
	long i,poz;
	f.get(a,1000001);
	for (i=1; i<=26; i++)
		b[i]=0;
	for (i=0; i<strlen(a); i++)
		b[int(a[i])-96]++;
	for (i=1; i<=26; i++)
	{
		if (b[i]==1) { g<<char(i+96); b[i]=0; }
		else if (b[i]>1) 
		{
			g<<char(i+96); b[i]--;
			while (b[i]>0)
			{
				poz=caut_urmat(i);
				g<<char(poz+96);
				b[poz]--;
				g<<char(i+96);
				b[i]--;
			}
		}
	}				
	return 0;
}