Cod sursa(job #488110)

Utilizator teapatester teapa Data 27 septembrie 2010 18:00:41
Problema Ordine Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include<fstream>
using namespace std;
ifstream f1 ("ordine.in");
ofstream f2 ("ordine.out");
const int N=1<<20;
char s[N];
int len,apar[30];
int main()
{
	char c;
	int ant=30, k;
	while (f1.get(c) && c>='a' && c<='z')
	{
		s[len]=c;
		apar[s[len]-'a']++;
		len++;
	}
	for (int i=0;i<=len;++i)
	{
		k=0;
		for (int j=0;j<26;++j)
			if (apar[j]==(len-i+1)/2+1 && j!=ant) k=j;
		if (k!=0)
		{
			f2<<char('a'+k);
			apar[k]--;
			ant=k;
		}
		else
			for (int j=0;j<26;++j)
				if (apar[j] && j!=ant)
				{
					f2<<char('a'+j);
					apar[j]--;
					ant=j;
					break;
				}
	}
	f2<<"\n";
	return 0;
}