Pagini recente » Borderou de evaluare (job #3226864) | Cod sursa (job #2296118)
#include <bits/stdc++.h>
std::string s ;
std::map <char, int> mp ;
int main(){
freopen("ordine.in", "r", stdin) ;
freopen("ordine.out", "w", stdout) ;
std::cin >> s ;
int len(s.size()) ;
register int i ;
register char j ;
char Ans, Previous(0) ;
for (i = 0 ; i < len ; ++ i) {
mp[s[i]] ++ ;
}
bool Good ;
for (i = 0 ; i < len ; ++ i) {
Good = true ;
for (j = 'a' ; j <= 'z' ; ++ j) {
if ((mp[j] > 0 && j != Previous && Good == true) || (mp[j] >= (s.size() - i) / 2 + 1 && j != Previous)) {
Ans = j ;
Good = false ;
}
}
mp[Ans] -- ;
Previous = Ans ;
printf("%c", Ans) ;
}
return 0;
}