d10p1
This commit is contained in:
		
							
								
								
									
										7
									
								
								day10/Cargo.lock
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								day10/Cargo.lock
									
									
									
										generated
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | ||||
| # This file is automatically @generated by Cargo. | ||||
| # It is not intended for manual editing. | ||||
| version = 3 | ||||
|  | ||||
| [[package]] | ||||
| name = "day10" | ||||
| version = "0.1.0" | ||||
							
								
								
									
										8
									
								
								day10/Cargo.toml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								day10/Cargo.toml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,8 @@ | ||||
| [package] | ||||
| name = "day10" | ||||
| version = "0.1.0" | ||||
| edition = "2021" | ||||
|  | ||||
| # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html | ||||
|  | ||||
| [dependencies] | ||||
							
								
								
									
										143
									
								
								day10/input.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										143
									
								
								day10/input.txt
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,143 @@ | ||||
| noop | ||||
| noop | ||||
| addx 5 | ||||
| noop | ||||
| noop | ||||
| addx 6 | ||||
| addx 4 | ||||
| addx -4 | ||||
| addx 4 | ||||
| addx -6 | ||||
| addx 11 | ||||
| addx -1 | ||||
| addx 2 | ||||
| addx 4 | ||||
| addx 3 | ||||
| noop | ||||
| addx 2 | ||||
| addx -30 | ||||
| addx 2 | ||||
| addx 33 | ||||
| noop | ||||
| addx -37 | ||||
| noop | ||||
| noop | ||||
| noop | ||||
| addx 3 | ||||
| addx 2 | ||||
| addx 5 | ||||
| addx 20 | ||||
| addx 7 | ||||
| addx -24 | ||||
| addx 2 | ||||
| noop | ||||
| addx 7 | ||||
| addx -2 | ||||
| addx -6 | ||||
| addx 13 | ||||
| addx 3 | ||||
| addx -2 | ||||
| addx 2 | ||||
| noop | ||||
| addx -5 | ||||
| addx 10 | ||||
| addx 5 | ||||
| addx -39 | ||||
| addx 1 | ||||
| addx 5 | ||||
| noop | ||||
| addx 3 | ||||
| noop | ||||
| addx -5 | ||||
| addx 10 | ||||
| addx -2 | ||||
| addx 2 | ||||
| noop | ||||
| noop | ||||
| addx 7 | ||||
| noop | ||||
| noop | ||||
| noop | ||||
| noop | ||||
| addx 3 | ||||
| noop | ||||
| addx 3 | ||||
| addx 2 | ||||
| addx 8 | ||||
| addx -1 | ||||
| addx -20 | ||||
| addx 21 | ||||
| addx -38 | ||||
| addx 5 | ||||
| addx 2 | ||||
| noop | ||||
| noop | ||||
| noop | ||||
| addx 8 | ||||
| noop | ||||
| noop | ||||
| addx -2 | ||||
| addx 2 | ||||
| addx -7 | ||||
| addx 14 | ||||
| addx 5 | ||||
| noop | ||||
| noop | ||||
| noop | ||||
| addx -16 | ||||
| addx 17 | ||||
| addx 2 | ||||
| addx -12 | ||||
| addx 19 | ||||
| noop | ||||
| noop | ||||
| addx -37 | ||||
| noop | ||||
| noop | ||||
| noop | ||||
| addx 3 | ||||
| addx 2 | ||||
| addx 2 | ||||
| addx 5 | ||||
| addx 20 | ||||
| addx -19 | ||||
| addx 2 | ||||
| noop | ||||
| noop | ||||
| noop | ||||
| addx 5 | ||||
| addx 19 | ||||
| addx -12 | ||||
| addx 3 | ||||
| addx -2 | ||||
| addx 2 | ||||
| addx -18 | ||||
| addx 25 | ||||
| addx -14 | ||||
| addx -22 | ||||
| addx 1 | ||||
| noop | ||||
| noop | ||||
| noop | ||||
| addx 3 | ||||
| addx 5 | ||||
| addx -4 | ||||
| addx 7 | ||||
| addx 4 | ||||
| noop | ||||
| addx 1 | ||||
| noop | ||||
| noop | ||||
| addx 2 | ||||
| addx -6 | ||||
| addx 15 | ||||
| addx -1 | ||||
| addx 4 | ||||
| noop | ||||
| noop | ||||
| addx 1 | ||||
| addx 4 | ||||
| addx -33 | ||||
| noop | ||||
| addx 21 | ||||
| noop | ||||
							
								
								
									
										44
									
								
								day10/src/main.rs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								day10/src/main.rs
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,44 @@ | ||||
| use std::env; | ||||
| use std::fs::File; | ||||
| use std::io::{self, BufRead}; | ||||
|  | ||||
| #[derive(Debug)] | ||||
| enum Inst{ | ||||
|     AddX(i64), | ||||
|     Noop, | ||||
| } | ||||
|  | ||||
| #[derive(Debug)] | ||||
| struct ParseError(String); | ||||
|  | ||||
| fn parse_line(line: String) -> Result<Inst, ParseError> { | ||||
|     match &line[..4] { | ||||
|         "noop" => Ok(Inst::Noop), | ||||
|         "addx" => match line[5..].parse::<i64>() { | ||||
|             Ok(operand) => Ok(Inst::AddX(operand)), | ||||
|             Err(e) => Err(ParseError(e.to_string())), | ||||
|         }, | ||||
|         _ => Err(ParseError(String::from("bad instruction"))), | ||||
|     } | ||||
| } | ||||
|  | ||||
| fn main() { | ||||
|     let file = File::open(&env::args().nth(1).unwrap()).unwrap(); | ||||
|     let reader = io::BufReader::new(file); | ||||
|     let mut xs: Vec<i64> = vec![0, 1]; | ||||
|  | ||||
|     for line in reader.lines().flatten() { | ||||
|         let last_x = *xs.last().unwrap(); | ||||
|         match parse_line(line) { | ||||
|             Ok(Inst::Noop) => { xs.push(last_x) }, | ||||
|             Ok(Inst::AddX(x)) => { xs.push(last_x); xs.push(last_x + x) }, | ||||
|             Err(e) => println!("error: {:?}", e), | ||||
|         } | ||||
|     } | ||||
|     let res: i64 = xs.iter().enumerate() | ||||
|         .skip(20).step_by(40) | ||||
|         .map(|(i, &x)| (i as i64)*x) | ||||
|         .sum(); | ||||
|     println!("{:?}", res); | ||||
| } | ||||
|  | ||||
							
								
								
									
										146
									
								
								day10/test.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										146
									
								
								day10/test.txt
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,146 @@ | ||||
| addx 15 | ||||
| addx -11 | ||||
| addx 6 | ||||
| addx -3 | ||||
| addx 5 | ||||
| addx -1 | ||||
| addx -8 | ||||
| addx 13 | ||||
| addx 4 | ||||
| noop | ||||
| addx -1 | ||||
| addx 5 | ||||
| addx -1 | ||||
| addx 5 | ||||
| addx -1 | ||||
| addx 5 | ||||
| addx -1 | ||||
| addx 5 | ||||
| addx -1 | ||||
| addx -35 | ||||
| addx 1 | ||||
| addx 24 | ||||
| addx -19 | ||||
| addx 1 | ||||
| addx 16 | ||||
| addx -11 | ||||
| noop | ||||
| noop | ||||
| addx 21 | ||||
| addx -15 | ||||
| noop | ||||
| noop | ||||
| addx -3 | ||||
| addx 9 | ||||
| addx 1 | ||||
| addx -3 | ||||
| addx 8 | ||||
| addx 1 | ||||
| addx 5 | ||||
| noop | ||||
| noop | ||||
| noop | ||||
| noop | ||||
| noop | ||||
| addx -36 | ||||
| noop | ||||
| addx 1 | ||||
| addx 7 | ||||
| noop | ||||
| noop | ||||
| noop | ||||
| addx 2 | ||||
| addx 6 | ||||
| noop | ||||
| noop | ||||
| noop | ||||
| noop | ||||
| noop | ||||
| addx 1 | ||||
| noop | ||||
| noop | ||||
| addx 7 | ||||
| addx 1 | ||||
| noop | ||||
| addx -13 | ||||
| addx 13 | ||||
| addx 7 | ||||
| noop | ||||
| addx 1 | ||||
| addx -33 | ||||
| noop | ||||
| noop | ||||
| noop | ||||
| addx 2 | ||||
| noop | ||||
| noop | ||||
| noop | ||||
| addx 8 | ||||
| noop | ||||
| addx -1 | ||||
| addx 2 | ||||
| addx 1 | ||||
| noop | ||||
| addx 17 | ||||
| addx -9 | ||||
| addx 1 | ||||
| addx 1 | ||||
| addx -3 | ||||
| addx 11 | ||||
| noop | ||||
| noop | ||||
| addx 1 | ||||
| noop | ||||
| addx 1 | ||||
| noop | ||||
| noop | ||||
| addx -13 | ||||
| addx -19 | ||||
| addx 1 | ||||
| addx 3 | ||||
| addx 26 | ||||
| addx -30 | ||||
| addx 12 | ||||
| addx -1 | ||||
| addx 3 | ||||
| addx 1 | ||||
| noop | ||||
| noop | ||||
| noop | ||||
| addx -9 | ||||
| addx 18 | ||||
| addx 1 | ||||
| addx 2 | ||||
| noop | ||||
| noop | ||||
| addx 9 | ||||
| noop | ||||
| noop | ||||
| noop | ||||
| addx -1 | ||||
| addx 2 | ||||
| addx -37 | ||||
| addx 1 | ||||
| addx 3 | ||||
| noop | ||||
| addx 15 | ||||
| addx -21 | ||||
| addx 22 | ||||
| addx -6 | ||||
| addx 1 | ||||
| noop | ||||
| addx 2 | ||||
| addx 1 | ||||
| noop | ||||
| addx -10 | ||||
| noop | ||||
| noop | ||||
| addx 20 | ||||
| addx 1 | ||||
| addx 2 | ||||
| addx 2 | ||||
| addx -6 | ||||
| addx -11 | ||||
| noop | ||||
| noop | ||||
| noop | ||||
		Reference in New Issue
	
	Block a user