• [^] # Re: jour 5

    Posté par . En réponse au journal Advent of Code 2025. Évalué à 3.

    Partie 1:

    I = open(0).read().strip().split("\n\n")
    R = [i.split("-") for i in I[0].split("\n")]
    R = [(int(a),int(b)) for (a,b) in R]
    I = [int(i) for i in I[1].split("\n")]
    print(sum(any(a <= i <= b for (a,b) in R) for i in I))

    Partie 2

    I = open(0).read().strip().split("\n\n")
    R = [i.split("-") for i in I[0].split("\n")]
    R = sorted((int(a),int(b)) for (a,b) in R)
    ans = 0
    t = R[0] # tail
    for r in R[1:]:
     (a,b) = t
     (c,d) = r
     if a <= c <= b: # if can merge
     t = (a, max(b,d)) # extend
     else: # count range
     ans += b-a+1
     t = r
    (a,b) = t
    ans += b-a+1
    print(ans)