3
vector<string> digits{"zero", "one", "two", "three", "four",4
"five", "six", "seven", "eight", "nine"};5
void fun(int x, string &ans, vector<int> &m) {6
for (int i = x; i <= 9; i += 2) {9
if (m[t[0] - 'a'] > 0 && m[t[1] - 'a'] > 0 && m[t[2] - 'a'] > 0) {10
int min_o = min({m[t[0] - 'a'], m[t[1] - 'a'], m[t[2] - 'a']});11
m[t[0] - 'a'] -= min_o;12
m[t[1] - 'a'] -= min_o;13
m[t[2] - 'a'] -= min_o;14
while (min_o--) ans += (char)(i + '0');16
} else if (t.length() == 4) {17
if (m[t[0] - 'a'] > 0 && m[t[1] - 'a'] > 0 && m[t[2] - 'a'] > 0 && m[t[3] - 'a'] > 0) {18
int min_o = min({m[t[0] - 'a'], m[t[1] - 'a'], m[t[2] - 'a'], m[t[3] - 'a']});19
m[t[0] - 'a'] -= min_o;20
m[t[1] - 'a'] -= min_o;21
m[t[2] - 'a'] -= min_o;22
m[t[3] - 'a'] -= min_o;23
while (min_o--) ans += (char)(i + '0');25
} else if (t.length() == 5) {26
if (m[t[0] - 'a'] > 0 && m[t[1] - 'a'] > 0 && m[t[2] - 'a'] > 0 && m[t[3] - 'a'] > 0 &&29
min({m[t[0] - 'a'], m[t[1] - 'a'], m[t[2] - 'a'], m[t[3] - 'a'], m[t[4] - 'a']});30
m[t[0] - 'a'] -= min_o;31
m[t[1] - 'a'] -= min_o;32
m[t[2] - 'a'] -= min_o;33
m[t[3] - 'a'] -= min_o;34
m[t[4] - 'a'] -= min_o;35
while (min_o--) ans += (char)(i + '0');41
string originalDigits(string s) {44
for (auto x : s) m[x - 'a']++;47
sort(ans.begin(), ans.end());