advent-of-code-browser-console/2021/day22.js
Joshua Seigler fc6c4c750f day 22
2021-12-22 21:34:06 -05:00

1 line
No EOL
403 B
JavaScript

Q=$("pre").innerText.trim().split`\n`.map(a=>([o,c]=a.split` `,{o,c:c.split`,`.map(b=>b.match(/-?\d+/g).map(a=>+a))})),V=a=>a.reduce((d,[e,a])=>d*(a+1-e),1),I=([d,a],[b,e])=>(j=d>b?d:b,k=a<e?a:e,j>k?null:[j,k]),O=(a,d)=>d.reduce((e,f,b)=>(z=a.map((b,a)=>I(b,f.c[a])),z.includes(null)?e:e+V(z)-O(z,d.slice(b+1))),0),[Q.slice(0,20),Q].map(a=>a.reduce((b,d,e)=>b+("on"==d.o&&V(d.c)-O(d.c,a.slice(e+1))),0))