fork(2) download
  1. #include <iostream>
  2. #include <cstdio>
  3. #include <algorithm>
  4. #include <string>
  5. using namespace std;
  6.  
  7. bool howToCompareOld(string i, string j) {
  8. cout << "compare "<<i<<" and "<<j<<": ";
  9. if(i.length() > j.length()) {
  10. cout << (i>j)<<endl;
  11. return i > j;
  12. }
  13. else if(i.length() < j.length()) {
  14. cout << (i<j)<<endl;
  15. return i < j;
  16. }
  17. else {
  18. for(int k = 0; k < i.length(); k++) {
  19. if(i[k] - '0' < j[k] - '0') {
  20. cout << (i<j)<<endl;
  21. return i < j;
  22. }
  23. else if (i[k] - '0' > j[k] - '0'){
  24. cout << (i>j)<<endl;
  25. return i > j;
  26. }
  27. }
  28. }
  29. cout << (i==j)<<endl;
  30. return i == j;
  31. }
  32.  
  33. bool howToCompare(string i, string j) {
  34. if(i.length() > j.length()) {
  35. return false;
  36. }
  37. else if(i.length() < j.length()) {
  38. return true;
  39. }
  40. else {
  41. for(int k = 0; k < i.length(); k++) {
  42. if(i[k] < j[k] ) {
  43. return true;
  44. }
  45. else if (i[k] > j[k] ){
  46. return false;
  47. }
  48. }
  49. }
  50. return false;
  51. }
  52.  
  53.  
  54. int main() {
  55. int n;
  56. cin >> n;
  57.  
  58. string array[n];
  59. for(int i = 0; i < n; i++) {
  60. cin >> array[i];
  61. }
  62.  
  63. sort(array, array + n, howToCompare);
  64.  
  65. for(int i = 0; i < n; i++) {
  66. cout << array[i] << endl;
  67. }
  68. return 0;
  69. }
Success #stdin #stdout 0s 15248KB
stdin
6
30
40
10
05
12
45
stdout
05
10
12
30
40
45