Cod sursa(job #1057622)

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

using namespace std;

int a[300]  , n;
char c , cant;
bool ok;
string sir;

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

	in >> sir;

	for(unsigned int i = 0 ; i < sir.length() ; i++)
	{
		a[sir[i]]++;
	}
	int qq = (int)sir.length();
	for(int i = 1 ; i <= qq ; i++)
	{
		for(char j = 'a' ; j <= 'z' ; j++)
		{
			if(a[j] == (qq - i + 1)/2 + 1)
			{
				c = j;
				break;
			}
		}

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

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