1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | import Data.Maybe data Instruction = X | Y deriving Show instance Eq Instruction where X == X = True Y == Y = True _ == _ = False instance Ord Instruction where Y <= X = False _ <= _ = True data BTree a = Branch a (BTree a) (BTree a) language (p, x, y) = Branch (p, x, y) (language (X:p, x + y, y)) (language (Y:p, x, x + y)) languageExprs = language ([], 1, 1) minLength [] = Nothing minLength x = Just $ flip foldl1 x (\a b -> if length a < length b then a else b) breadthSearch (Branch (p, x, y) lf rt) target | x == target = Just p | x < target && y < target = minLength $ catMaybes $ [breadthSearch lf target, breadthSearch rt target] | otherwise = Nothing main = do value <- getContents print $ breadthSearch languageExprs (read value) |
aW1wb3J0IERhdGEuTWF5YmUKZGF0YSBJbnN0cnVjdGlvbiA9IFggfCBZIGRlcml2aW5nIFNob3cKCmluc3RhbmNlIEVxIEluc3RydWN0aW9uIHdoZXJlCiAgICBYID09IFggPSBUcnVlCiAgICBZID09IFkgPSBUcnVlCiAgICBfID09IF8gPSBGYWxzZQoKCmluc3RhbmNlIE9yZCBJbnN0cnVjdGlvbiB3aGVyZQogICAgWSA8PSBYID0gRmFsc2UKICAgIF8gPD0gXyA9IFRydWUKICAgIApkYXRhIEJUcmVlIGEgPSBCcmFuY2ggYSAoQlRyZWUgYSkgKEJUcmVlIGEpCgpsYW5ndWFnZSAocCwgeCwgeSkgPSBCcmFuY2ggKHAsIHgsIHkpIChsYW5ndWFnZSAoWDpwLCB4ICsgeSwgeSkpIChsYW5ndWFnZSAoWTpwLCB4LCB4ICsgeSkpCmxhbmd1YWdlRXhwcnMgPSBsYW5ndWFnZSAoW10sIDEsIDEpCgptaW5MZW5ndGggW10gPSBOb3RoaW5nCm1pbkxlbmd0aCB4ICA9IEp1c3QgJCBmbGlwIGZvbGRsMSB4IChcYSBiIC0+IGlmIGxlbmd0aCBhIDwgbGVuZ3RoIGIgdGhlbiBhIGVsc2UgYikKCmJyZWFkdGhTZWFyY2ggKEJyYW5jaCAocCwgeCwgeSkgbGYgcnQpIHRhcmdldAogIHwgeCA9PSB0YXJnZXQgPSBKdXN0IHAKICB8IHggPCB0YXJnZXQgJiYgeSA8IHRhcmdldCA9IG1pbkxlbmd0aCAkIGNhdE1heWJlcyAkIFticmVhZHRoU2VhcmNoIGxmIHRhcmdldCwgYnJlYWR0aFNlYXJjaCBydCB0YXJnZXRdCiAgfCBvdGhlcndpc2UgPSBOb3RoaW5nCiAKbWFpbiA9IGRvCiAgdmFsdWUgPC0gZ2V0Q29udGVudHMKICBwcmludCAkIGJyZWFkdGhTZWFyY2ggbGFuZ3VhZ2VFeHBycyAocmVhZCB2YWx1ZSkg
-
upload with new input
-
result: Success time: 0.02s memory: 3720 kB returned value: 0
34
Just [X,X,Y,X,Y,X,Y]
-
result: Runtime error time: 0.01s memory: 3720 kB signal: -1
prog: Prelude.read: no parse



