Advertisement
Guest User

Untitled

a guest
Oct 21st, 2019
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.07 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. using namespace std;
  4.  
  5. vector<string> CategorySort(vector<string>& a, int index) //index == category(razryad)
  6. {
  7. vector <vector <string>> alphabet(28); //28 letters in alphabet
  8. vector<string> res;
  9.  
  10. for (int i = 0; i < a.size(); ++i)
  11. alphabet[a[i][index] - 'a'].push_back(a[i]);//a[i] - string, index - the youngest razryad of a[i]
  12.  
  13. for (int i = 0; i < alphabet.size(); ++i)
  14. {
  15. for (int j = 0; j < alphabet[i].size(); ++j)
  16. {
  17. res.push_back(alphabet[i][j]);
  18. }
  19. }
  20. return res;
  21. }
  22.  
  23. vector<string> radixSort(vector<string>& a, int m, int k)
  24. {
  25. while (m > 0 && k > 0) //while array not sorted and all requests haven`t done
  26. {
  27. a = CategorySort(a, m - 1); //sorting by index (from last to first)
  28. --m, --k;
  29. return a;
  30. }
  31. }
  32.  
  33. int main()
  34. {
  35. int n, m, k;
  36. cin >> n >> m >> k; //n - array`s size, m - string`s length, k - requests
  37. vector<string> a(n);
  38.  
  39. for (int i = 0; i < n; ++i)
  40. cin >> a[i];
  41.  
  42. vector<string> res = radixSort(a, m, k);
  43.  
  44. for (int i = 0; i < res.size(); ++i)
  45. cout << res[i] << endl;
  46. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement