Guest User

Untitled

a guest
Dec 11th, 2018
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.62 KB | None | 0 0
  1. use std::iter::repeat;
  2.  
  3. fn power_level(x: i32, y: i32, serial: i32) -> i32 {
  4. let rack_id: i32 = x + 10;
  5. ((((rack_id * y + serial) * rack_id) / 100) % 10) - 5
  6. }
  7.  
  8. fn main() {
  9. const SERIAL: i32 = 8141;
  10.  
  11. let points: Vec<(i32, i32)> = (1..=300)
  12. .flat_map(|x| repeat(x).zip(1..=300))
  13. .collect();
  14. let power_levels: Vec<i32> = points
  15. .iter()
  16. .map(|(x, y)| power_level(*x, *y, SERIAL))
  17. .collect();
  18.  
  19. assert_eq!(power_level(3, 5, 8), 4);
  20. assert_eq!(power_level(122, 79, 57), -5);
  21. assert_eq!(power_level(217, 196, 39), 0);
  22. assert_eq!(power_level(101, 153, 71), 4);
  23. }
Add Comment
Please, Sign In to add comment