fork download
  1. import Control.Applicative
  2. main = interact $ show . (([0..9]>>[0])%) . map (read . pure)
  3.  
  4. g(0:r)=r++[0]
  5. g(3:x:r)|0<x,x<3=0:0:g r|1<3=3:g(x:r)
  6. g(x:r)=x:g r
  7. g r=r
  8. v%(x:r)=g(init v++[x])%r
  9. v%[]|v==g v=foldr([id,(+)1,(*)2,(-)1]!!)0v|1<3=g v%[]
Success #stdin #stdout 0s 4788KB
stdin
10100000200310310113030200221013111213110130332101
stdout
22