Cod sursa(job #2766691)

Utilizator Alex_tz307Lorintz Alexandru Alex_tz307 Data 2 august 2021 21:13:51
Problema Ordine Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("ordine.in");
ofstream fout("ordine.out");

void max_self(int &x, int y) {
  if (x < y)
    x = y;
}

int main() {
  string s;
  fin >> s;
  int n = s.size(), f[26] = {0};
  for (char c : s)
    ++f[c - 'a'];
  int last = -1;
  for (int rep = 0; rep < n; ++rep) {
    int best = -1;
    for (int c = 0; c < 26; ++c)
      if (c != last && f[c] > 0) {
        if (best == -1)
          best = c;
        else {
          if (f[c] > n / 2)
            best = c;
        }
      }
    fout << char('a' + best);
    --f[best];
    last = best;
  }
  fout << '\n';
  fin.close();
  fout.close();
  return 0;
}