20 lines
564 B
Rust
20 lines
564 B
Rust
use std::ops::Add;
|
|
|
|
pub fn solve(puzzle: String) -> u64 {
|
|
let mut solution: u64 = 0;
|
|
|
|
let points = puzzle
|
|
.lines()
|
|
.map(|line| line.split_once(',').unwrap())
|
|
.map(|(left, right)| (left.parse::<u64>().unwrap(), right.parse::<u64>().unwrap()))
|
|
.collect::<Vec<(u64, u64)>>();
|
|
|
|
points.iter().enumerate().for_each(|(i, point1)| {
|
|
points.iter().skip(i).for_each(|point2| {
|
|
solution = solution.max(point1.0.abs_diff(point2.0).add(1) * point1.1.abs_diff(point2.1).add(1));
|
|
})
|
|
});
|
|
|
|
solution
|
|
}
|