import Data.List
splitWhen
:: (a
->Bool) -> [a
] -> [[a
]]splitWhen _ [] = []
splitWhen f xs
= first :
(splitWhen f
$ drop 1 $ rest
) where (first
,rest
) = break f xs
incr lst rs@(r1:r2)
| l < r = 0
| difL == [] = difPow
z = r1 == '0'
bigL
= \n
-> difPow
* (read difL
+ n
)incr _ _ = 0
parse
(x
@(x11:x12:x13:x1s
):xs
) = [f1
,f1
+(read x13
)..(recAdd
+ ((read x12
)-1))] ++ (map (+recAdd
) $ parse
$ [x12
]:xs
) recAdd = incr x11 x12
parse
((x11:x12:x1s
):xs
) = [read x11
..(recAdd
+((read x12
)-1))] ++ (map (+recAdd
) $ parse
$ [x12
]:xs
) where recAdd = incr x11 x12
parse
((x11:
_):x2
@(x21:
_):xs
) = read x11 :
(map (+recAdd
) $ parse
$ x2:xs
) where recAdd = incr x11 x21
parse
((x11:
_):xs
) = [read x11
]parse _ = []
aW1wb3J0IERhdGEuTGlzdAoKc3BsaXRXaGVuIDo6IChhLT5Cb29sKSAtPiBbYV0gLT4gW1thXV0Kc3BsaXRXaGVuIF8gW10gPSBbXQpzcGxpdFdoZW4gZiB4cyA9IGZpcnN0IDogKHNwbGl0V2hlbiBmICQgZHJvcCAxICQgcmVzdCkKICB3aGVyZSAoZmlyc3QscmVzdCkgPSBicmVhayBmIHhzCgppbmNyIDo6IFN0cmluZyAtPiBTdHJpbmcgLT4gSW50CmluY3IgbHN0IHJzQChyMTpyMikKICB8IGwgPCByICYmIHogPSAxMF4obGVuZ3RoIHJzKQogIHwgbCA8IHIgPSAwCiAgfCBkaWZMID09IFtdID0gZGlmUG93CiAgfCByZWFkIGRpZlIgPiByID0gYmlnTCAxCiAgfCBvdGhlcndpc2UgPSBiaWdMIDAKICB3aGVyZSBscyA9IGRyb3BXaGlsZSAoPT0nMCcpIGxzdAogICAgICAgIGwgPSByZWFkIGxzIDo6IEludAogICAgICAgIHIgPSByZWFkIHJzIDo6IEludAogICAgICAgIHogPSByMSA9PSAnMCcKICAgICAgICAoZGlmTCxkaWZSKSA9IHNwbGl0QXQgKChsZW5ndGggbHMpIC0gKGxlbmd0aCBycykpIGxzCiAgICAgICAgZGlmUG93ID0gMTBeKGxlbmd0aCBycykKICAgICAgICBiaWdMID0gXG4gLT4gZGlmUG93ICogKHJlYWQgZGlmTCArIG4pCmluY3IgXyBfID0gMAoKcGFyc2UgOjogW1tTdHJpbmddXSAtPiBbSW50XQpwYXJzZSAoeEAoeDExOngxMjp4MTM6eDFzKTp4cykgPSBbZjEsZjErKHJlYWQgeDEzKS4uKHJlY0FkZCArICgocmVhZCB4MTIpLTEpKV0gKysgKG1hcCAoK3JlY0FkZCkgJCBwYXJzZSAkIFt4MTJdOnhzKQogIHdoZXJlIGYxID0gcmVhZCB4MTEKICAgICAgICByZWNBZGQgPSBpbmNyIHgxMSB4MTIKcGFyc2UgKCh4MTE6eDEyOngxcyk6eHMpID0gW3JlYWQgeDExLi4ocmVjQWRkKygocmVhZCB4MTIpLTEpKV0gKysgKG1hcCAoK3JlY0FkZCkgJCBwYXJzZSAkIFt4MTJdOnhzKQogIHdoZXJlIHJlY0FkZCA9IGluY3IgeDExIHgxMgpwYXJzZSAoKHgxMTpfKTp4MkAoeDIxOl8pOnhzKSA9IHJlYWQgeDExIDogKG1hcCAoK3JlY0FkZCkgJCBwYXJzZSAkIHgyOnhzKQogIHdoZXJlIHJlY0FkZCA9IGluY3IgeDExIHgyMQpwYXJzZSAoKHgxMTpfKTp4cykgPSBbcmVhZCB4MTFdCnBhcnNlIF8gPSBbXQoKbWFpbiA9IGludGVyYWN0ICQgKGludGVyY2FsYXRlICJcblxuIikuKG1hcCAoKGludGVyY2FsYXRlICIgIikuKG1hcCBzaG93KS5wYXJzZS4obWFwICQgKGZpbHRlciAoLz0gW10pKS5zcGxpdFdoZW4gKChmbGlwIGVsZW0pICI6LS4iKSkuKHNwbGl0V2hlbiAoPT0nLCcpKSkpLmxpbmVz
MSwzLDcsMiw0LDEKMS0zLDEtMgoxOjU6MgoxMDQtMgoxMDQuLjAyCjU0NSw2NDoxMQ==
1,3,7,2,4,1
1-3,1-2
1:5:2
104-2
104..02
545,64:11