fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. string findMinimumLength(string s,int k){
  5. map<int,int>freq;
  6. int n = s.size();
  7. for(int i=0;i<n;i++){
  8. freq[s[i]-'a']++;
  9. }
  10. vector<pair<int,int>>v;
  11. for(auto i:freq){
  12. v.push_back({i.second,i.first});
  13. }
  14. sort(v.begin(),v.end(),greater<pair<int,int>>());
  15. string final = "";
  16. int mx = max(k,(int)freq.size());
  17. int m = v.size();
  18. int cnt=0;
  19. while(true){
  20. for(int i=0;i<m;i++){
  21. if(v[i].first>0){
  22. final+=((v[i].second)+'a');
  23. v[i].first--;
  24. if(v[i].first==0){
  25. cnt++;
  26. }
  27. }
  28. }
  29. if(m<mx){
  30. for(int i=0;i<(mx-m);i++){
  31. final+='#';
  32. }
  33. }
  34. if(cnt==m){
  35. break;
  36. }
  37. }
  38. return final;
  39. }
  40.  
  41. int main() {
  42. // your code goes here
  43. cout << findMinimumLength("aba",2)<< endl;
  44.  
  45. return 0;
  46. }
Success #stdin #stdout 0.01s 5284KB
stdin
Standard input is empty
stdout
aba