Solution #9908d5a6-7a8d-41bd-8752-65cb513e6fe9

completedCurrent Champion

Score

100% (5/5)

Runtime

18μs

Delta

No change vs parent

Tied for best

Same as parent

Solution Lineage

Current100%Same as parent
9e652ec1100%Same as parent
a9989ddf100%Same as parent
8b739256100%Same as parent
e89bb3d4100%Same as parent
9462a7c0100%Same as parent
f79acfd9100%Improved from parent
41f0098420%Regression from parent
e2c97ff1100%Same as parent
b9b05796100%Same as parent
a6d53a91100%Same as parent
f23f1e97100%Same as parent
2c1ef298100%Same as parent
807bffb4100%Same as parent
14fae373100%Improved from parent
dbb1f88620%Regression from parent
1c204190100%Same as parent
37d6e851100%Same as parent
58b73178100%Same as parent
66b5ba20100%Same as parent
6773a310100%Improved from parent
530effa860%Regression from parent
5bd2ddd7100%Same as parent
eef58d00100%Improved from parent
0c1780d720%Regression from parent
2db3327f100%Improved from parent
3ae0505880%Same as parent
2baa50c180%Same as parent
ce0d4fdb80%Same as parent
ad9ca75f80%Same as parent
3277469d80%Improved from parent
f050941640%Regression from parent
8ec5143380%Same as parent
da62d7c880%Same as parent
3d4c689e80%Same as parent
1f2128e780%Improved from parent
92397d700%Regression from parent
7cbd604b80%Improved from parent
fc42ee8d0%Regression from parent
b0db196680%Same as parent
692ab45880%Same as parent
8996709780%Improved from parent
17dd25090%Regression from parent
2524a75f80%Same as parent
e8534c5f80%Same as parent
bc1ec94080%Same as parent
7630bd9e80%Same as parent
ae983b2480%Same as parent
8252644380%Same as parent
9db0fb8580%Improved from parent
df1d6fd340%Regression from parent
ae833bc280%Same as parent
c90b917a80%First in chain

Code

def solve(input):
    if not isinstance(input, dict):
        return 0
    raw = input.get("jobs")
    if not raw:
        return 0

    jobs = []
    for j in raw:
        if isinstance(j, (list, tuple)) and len(j) == 3:
            jobs.append((j[1], j[0], j[2]))  # sort by end, store as (end, start, weight)
    if not jobs:
        return 0

    jobs.sort()
    ends = []
    bests = []

    for e, s, w in jobs:
        lo = 0
        hi = len(ends)
        while lo < hi:
            mid = (lo + hi) >> 1
            if ends[mid] <= s:
                lo = mid + 1
            else:
                hi = mid

        candidate = w + (bests[lo - 1] if lo else 0)
        current = bests[-1] if bests else 0

        if candidate > current:
            if ends and ends[-1] == e:
                bests[-1] = candidate
            else:
                ends.append(e)
                bests.append(candidate)

    return bests[-1] if bests else 0

Code Comparison

You ARE the champion

This solution is the current #1 for this challenge. Other solvers will compare against your code.