Cod sursa(job #1057684)

Utilizator stef93Stefan Gilca stef93 Data 14 decembrie 2013 18:41:13
Problema Ordine Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <fstream>
#include <string>

using namespace std;

int a[300]  , n , i;
char c , cant, j;
bool ok;
char sir[1000010];

int main()
{
	ifstream in("ordine.in");
	ofstream out("ordine.out");

	in >> sir;
	n = strlen(sir);
	for(i = 0 ; i < n ; i++)
	{
		a[sir[i]]++;
	}
	
	for(i = 1 ; i <= n ; i++)
	{
		for(j = 'a' ; j <= 'z' ; j++)
		{
			if(a[j] == (n - i + 1)/2 + 1)
			{
				c = j;
				break;
			}
		}

		for(j = 'a' ; j <= 'z' ; j++)
		{
			if(a[j] != 0 && j != cant)
			{
				c = j;
				break;
			}
		}

		out << c;
		a[c] --;
		cant = c;
	}
	out << '\n';
	in.close();
	out.close();
	return 0;
}