diff options
author | curly <curly@infernal.garden> | 2023-12-03 18:21:59 -0700 |
---|---|---|
committer | curly <curly@infernal.garden> | 2023-12-03 18:21:59 -0700 |
commit | 67441a4bc8728564e32892c29d86d97fa2496a84 (patch) | |
tree | 777cc3e06b0e82f1d9657bc14b98d0e247fab1e2 /src | |
parent | 9be0f0c630af6aa91b679a09f19aaa6f505c0215 (diff) | |
download | aoc23-02-67441a4bc8728564e32892c29d86d97fa2496a84.tar.gz aoc23-02-67441a4bc8728564e32892c29d86d97fa2496a84.tar.bz2 aoc23-02-67441a4bc8728564e32892c29d86d97fa2496a84.zip |
Diffstat (limited to 'src')
-rw-r--r-- | src/main.rs | 30 |
1 files changed, 25 insertions, 5 deletions
diff --git a/src/main.rs b/src/main.rs index b2c7486..ec85843 100644 --- a/src/main.rs +++ b/src/main.rs @@ -13,6 +13,7 @@ const BLUEMAX: u32 = 14; fn main() { let f = fs::read_to_string("input").unwrap(); let mut count = 0; + let mut count2 = 0; for line in f.split("\n") { @@ -54,6 +55,10 @@ fn main() { // println!("process data"); let mut failed = false; let mut game = 0; + let mut red = 0; + let mut green = 0; + let mut blue = 0; + for entry in data { game = entry.0; @@ -61,33 +66,48 @@ fn main() { for e in entry.1 { match e.1 { Color::Blue => { + if e.0 > blue { + // println!("{}", e.0); + blue = e.0; + } + if e.0 > BLUEMAX { failed = true; - continue; } }, Color::Green => { + if e.0 > green { + green = e.0; + } + if e.0 > GREENMAX { failed = true; - continue; } }, Color::Red => { + if e.0 > red { + red = e.0; + } + if e.0 > REDMAX { + failed = true; - continue; } }, } } } + // println!("{}", red * green * blue); + count2 += red * green * blue; + if failed == false { // println!("one"); count += game; } - // println!("{}\n", count); + println!("\n"); } - println!("{}", count); + println!("\npart one:{}", count); + println!("part two:{}", count2); } |