Cod sursa(job #449788)

Utilizator bog29Antohi Bogdan bog29 Data 6 mai 2010 21:20:34
Problema Ordine Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.58 kb
#include<fstream>
#define dmax 1000004
using namespace std;
ifstream in("ordine.in");
ofstream out("ordine.out");

int n,y[30],ok;
char x[dmax],z[dmax],c;

int main()
{	int i,j;
	in>>x;
	in.close();
	n=strlen(x);
	for(i=0;i<n;i++)
		y[x[i]-'a']++;
	for(i=0;i<=n;i++)
	{	ok=1;
		for(j=0;j<=27;j++)
			if(y[j]== (n-i)/2+1 )
			{	z[i]='a'+j;
				y[j]--;
				ok=0;
			}	
		for(j=0;j<=27 && ok;j++)
			if(y[j])	
			{	c='a'+j;
				if(c!=z[i-1] )
				{	z[i]=c;
					y[j]--;
					ok=0;
				}	
		}	
	}
	for(i=0;i<n;i++)
		out<<z[i];
	out.close();
	return 0;
}