Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Command: sed -e'y/.#(){},/01[][] /' <input | dc -fdc-p1.dc
- # number registers for speed
- 0 s0
- 1 s1
- 2 s2
- 3 s3
- 4 s4
- 5 s5
- A sA
- _1 s_
- # 10-bit XOR top two on stack
- [
- l0d # (i=bit#) result
- [
- l3Rl4R # argl2 argl1 i result
- l4~ l3R l4~ # (B-lowl2) Brest (A-lowl2) Arest i result
- l3R
- dl_r^l3R*+l4dl3R+r% # (B^A lowl2) (B-rest) (A-rest) i result
- l4R d l2r^ l3R* # (bit<<i) i restl1 restl2 result
- l5R+ # (result+=bit) i restl1 restl2
- rl2+ d lA>L # i+=l2, loop until i == l2l4
- ] dsLx l3Rl4R++s, # l3 result junkl2 junkl1
- ] s^
- ?
- [ lcsm ] sR
- [ lclm>R ] sP
- # Calculate numLights
- [
- zsl xzll- dsl # l = nunLights-l1
- # stack: i junkl1 junkl2 ... junki ...
- [
- rs.
- l1- dl0<D
- ] dsDx s.
- ] sC
- # Push Button: rest button=j i -> rest j i
- [
- lcl1+sc # bitcount++
- rd;b lt l^x st r # test ^= button(j)
- ] sB
- [
- lCx # Calculate l = numLights-l1
- zl1- dsn # n = numButtons; i [buttl1] [buttl2] ... [lights]
- l0Sb # clear button array; stack: i [buttl1] ...
- [
- dsi
- rx # bl1 bl2 ... i ...
- zlil1+- l0r # j=length(buttl1) bits bl1 bl2 ... i [buttl2] ...
- [
- l3R llr- l2r^ l3R+ # bits |= (l1 << l-bl1)
- r l1- dl0<J
- ] dsJx + # bits i [buttl2] ... [lights]
- r dl3R r:b # button[i] = bits; i [buttl2] ...
- l1- dl0<I
- ] dsIx s.
- #'b
- l2ixlAi sT # lights T=targ
- lAd^ sm # min = 10000000000
- ln l2r^l1- # i=l2^numButtons-l1
- [
- l0st # test = l0 (XXX: do this on stack?)
- l0sc # bitcount = l0
- dln # j=numButtons bits=i i
- [
- rl2~ # lowBit rest j i
- l1=B # push button[j]; rest j i
- r l1- dl0<J # j-- rest i (XXX: make test on bits == l0?)
- ] dsJx ++ # l0 l0 i -> i
- ltlT=P
- l1- dl0<I
- ] dsIx s.
- lplm+psp
- ? zl0<M
- ] dsMx
- [Part 1: ]nlpp
Advertisement
Add Comment
Please, Sign In to add comment