Mercurial > repos > other > adventofcode2023
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 |
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. |