fork download
  1. #include <iostream>
  2. #include <algorithm>
  3. using namespace std;
  4.  
  5. int main() {
  6. int m, n;
  7. cin >> n >> m;
  8. int a[n][m];
  9. int b[n * m];
  10. for(int i = 0; i < m * n; i++) cin >> b[i];
  11. sort(b, b + m*n);
  12. int k = m, l = n, r = 0, p = 0, q = 0, i = 0, j = 0;
  13. while(r <= m*n)
  14. {
  15. while(j < k)
  16. {
  17. a[i][j] = b[r];
  18. r = r + 1;
  19. if(j == k - 1) break;
  20. j = j + 1;
  21. }
  22. r = r - 1;
  23. while(i < l)
  24. {
  25. a[i][j] = b[r];
  26. r = r + 1;
  27. if(i == l - 1) break;
  28. i = i + 1;
  29. }
  30. r = r - 1;
  31. while(j >= q)
  32. {
  33. a[i][j] = b[r];
  34. r = r + 1;
  35. if(j == q) break;
  36. j = j - 1;
  37. }
  38. r = r - 1;
  39. while(i >= p)
  40. {
  41. a[i][j] = b[r];
  42. r = r + 1;
  43. if(i == p + 1) break;
  44. i = i - 1;
  45. }
  46. r = r - 1;
  47. k = k - 1;
  48. l = l - 1;
  49. p = p + 1;
  50. q = q + 1;
  51. if(r == m*n - 1) break;
  52. }
  53. for(int i = 0; i < n; i++)
  54. {
  55. for(int j = 0; j < m; j++) cout << a[i][j] << " ";
  56. cout << "\n";
  57. }
  58. return 0;
  59. }
Success #stdin #stdout 0s 16064KB
stdin
5 1
1 5 10 -2 -1
stdout
-2 
0 
1 
0 
10