Cod sursa(job #2679099)

Utilizator gasparrobert95Gaspar Robert Andrei gasparrobert95 Data 29 noiembrie 2020 17:05:15
Problema Ordine Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <bits/stdc++.h>
#define ll long long
using namespace std;
ifstream fin("ordine.in");
ofstream fout("ordine.out");
string s, rez;
int fv[130];

int main() {
    fin >> s;
    for (int i = 0; i < s.size(); ++i)
        ++fv[s[i]];
    for (int i = 0; i < s.size(); ++i) {
        int maxap = 0, pos = 0;
        for (int j = 'a'; j <= 'z'; ++j)
            if (fv[j] > maxap) {
                maxap = fv[j];
                pos = j;
            }
        if (maxap > s.size() / 2) {
            s += pos;
            --fv[pos];
            continue;
        }
        for (int j = 'a'; j <= 'z'; ++j)
            if ((rez == "" || (j != rez[rez.size() - 1]) && fv[j] > 0)) {
                rez += j;
                --fv[j];
                break;
            }
    }
    fout << rez;
    return 0;
}