Bladeren bron

day4 part2

Phil 2 jaren geleden
bovenliggende
commit
812d38b207
1 gewijzigde bestanden met toevoegingen van 51 en 28 verwijderingen
  1. 51 28
      aoc04/src/main.rs

+ 51 - 28
aoc04/src/main.rs

@@ -1,7 +1,10 @@
+use std::env;
 use std::fs::File;
 use std::io::{BufReader,BufRead};
 
 fn main(){
+    let args: Vec<String> = env::args().collect();
+
     let filename = "input.txt";
 
     let file = File::open(filename).unwrap();
@@ -11,6 +14,7 @@ fn main(){
     let mut right_start: i32 = 0;
     let mut right_end: i32 = 0;
     let mut count: i32 = 0;
+    let mut count2: i32 = 0;
     for (index,line) in reader.lines().enumerate(){
         let line = line.unwrap();
         let parts = line.split(",");
@@ -27,36 +31,55 @@ fn main(){
                 right_end = vec[1].parse::<i32>().unwrap();
 
             }
-        }
-        println!("line: {line}");
-        println!("{left_start}");
-        println!("{left_end}");
-        println!("{right_start}");
-        println!("{right_end}");
-        if left_start > right_start{
-            if right_end >= left_end{
-                count += 1;
-                println!("+1");
-                continue;
-            }
-        }else if right_start > left_start{
-            if left_end >= right_end{
-                count += 1;
-                println!("+1");
-                continue;
             }
-        }else if right_start == left_start {
-            if right_end >= left_end{
-                count += 1;
-                println!("+1");
-                continue;
-            }
-                if left_end >= right_end{
-                count += 1;
-                println!("+1");
-                continue;
+            if args[1] == "1"{
+                println!("line: {line}");
+                println!("{left_start}");
+                println!("{left_end}");
+                println!("{right_start}");
+                println!("{right_end}");
+                //part one stuff
+                if left_start > right_start{
+                    if right_end >= left_end{
+                        count += 1;
+                        println!("+1");
+                        continue;
+                    }
+                }else if right_start > left_start{
+                    if left_end >= right_end{
+                        count += 1;
+                        println!("+1");
+                        continue;
+                    }
+                }else if right_start == left_start {
+                    if right_end >= left_end{
+                        count += 1;
+                        println!("+1");
+                        continue;
+                    }
+                        if left_end >= right_end{
+                        count += 1;
+                        println!("+1");
+                        continue;
+                    }
+                }
+            }else{
+                //part2 stuff
+                if left_start <= right_start && left_end >= right_start{  //right start within left
+                    count2 += 1;
+                    println!("right start in left");
+                    continue;
+                }
+                if right_start <= left_start && right_end >= left_start{    //left start within right
+                    count2 += 1;
+                    println!("left start in right");
+                    continue;
             }
         }
     }
-    println!("Result part one: {count}");
+    if args[1] == "1"{
+        println!("Result part one: {count}");
+    }else{
+        println!("Result part two: {count2}");
+    }
 }