Cod sursa(job #2679105)

Utilizator gasparrobert95Gaspar Robert Andrei gasparrobert95 Data 29 noiembrie 2020 17:15:10
Problema Ordine Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.83 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() - i) / 2 + 1) {
            rez += 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;
}