blob: 8f95d3d66d429de2b55060d5722a4850400a71f9 (
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
28
29
30
31
32
33
34
35
36
37
38
39
|
pub fn main() {
let txt = std::fs::read_to_string("./input/day5.txt").unwrap();
let mut seeds: Vec<i64> = vec![];
let mut rules: Vec<(i64, i64, i64)> = vec![];
for (i, line) in txt.lines().enumerate() {
if line != "" {
// dodaj u vec
if i != 0 && line.chars().nth(line.len() - 1).unwrap() != ':' {
let br: Vec<i64> = line.split(" ").map(|s| s.parse().unwrap()).collect();
rules.push((br[0], br[1], br[2]));
}
} else {
// obradi
for i in 0..seeds.len() {
for rule in &rules {
if rule.1 <= seeds[i] && seeds[i] < rule.1 + rule.2 {
seeds[i] += rule.0 - rule.1;
break;
}
}
}
rules.clear();
}
if seeds.is_empty() && line != "" {
seeds = line
.split(": ")
.collect::<Vec<_>>()
.get(1)
.unwrap()
.split(" ")
.map(|s| s.parse().unwrap())
.collect();
}
}
println!("{}", 0);
}
|