Advertisement
deushiro

Untitled

Jan 4th, 2020
197
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.45 KB | None | 0 0
  1. #include <cmath>
  2. #include <iostream>
  3. #include <vector>
  4. #include <algorithm>
  5. #include <string>
  6. #include <set>
  7. #include <map>
  8. #include <list>
  9. #include <time.h>
  10. #include <math.h>
  11. #include <random>
  12. #include <deque>
  13. #include <queue>
  14. #include <cassert>
  15. #include <unordered_map>
  16. #include <unordered_set>
  17. #include <iomanip>
  18. #include <bitset>
  19. #include <sstream>
  20. #include <chrono>
  21. #include <cstring>
  22.  
  23. using namespace std;
  24.  
  25. typedef long long ll;
  26. const int mod = 1e9 + 7;
  27.  
  28. int main() {
  29.     ios_base::sync_with_stdio(false);
  30.     cin.tie(0);
  31.     string s;
  32.     cin >> s;
  33.     vector<int> c(26);
  34.     for(int i = 0; i < s.size(); ++i){
  35.         c[s[i] - 97]++;
  36.     }
  37.     int maxi = 0;
  38.     int counter = 0;
  39.     for(int i = 0; i < c.size(); ++i){
  40.         maxi = max(maxi, c[i]);
  41.     }
  42.     for(int i = 0; i < c.size(); ++i){
  43.         if(c[i] == maxi)
  44.             ++counter;
  45.     }
  46.     if(maxi == 1){
  47.         cout << counter << endl;
  48.         for(int i = 0; i < c.size(); ++i){
  49.             char a = 'a' + i;
  50.             if(c[i])
  51.                 cout << a << endl;
  52.         }
  53.         return 0;
  54.     }
  55.     if(counter == 1){
  56.         cout << 1 << endl;
  57.         for(int i = 0; i < c.size(); ++i){
  58.             for(int j = 0; j < c[i]; ++j){
  59.                 char a = 'a' + i;
  60.                 cout << a;
  61.             }
  62.         }
  63.     }
  64.     else if(counter == 2){
  65.         bool flag = false;
  66.         cout << 2 << endl;
  67.         for(int i = 0; i < c.size(); ++i){
  68.             if(c[i] < maxi){
  69.                 for(int j = 0; j < c[i]; ++j){
  70.                     char a = 'a' + i;
  71.                     cout << a;
  72.                 }
  73.             }
  74.             else{
  75.                 if(!flag){
  76.                     for(int j = 0; j < c[i]; ++j){
  77.                         char a = 'a' + i;
  78.                         cout << a;
  79.                     }
  80.                     flag = true;
  81.                 }
  82.                 else{
  83.                     cout << endl;
  84.                     for(int j = 0; j < c[i]; ++j){
  85.                         char a = 'a' + i;
  86.                         cout << a;
  87.                     }
  88.                 }
  89.             }
  90.         }
  91.     }
  92.     else{
  93.         cout << 2 << endl;
  94.         int st = 0;
  95.         int nx = 0;
  96.         for(int i = 0; i < c.size(); ++i){
  97.             if(c[i] == maxi){
  98.                 st = i;
  99.                 break;
  100.             }
  101.         }
  102.         for(int i = st + 1; i < c.size(); ++i){
  103.             if(c[i] == maxi){
  104.                 nx = i;
  105.                 break;
  106.             }
  107.         }
  108.         for(int i = 0; i < c.size(); ++i){
  109.             if(c[i] < maxi){
  110.                 for(int j = 0; j < c[i]; ++j){
  111.                     char a = 'a' + i;
  112.                     cout << a;
  113.                 }
  114.                 c[i] = 0;
  115.             }
  116.             else if(c[i] == maxi && i == st){
  117.                 for(int j = 0; j < c[i]; ++j){
  118.                     char a = 'a' + i;
  119.                     cout << a;
  120.                 }
  121.                 c[i] = 0;
  122.             }
  123.             else if(c[i] == maxi && i != st && i != nx){
  124.                 for(int j = 0; j < c[i] - 1; ++j){
  125.                     char a = 'a' + i;
  126.                     cout << a;
  127.                 }
  128.                 c[i] = 1;
  129.             }
  130.         }
  131.         cout << endl;
  132.         for(int i = 0; i < c.size(); ++i){
  133.             for(int j = 0; j < c[i]; ++j){
  134.                 char a = 'a' + i;
  135.                 cout << a;
  136.             }
  137.         }
  138.        
  139.     }
  140.    
  141. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement