Guest User

Untitled

a guest
Dec 11th, 2017
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.78 KB | None | 0 0
  1. use std::fs::File;
  2. use std::io::prelude::*;
  3.  
  4. fn get_input() -> Vec<u8> {
  5. let mut file = File::open("input.txt").unwrap();
  6. let mut content = Vec::new();
  7.  
  8. file.read_to_end(&mut content).unwrap();
  9. for i in 0 .. content.len() {
  10. content[i] = content[i] - ('0' as u8);
  11. }
  12.  
  13. content
  14. }
  15.  
  16. fn offset_sum(input: &[u8], offset: usize) -> i32 {
  17. let len = input.len();
  18. let mut sum = 0;
  19.  
  20. for i in 0 .. len {
  21. let j = (i + offset) % len;
  22. if input[i] == input[j] {
  23. sum += input[i] as i32;
  24. }
  25. }
  26.  
  27. sum
  28. }
  29.  
  30. fn main() {
  31. let input = get_input();
  32.  
  33. println!("Part 1 total: {}", offset_sum(&input, 1));
  34. println!("Part 2 total: {}", offset_sum(&input, input.len()/2));
  35. }
  36.  
  37. $ ./program <input.txt
  38.  
  39. $ ./program $(cat input.txt)
Add Comment
Please, Sign In to add comment