URL: https://linuxfr.org/forums/programmationautre/posts/advent-of-code-jour-19 Title: Advent of Code, jour 19 Authors: Guillaume.B Date: 2023年12月19日T12:49:12+01:00 License: CC By-SA Tags: aoc2023, code, aoc, avent et calendrier Score: 1 Pour ce problème, nous avons deux choses. Tout d'abord, des pièces de machine qui ont chacune 4 évaluations: une évaluation x, une évaluation m, un évaluation a et une évaluation s. Chaque évaluation est représenté par un entier. Par exemple, une pièce peut avoir l'évaluation suivante: `{x=787,m=2655,a=1222,s=2876}` Ensuite, viennent les workflows. Un workflow est une série de tests sur les évaluations d'une pièce. Un résultat positif pour un test peut soit faire accepter la pièce, soit la faire rejeter, soit commencer un nouveau workflow. Si le test échoue, on passe au test suivant. Exemple `px{a<2006:qkq,m>2090:A,rfg}` Le workflow s'appelle px. Dans le premier test, on compare l'évaluation "a" de la pièce à 2006. Si `a<2006`, on commence le worflow nommé qkq. Sinon on passe au test suivant. Dans le second test, on compare l'évaluation "m" de la pièce à 2090. Si `m>2090`, on accepte la pièce sinon on démarre le workflow rfg. Voici l'exemple complet. ``` px{a<2006:qkq,m>2090:A,rfg} pv{a>1716:R,A} lnx{m>1548:A,A} rfg{s<537:gd,x>2440:R,A} qs{s>3448:A,lnx} qkq{x<1416:a,crn} crn{x>2662:A,R} in{s<1351:px,qqz} qqz{s>2770:qs,m<1801:hdj,r} gd{a>3333:R,R} hdj{m>838:A,pv} {x=787,m=2655,a=1222,s=2876} {x=1679,m=44,a=2067,s=496} {x=2036,m=264,a=79,s=2244} {x=2461,m=1339,a=466,s=291} {x=2127,m=1623,a=2188,s=1013} ``` Les premières lignes sont des worflows et les dernières lignes sont des pièces avec leurs évaluations. Le but de la partie 1, est de trouver les pièces qui sont acceptés par les worflows (en démarrant par le workflow "in"). On renvoit la somme des évaluations de chaque pièce acceptée. Dans la partie 2, on fait varier chaque évaluation de 1 à 4000 et on veut compter le nombre de pièces avec ces évaluations qui seront acceptés. Ca fait 4000^4 = 256 mille millards de possibilités. Donc, on ne peut pas s'amuser à générer toutes les possibilités de pièce.

AltStyle によって変換されたページ (->オリジナル) /