Advertisement
Guest User

Untitled

a guest
Oct 24th, 2019
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.14 KB | None | 0 0
  1.  
  2. #include <iostream>
  3. #include <algorithm>
  4. #include <vector>
  5. #include <ctime>
  6.  
  7. int main() {
  8. std::ios_base::sync_with_stdio(false);
  9. std::cin.tie(nullptr);
  10. std::cout.tie(nullptr);
  11.  
  12. int n, m, k, mn;
  13. std::cin >> n >> m;
  14. mn = m * n;
  15. std::vector<int> vectNM(mn);
  16. for (int i = 0; i < mn; ++i) {
  17. std::cin >> vectNM[i];
  18. }
  19. int km, ikm, ikm_km;
  20. k = 1;
  21. while (k < n) {
  22. ikm = 0;
  23. km = k * m;
  24. ikm_km = ikm + 2 * km;
  25. for (int i = 0; (i + 2) * k <= n; i += 2) {
  26. ikm = i * km;
  27. ikm_km = ikm + 2 * km;
  28. std::inplace_merge(
  29. vectNM.begin() + ikm,
  30. vectNM.begin() + ikm + km,
  31. vectNM.begin() + ikm_km);
  32. }
  33. if (vectNM.size() > ikm_km) {
  34. std::inplace_merge(
  35. vectNM.begin() + ikm,
  36. vectNM.begin() + ikm_km,
  37. vectNM.end());
  38. }
  39. k *= 2;
  40. }
  41.  
  42. for (int i = 0; i < mn - 1; ++i) {
  43. std::printf("%d ", vectNM[i]);
  44. }
  45. std::cout << vectNM[mn - 1] << std::endl;
  46. return 0;
  47. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement