[CLEANUP] Removed some unused Day13 code

This commit is contained in:
2020-12-14 09:08:44 +01:00
parent 1b1fe127c3
commit 55a53e14f7

View File

@@ -29,9 +29,7 @@ pub fn solve() {
}
// println!("]");
// schedules.sort_by_key(|s| s.bus_id);
schedules.sort_by_key(|s| u64::max_value() - s.bus_id);
let part2 = find_fitting(&schedules);
println!("Day 13 Part 2: {}", part2);
@@ -53,59 +51,18 @@ fn find_fitting_match(s1: &Schedule, s2: &Schedule) -> Schedule {
// We know that the pattern repeats every s1.bus_id * s2.bus_id (and at no other times, since all bus_ids are at least co-prime).
// So all we need to do is find out what offset works:
let match_bus_id = s1.bus_id * s2.bus_id;
let mut res = Schedule { bus_id: 1, offset: 0 };
let mut sol_count = 0;
for mult in 0..s1.bus_id {
let offset = mult * s2.bus_id + s2.offset;
if offset > match_bus_id {
println!("Error finding solution for schedules {:?} and {:?}", s1, s2);
println!(" offset: {}, bus_id: {}", offset, match_bus_id)
}
assert!(offset < match_bus_id, "Offset must not be bigger than the bus_id");
let solution = match_bus_id - offset;
if (solution + s1.offset) % s1.bus_id == 0 {
sol_count += 1;
res = Schedule {
return Schedule {
bus_id: match_bus_id,
offset,
}
}
}
if sol_count == 0 {
println!("Error finding solution for schedules {:?} and {:?}", s1, s2);
panic!("No solution for schedules!");
} else if sol_count > 1 {
println!("Multiple solutions for schedules {:?} and {:?}", s1, s2);
}
return res;
}
fn find_fitting_brute_force(schedules: &Vec<Schedule>) -> u64 {
let mut mult = 1u64;
let mut max_res = 0;
let last_schedule = schedules.last().unwrap();
loop {
let start_t = last_schedule.bus_id * mult - last_schedule.offset;
let mut failed = false;
for schedule in schedules.iter().rev().skip(1) {
if (start_t + schedule.offset) % schedule.bus_id != 0 {
failed = true;
break
}
}
if !failed {
println!("{}", start_t);
max_res += 1;
if max_res > 10 {
return start_t;
}
// return start_t;
}
mult += 1;
}
panic!("Couldn't find match!!!");
}