blob: 0a60ece5df912867b9d195abfceebc57718d99f6 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
use std::io;
fn main() {
let pts = io::stdin()
.lines()
.flatten()
.map(|line| {
let (x, y) = line.split_once(',').unwrap();
(x.parse().unwrap(), y.parse().unwrap())
})
.collect::<Vec<(u64, u64)>>();
let silver: u64 = pts
.iter()
.enumerate()
.flat_map(|(idx, p1)| pts.iter().take(idx).map(move |p2| area(*p1, *p2)))
.max()
.unwrap();
let gold: u64 = 0;
println!("silver: {silver}");
println!("gold: {gold}");
}
fn area((x1, y1): (u64, u64), (x2, y2): (u64, u64)) -> u64 {
(x1.abs_diff(x2) + 1) * (y1.abs_diff(y2) + 1)
}
|