Cod sursa(job #1057724)

Utilizator stef93Stefan Gilca stef93 Data 14 decembrie 2013 18:54:16
Problema Ordine Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include<fstream>

using namespace std;

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


int strlen(char * s)
{
	int  i = 0;

	while(s[i] != '\0')
	{
		i++;
	}

	return i;
}

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 = 0 ; i < n ; i++)
    {   
		ok = true;
		for(j='a';j<='z' && ok != false;j++) 
		{
            if(a[j] == ( n - i ) / 2 + 1) 
			{
				c = j; 
				ok = false;
			}
		}
        for(j = 'a';j <= 'z' && ok != false; j++)
		{
            if(a[j] && j != cant) 
			{
					c=j;
					ok=0;
			}
		}
       out << c; 
	   a[c]--; 
	   cant=c;
    }
	  out << '\n';
	  out.close();
	  return 0;
}