Change-Id: I1504cd5e443ff0b28c2d97ae357e5d92c88bba4d Reviewed-on: https://cl.tvl.fyi/c/depot/+/7601 Reviewed-by: sterni <sternenseemann@systemli.org> Tested-by: BuildkiteCI Autosubmit: sterni <sternenseemann@systemli.org>
		
			
				
	
	
		
			14 lines
		
	
	
	
		
			688 B
		
	
	
	
		
			BQN
		
	
	
	
	
	
			
		
		
	
	
			14 lines
		
	
	
	
		
			688 B
		
	
	
	
		
			BQN
		
	
	
	
	
	
| lib ← •Import "../../lib.bqn"
 | ||
| 
 | ||
| i ← (lib.ReadDec¨(<',')⊸lib.SplitOn)¨ •FLines "input"
 | ||
| dim ← 1+⌈´i
 | ||
| cubes ← i∊˜↕dim
 | ||
| 
 | ||
| views ← ⟨0‿1‿2, 1‿2‿0, 2‿0‿1⟩
 | ||
| Exposed ← {(6×+´⥊𝕩)-2×+´views{+´⥊(∧˝˘)2↕𝕨⍉𝕩}¨<𝕩}
 | ||
| Interior ← {(¬𝕩)∧´views{((lib.Xor`∘((∊∧⊢)∨»∘(∊⌾⌽∧⊢)))⎉1)⌾(𝕨⊸⍉)𝕩}¨<𝕩}
 | ||
| Displace ← {⌈´(⥊⊢‿⌽⋈⌜views){F‿a 𝕊 𝕩:((-∘¬∘(»((0⊸=⊣)∧>)⊢)⌈⊢)⎉1)⌾(F a⊸⍉)𝕩}¨<𝕩}
 | ||
| Exterior ← (⊢-○Exposed ¯1⊸=∘(Displace lib._fix)∘(-∘Interior+⊢))
 | ||
| 
 | ||
| •Out "day18.1: "∾•Fmt Exposed cubes
 | ||
| •Out "day18.2: "∾•Fmt Exterior cubes
 |