Advertisement
Guest User

Untitled

a guest
Oct 19th, 2019
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.82 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. #include <algorithm>
  4.  
  5. unsigned int SORT_COLOMN;
  6.  
  7. bool sort_by_number(std::string *first, std::string *second)
  8. {
  9.     if (first[SORT_COLOMN].length() == second[SORT_COLOMN].length())
  10.         return first[SORT_COLOMN] < second[SORT_COLOMN];
  11.     else
  12.         return first[SORT_COLOMN].length() < second[SORT_COLOMN].length();
  13. }
  14.  
  15. bool sort_by_text(std::string* first, std::string* second)
  16. {
  17.     return first[SORT_COLOMN] < second[SORT_COLOMN];
  18. }
  19.  
  20. int main()
  21. {
  22.     unsigned int n, k, w;
  23.     std::string *name_of_column;
  24.     std::cin >> n >> k >> w;
  25.     for(unsigned int i = 0; i < k; ++i)
  26.         std::cin >> name_of_column[i];
  27.     std::string **data = new std::string*[n];
  28.     for (unsigned int i = 0; i < n; i++)
  29.         * (data + i) = new std::string[k];
  30.  
  31.     for (unsigned int i = 0; i < n; i++)
  32.         for (unsigned int e = 0; e < k; e++)
  33.             std::cin >> data[i][k];
  34.     while (w--) {
  35.         unsigned int data_amount;
  36.         std::string* data_set = new std::string[data_amount];
  37.         unsigned int* ids = new unsigned int[data_amount];
  38.         for (unsigned int i = 0; i < data_amount; i++)
  39.         {
  40.             for (unsigned int e = 0; e < k; e++)
  41.             {
  42.                 if (data_set[i] == name_of_column[e])
  43.                 {
  44.                     ids[i] = e;
  45.                 }
  46.             }
  47.         }
  48.         SORT_COLOMN = ids[0];
  49.         if (data[0][ids[0]][0] >= 30 && data[0][ids[0]][0] <= 57)
  50.             sort(data[0], data[n - 1], sort_by_number);
  51.         else
  52.             sort(data[0], data[n - 1], sort_by_text);
  53.  
  54.         for (unsigned int i = 0; i < data_amount; ++i)
  55.             std::cout << data_set[i] << ' ';
  56.         std::cout << std::endl;
  57.         for (unsigned int i = 0; i < n; ++i) {
  58.             for (unsigned int e = 0; e < data_amount; e++)
  59.                 std::cout << data[i][ids[e]] << ' ';
  60.             std::cout << std::endl;
  61.         }
  62.         delete[] data_set;
  63.         delete[] ids;
  64.     }
  65.  
  66.     delete[] name_of_column;
  67.     for (unsigned int i = 0; i < n; i++)
  68.         delete[] data[i];
  69.     delete[] data;
  70.     return 0;
  71. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement