Cod sursa(job #2296127)

Utilizator rares404AlShaytan - Balasescu Rares rares404 Data 4 decembrie 2018 13:58:34
Problema Ordine Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <bits/stdc++.h>

std::ifstream in ("ordine.in") ;
std::ofstream out ("ordine.out") ;

std::string s ;
int fr[30];

int main(){
    in >> s ;
    int len(s.size()) ;
    register int i ;
    register char j ;
    char Ans, Previous(0) ;
    for (i = 0 ; i < len ; ++ i) {
        fr[s[i] - 'a'] ++ ;
    }
    bool Good ;
    for (i = 0 ; i < len ; ++ i) {
        Good = true ;
        for (j = 'a' ; j <= 'z' ; ++ j) {
            if ((fr[j - 'a'] > 0 && j != Previous && Good == true) || (fr[j - 'a'] >= (len - i) / 2 + 1 && j != Previous)) {
                Ans = j ;
                Good = false ;
            }
        }
        fr[Ans - 'a'] -- ;
        Previous = Ans ;
        out << Ans ;
    }
    return 0;
}