fork download
  1. #include<iostream>
  2. #include<string>
  3.  
  4. using namespace std;
  5.  
  6. typedef struct Element {
  7. int length;
  8. string data;
  9. } Words;
  10.  
  11.  
  12. void Swap(Words &x, Words &y, Words &t)
  13. {
  14. if (x.length == y.length)
  15. {
  16. if (x.data.compare(y.data) < 0)
  17. {
  18. return;
  19. }
  20. }
  21.  
  22. t = x;
  23. x = y;
  24. y = t;
  25. }
  26.  
  27.  
  28. int Partition(Words list[], int left, int right)
  29. {
  30. Words pivot, temp;
  31. int low, high;
  32.  
  33. low = left;
  34. high = right + 1;
  35. pivot = list[left];
  36. do {
  37. do
  38. low++;
  39. while (low <= right && list[low].length < pivot.length);
  40. do
  41. high--;
  42. while (high >= left && list[high].length > pivot.length);
  43.  
  44. if (low < high)
  45. Swap(list[low], list[high], temp);
  46. } while (low < high);
  47.  
  48. Swap(list[left], list[high], temp);
  49.  
  50. return high;
  51. }
  52.  
  53. void Quick_sort(Words list[], int left, int right)
  54. {
  55. if (left < right)
  56. {
  57. int q = Partition(list, left, right);
  58. Quick_sort(list, left, q - 1);
  59. Quick_sort(list, q + 1, right);
  60. }
  61. }
  62.  
  63.  
  64.  
  65. int main(void)
  66. {
  67. int N;
  68. string temp = "";
  69.  
  70. cin >> N;
  71.  
  72. Words *List = new Words[N];
  73.  
  74. for (int i = 0; i < N; i++)
  75. {
  76. cin >> List[i].data;
  77. List[i].length = List[i].data.length();
  78. if (List[i].length > 50)
  79. {
  80. return 0;
  81. }
  82. }
  83.  
  84. Quick_sort(List, 0, N - 1);
  85.  
  86. for (int i = 0; i < N; i++)
  87. {
  88. if (temp != List[i].data)
  89. {
  90. temp = List[i].data;
  91. }
  92. else
  93. continue;
  94.  
  95. cout << List[i].data << "\n";
  96. }
  97.  
  98. delete[] List;
  99.  
  100. return 0;
  101. }
Success #stdin #stdout 0s 15240KB
stdin
5
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaba
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
daaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
stdout
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaba
daaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa