fork download
  1. #include <iostream>
  2. #include <cstring>
  3. using namespace std;
  4.  
  5. const int TEN = 10;
  6.  
  7. bool isDigit(char c) {
  8. return '0' <= c && c <= '9';
  9. }
  10.  
  11. void countDigits(int fr[], char text[]) {
  12. int textLen = strlen(text);
  13. for (int i = 0; i < textLen; ++i) {
  14. if (isDigit(text[i])) {
  15. ++fr[text[i] - '0'];
  16. }
  17. }
  18. }
  19.  
  20. int constructNum(int fr[]) {
  21. int biggerNum = 0;
  22. for (int i = TEN - 1; i >= 0; --i) {
  23. for (int j = 1; j <= fr[i]; ++j) {
  24. biggerNum = biggerNum * TEN + i;
  25. }
  26. }
  27. return biggerNum;
  28. }
  29.  
  30. int biggerNumber(char text[]) {
  31. int fr[TEN] = {0};
  32. countDigits(fr, text);
  33. return constructNum(fr);
  34. }
  35.  
  36. int main() {
  37. char text[100];
  38. cin >> text;
  39. cout << biggerNumber(text);
  40. return 0;
  41. }
Success #stdin #stdout 0.01s 5288KB
stdin
30393re1s0d
stdout
9333100