fork download
  1. use std::io::stdin;
  2. use std::io::BufRead;
  3. use std::io::BufReader;
  4.  
  5. use std::time::{SystemTime, UNIX_EPOCH};
  6.  
  7. struct SimpleRng {
  8. state: u64,
  9. }
  10.  
  11. impl SimpleRng {
  12. fn new(seed: u64) -> Self {
  13. Self { state: seed }
  14. }
  15.  
  16. fn next(&mut self) -> u32 {
  17. const A: u64 = 1664525;
  18. const C: u64 = 1013904223;
  19. const M: u64 = 1 << 31;
  20.  
  21. self.state = (A.wrapping_mul(self.state).wrapping_add(C)) % M;
  22. (self.state % 10) as u32
  23. }
  24. }
  25.  
  26. fn main() {
  27. let n = 3;
  28. let m = 5;
  29.  
  30. let seed = SystemTime::now()
  31. .duration_since(UNIX_EPOCH)
  32. .unwrap()
  33. .as_nanos() as u64;
  34. let mut rng = SimpleRng::new(seed);
  35.  
  36. let a: Vec<Vec<u32>> = (0..n)
  37. .map(|_| (0..m).map(|_| rng.next()).collect())
  38. .collect();
  39.  
  40. let b = a.clone();
  41.  
  42. println!("A:");
  43. a.iter().for_each(|row| {
  44. row.iter().for_each(|&val| print!("{} ", val));
  45. println!();
  46. });
  47. println!();
  48.  
  49. let sorted_a: Vec<Vec<u32>> = a
  50. .iter()
  51. .map(|row| {
  52. let mut sorted_row = row.clone();
  53. sorted_row.sort();
  54. sorted_row
  55. })
  56. .collect();
  57.  
  58. println!("сортировка по строкам A:");
  59. sorted_a.iter().for_each(|row| {
  60. row.iter().for_each(|&val| print!("{} ", val));
  61. println!();
  62. });
  63. println!();
  64.  
  65. println!("B:");
  66. b.iter().for_each(|row| {
  67. row.iter().for_each(|&val| print!("{} ", val));
  68. println!();
  69. });
  70. println!();
  71.  
  72. let mut sorted_b = b.clone();
  73. for j in 0..m {
  74. let mut column: Vec<u32> = (0..n).map(|i| b[i][j]).collect();
  75. column.sort();
  76. for (i, &val) in column.iter().enumerate() {
  77. sorted_b[i][j] = val;
  78. }
  79. }
  80.  
  81. println!("сортировка по столбцам B:");
  82. sorted_b.iter().for_each(|row| {
  83. row.iter().for_each(|&val| print!("{} ", val));
  84. println!();
  85. });
  86. }
  87.  
Success #stdin #stdout 0s 5324KB
stdin
Standard input is empty
stdout
A:
4 9 2 5 0 
5 4 9 4 7 
4 5 8 9 6 

сортировка по строкам A:
0 2 4 5 9 
4 4 5 7 9 
4 5 6 8 9 

B:
4 9 2 5 0 
5 4 9 4 7 
4 5 8 9 6 

сортировка по столбцам B:
4 4 2 4 0 
4 5 8 5 6 
5 9 9 9 7