diff options
Diffstat (limited to 'src/main.rs')
-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); } |