Pagini recente » Statistici Bruce Wayne (Vanillalance) | Profil M@2Te4i | Rating Valentin Lavric (Valent) | Diferente pentru template/despre-infoarena intre reviziile 10 si 20 | Cod sursa (job #992992)
Cod sursa(job #992992)
#include <iostream>
#include <fstream>
#include <cstring>
#include <list>
using namespace std;
int L[30];
string a;
string b;
int sum;
int valid()
{
for ( int i = 1; i <= 26; ++i )
if ( L[i] )
{
if ( L[i] > sum/2 )
return i;
}
return -1;
}
int main()
{
ifstream f("ordine.in");
ofstream g("ordine.out");
f >> a;
sum = a.length();
for ( int i = 0; i < sum; ++i )
L[ a[i] - 96 ]++;
while( sum )
{
int elem = valid();
if ( elem == -1 )
{
for ( int i = 1; i <= 26; ++i )
if ( L[i] )
{
b.push_back( char( 96 + i ) );
L[i]--;
sum--;
}
}
else
{
b.push_back( char( 96 + elem ) );
L[elem]--;
sum--;
}
}
g << b << "\n";
f.close();
g.close();
return 0;
}