Pagini recente » Cod sursa (job #1244946) | Cod sursa (job #150743) | Cod sursa (job #1776563) | Cod sursa (job #1572648) | Cod sursa (job #1332843)
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<vector>
#include<queue>
#include<cstring>
#include<set>
#include<map>
#include<cmath>
using namespace std ;
#define maxalfa 30
#define maxn 1000005
int v[maxalfa], N ;
int main()
{
std::ios_base::sync_with_stdio(false) ;
freopen("ordine.in", "r", stdin);
freopen("ordine.out", "w", stdout);
char ch ;
cin >> ch ;
while( !cin.eof() )
{
if( 'a' <= ch && ch <= 'z' )
++v[ch - 'a'], ++N ;
cin >> ch ;
}
int inainte = -1 ;
int ultimul = -1 ;
for(int i = 0; i < N; ++i )
{
int cine = 0 ;
while( v[cine] == 0 || cine == ultimul )
++cine ;
inainte = ultimul ;
ultimul = cine ;
for(cine = ultimul + 1; cine < maxalfa; ++cine)
if( v[cine] == ( N - i ) / 2 + 1 && cine != inainte)
ultimul = cine ;
--v[ultimul] ;
ch = 'a' + ultimul ;
cout << ch ;
}
return 0 ;
}