Fixed the bug with the manhattan norm, day6 part1 now working

This commit is contained in:
attila 2018-12-07 20:14:58 +01:00
parent 940ccdedbb
commit 0c98f72052

View File

@ -31,11 +31,11 @@ fn main() {
for j in min_y..(max_y+1) { for j in min_y..(max_y+1) {
let mut winning_x = 0; let mut winning_x = 0;
let mut winning_y = 0; let mut winning_y = 0;
let mut min_dist = std::i32::MAX;
let mut second_min_dist = std::i32::MAX; let mut second_min_dist = std::i32::MAX;
let mut min_dist = std::i32::MAX;
for (x,y) in &anchorpoints{ for (x,y) in &anchorpoints{
let dist = (x - i + y - j).abs(); let dist = (x - i).abs() + (y - j).abs();
if dist < min_dist{ if dist < min_dist{
min_dist = dist; min_dist = dist;
@ -47,19 +47,17 @@ fn main() {
} }
if min_dist != second_min_dist { if min_dist != second_min_dist {
*points_nearest_to_anchor.entry((winning_x,winning_y)).or_insert(1) += 1; *points_nearest_to_anchor.entry((winning_x,winning_y)).or_insert(0) += 1;
} }
} }
} }
let mut largest_area = 0; let mut largest_area = 0;
for area in points_nearest_to_anchor.values() { for ((x,y), area) in points_nearest_to_anchor {
if *area > largest_area { if area > largest_area && x > min_x && x < max_x && y > min_y && y < max_y {
largest_area = *area; largest_area = area;
} }
println!("{}", *area);
} }
println!("{}", largest_area); println!("{}", largest_area);