#include<iostream> #include<vector> #include<stack> #include<algorithm> #include<map> #include<string> #include<set> using namespace std; string t[10] = { "ZERO","FOUR","EIGHT","THREE","TWO","ONE","FIVE","SEVEN","SIX","NINE" }; int tt[10] = { 0,4,8,3,2,1,5,7,6,9 }; bool bidui(vector<int> &d, int i) { int a[26] = { 0 }; for (int j = 0; j < t[i].length(); j++) { a[t[i][j] - 'A']++; } for (int j = 0; j < 26; j++) { if (a[j] > d[j]) return false; } return true; } int main() { int T; cin >> T; while (T--) { vector<int> d(26,0); string s; cin >> s; for (int i = 0; i < s.length(); i++) d[s[i] - 'A']++; vector<int> num; for (int i = 0; i < 10; i++) { while (bidui(d, i)) { for (int j = 0; j < t[i].length(); j++) { d[t[i][j] - 'A'] --; } num.push_back(tt[i]); } } for (int i = 0; i < num.size(); i++) { if (num[i] < 8) num[i] = num[i] + 2; else num[i] = num[i] - 8; } sort(num.begin(), num.end()); for (int i = 0; i < num.size(); i++) cout << num[i]; cout << endl; } return 0; }
点赞 评论

相关推荐

牛客网
牛客网在线编程
牛客网题解
牛客企业服务