annotate day19.txt @ 28:5ba34a851816

Implement Day 19 workflows, skip part 2
author IBBoard <dev@ibboard.co.uk>
date Wed, 03 Jan 2024 11:34:54 +0000
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
28
5ba34a851816 Implement Day 19 workflows, skip part 2
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
1 --- Day 19: Aplenty ---
5ba34a851816 Implement Day 19 workflows, skip part 2
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
2
5ba34a851816 Implement Day 19 workflows, skip part 2
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
3 Objects have three values - x, m, a and s.
5ba34a851816 Implement Day 19 workflows, skip part 2
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
4
5ba34a851816 Implement Day 19 workflows, skip part 2
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
5 There are a number of workflows, which have a name and a set of rules.
5ba34a851816 Implement Day 19 workflows, skip part 2
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
6 Each rule specifies a condition and the name of the next step.
5ba34a851816 Implement Day 19 workflows, skip part 2
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
7 The first step is "in". The last steps are "A" (accepted) and "R" (rejected).
5ba34a851816 Implement Day 19 workflows, skip part 2
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
8 Once it matches a rule in a workflow, no further rules in the workflow are evaluated.
5ba34a851816 Implement Day 19 workflows, skip part 2
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
9
5ba34a851816 Implement Day 19 workflows, skip part 2
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
10 The input is a set of workflows, a blank line, and a set of objects.
5ba34a851816 Implement Day 19 workflows, skip part 2
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
11
5ba34a851816 Implement Day 19 workflows, skip part 2
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
12 px{a<2006:qkq,m>2090:A,rfg}
5ba34a851816 Implement Day 19 workflows, skip part 2
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
13 pv{a>1716:R,A}
5ba34a851816 Implement Day 19 workflows, skip part 2
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
14 lnx{m>1548:A,A}
5ba34a851816 Implement Day 19 workflows, skip part 2
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
15 rfg{s<537:gd,x>2440:R,A}
5ba34a851816 Implement Day 19 workflows, skip part 2
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
16 qs{s>3448:A,lnx}
5ba34a851816 Implement Day 19 workflows, skip part 2
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
17 qkq{x<1416:A,crn}
5ba34a851816 Implement Day 19 workflows, skip part 2
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
18 crn{x>2662:A,R}
5ba34a851816 Implement Day 19 workflows, skip part 2
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
19 in{s<1351:px,qqz}
5ba34a851816 Implement Day 19 workflows, skip part 2
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
20 qqz{s>2770:qs,m<1801:hdj,R}
5ba34a851816 Implement Day 19 workflows, skip part 2
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
21 gd{a>3333:R,R}
5ba34a851816 Implement Day 19 workflows, skip part 2
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
22 hdj{m>838:A,pv}
5ba34a851816 Implement Day 19 workflows, skip part 2
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
23
5ba34a851816 Implement Day 19 workflows, skip part 2
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
24 {x=787,m=2655,a=1222,s=2876}
5ba34a851816 Implement Day 19 workflows, skip part 2
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
25 {x=1679,m=44,a=2067,s=496}
5ba34a851816 Implement Day 19 workflows, skip part 2
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
26 {x=2036,m=264,a=79,s=2244}
5ba34a851816 Implement Day 19 workflows, skip part 2
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
27 {x=2461,m=1339,a=466,s=291}
5ba34a851816 Implement Day 19 workflows, skip part 2
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
28 {x=2127,m=1623,a=2188,s=1013}
5ba34a851816 Implement Day 19 workflows, skip part 2
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
29
5ba34a851816 Implement Day 19 workflows, skip part 2
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
30
5ba34a851816 Implement Day 19 workflows, skip part 2
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
31 These five parts would go:
5ba34a851816 Implement Day 19 workflows, skip part 2
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
32
5ba34a851816 Implement Day 19 workflows, skip part 2
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
33 {x=787,m=2655,a=1222,s=2876}: in -> qqz -> qs -> lnx -> A
5ba34a851816 Implement Day 19 workflows, skip part 2
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
34 {x=1679,m=44,a=2067,s=496}: in -> px -> rfg -> gd -> R
5ba34a851816 Implement Day 19 workflows, skip part 2
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
35 {x=2036,m=264,a=79,s=2244}: in -> qqz -> hdj -> pv -> A
5ba34a851816 Implement Day 19 workflows, skip part 2
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
36 {x=2461,m=1339,a=466,s=291}: in -> px -> qkq -> crn -> R
5ba34a851816 Implement Day 19 workflows, skip part 2
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
37 {x=2127,m=1623,a=2188,s=1013}: in -> px -> rfg -> A
5ba34a851816 Implement Day 19 workflows, skip part 2
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
38
5ba34a851816 Implement Day 19 workflows, skip part 2
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
39 The sum of the sum of the x, m, a and s scores for the accepted parts is 19114.
5ba34a851816 Implement Day 19 workflows, skip part 2
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
40
5ba34a851816 Implement Day 19 workflows, skip part 2
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
41 --- Part Two ---
5ba34a851816 Implement Day 19 workflows, skip part 2
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
42
5ba34a851816 Implement Day 19 workflows, skip part 2
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
43 Each value can be in the range 1 to 4000. In the example input,
5ba34a851816 Implement Day 19 workflows, skip part 2
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
44 there are 167409079868000 combinations of values that would be accepted.
5ba34a851816 Implement Day 19 workflows, skip part 2
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
45 No information is given about what this means or how it is calculated.