fork download
  1. (#)=elem
  2. (%)=filter.(/=)
  3. m!s=g""0.zip[0..]where g _ p _[]=p>8;g i p r(c:d)|p>8=1<2|'P':[k]<-c,k#x,length i<s=g(k:i)p((p,k%x):r)d|'D':[k]<-c,k#i=g(k%i)p((p,k:x):r)d|'C':q@[k,l]<-c,k#i,l#i,[y]<-[f|[d,e,f]<-m,q==[d,e]||q==[e,d]]=g(y:k%(l%i))p r d|'G':n<-c,y<-read n,['A'..]!!y#i=g i y r d|1<2=g i p r d where Just x=lookup p r
  4.  
  5. main = print $ and $ map (\(r,a,b,c,d) -> r==(b!c) a d) tc
  6.  
  7. tc :: [(Bool,[String],[String],Int,[String])]
  8. tc =
  9. [
  10. (True, ["J","","","","","","","","",""], [], 9, ["PJ","G9"]),
  11. (False, ["","J","","","","","","","",""], [], 9, ["PJ","G9"]),
  12. (True, ["J","","","","","","","","",""], [], 9, ["PJ","PJ","G9"]),
  13. (False, ["J","","","","","","","","",""], [], 9, ["PJ"]),
  14. (False, ["J","","","","","","","","",""], [], 9, ["G9"]),
  15. (True, ["J","","","","","","","","",""], [], 9, ["G9","PJ","G9"]),
  16. (True, ["J","","","","","","","","",""], [], 1, ["PJ","G9"]),
  17. (False, ["J","","","","","","","","",""], [], 0, ["PJ","G9"]),
  18. (False, ["J","","","","","","","","",""], [], 0, ["PJ","DJ","G9"]),
  19. (False, ["J","","","","","","","","",""], [], 9, ["PJ","PJ","DJ","G9"]),
  20. (True, ["J","","","","","","","","",""], [], 9, ["PJ","DJ","PJ","G9"]),
  21. (True, ["J","","","","","","","","",""], [], 9, ["PJ","DJ","PJ","G9"]),
  22. (True, ["B","CJ","","","","","","","",""], [], 2, ["PB","G1","DB","PC","PJ","G9"]),
  23. (False, ["B","CJ","","","","","","","",""], [], 2, ["PB","G1","DB","PB","PC","PJ","G9"]),
  24. (True, ["AJ","","","","","","","","",""], [], 2, ["PA","PJ","G9"]),
  25. (True, ["B","D","","J","","","","","",""], [], 2, ["PB","G1","PD","G3","DB","PJ","G9"]),
  26. (False, ["B","D","","J","","","","","",""], [], 2, ["PB","G1","PD","G2","DB","PJ","G9"]),
  27. (False, ["B","D","","J","","","","","",""], [], 2, ["PB","G1","PD","G3","PJ","G9"]),
  28. (False, ["B","D","J","C","","","","","",""], [], 2, ["PB","G1","PD","G3","PJ","G9"]),
  29. (True, ["AJ","","","","","","","","",""], [], 2, ["PA","PJ","G9","G0"]),
  30. (False, ["ADJ","","","","","","","","",""], [], 3, ["PA","PD","PJ","G3","DJ","G0","PJ","G9"]),
  31. (True, ["ADJ","","","","","","","","",""], [], 3, ["PA","PD","PJ","G3","DJ","G0","G3","PJ","G9"]),
  32. (False, ["ADJ","","","","","","","","",""], [], 3, ["PA","PD","PJ","G3","DJ","G0","DD","G3","PJ","G9"]),
  33. (True, ["ADJ","","","","","","","","",""], [], 3, ["PA","PD","PJ","DD","G3","DJ","G0","DD","G3","PJ","G9"]),
  34. (False, ["ADJ","","","","","","","","",""], [], 1, ["PA","DA","DA","PD","PJ","G9"]),
  35. (True, ["ADJ","","","","","","","","",""], [], 1, ["PA","DA","DA","PJ","G9"]),
  36. (False, ["ABCDEFGHIKLMNOPQRSTUVWXYZ","J","","","","","","","",""], [], 26, ["PA","PB","PC","PD","PE","PF","PG","PH","PI","PJ","PK","PL","PM","PN","PO","PP","PQ","PR","PS","PT","PU","PV","PW","PX","PY","PZ","G9"]),
  37. (True, ["ABCDEFGHIJKLMNOPQRSTUVWXYZ","","","","","","","","",""], [], 26, ["PA","PB","PC","PD","PE","PF","PG","PH","PI","PJ","PK","PL","PM","PN","PO","PP","PQ","PR","PS","PT","PU","PV","PW","PX","PY","PZ","G9"]),
  38. (False, ["YZJ","","","","","","","","",""], [], 2, ["PY","PZ","CYZ","PJ","G9"]),
  39. (True, ["YZJ","","","","","","","","",""], ["YZW"], 2, ["PY","PZ","CYZ","PJ","G9"]),
  40. (True, ["YZJ","","","","","","","","",""], ["YZW"], 2, ["PY","PZ","CYZ","PJ","CWJ","G9"]),
  41. (False, ["XYZJ","","","","","","","","",""], ["YZW"], 2, ["PY","PZ","CYZ","PX","PJ","G9"]),
  42. (False, ["XYZJ","","","","","","","","",""], ["YZW"], 2, ["PY","PZ","CYZ","PX","DY","DZ","PJ","G9"]),
  43. (True, ["XYZJ","","","","","","","","",""], ["YZW"], 2, ["PY","PZ","CYZ","PX","DW","PJ","G9"]),
  44. (True, ["YZ","","","","","","","","",""], ["YZJ"], 2, ["PY","PZ","CYZ","G9"]),
  45. (False, ["YZ","","","","","","","","",""], ["YZJ"], 2, ["CYZ","G9"]),
  46. (True, ["YZ","","","","","","","","",""], ["YZJ"], 2, ["PY","PZ","CYZ","CYZ","G9"]),
  47. (False, ["YZ","","","","","","","","",""], ["YZJ"], 2, ["PY","PZ","CYZ","DJ","CYZ","G9"]),
  48. (False, ["YZ","","","","","","","","",""], ["YZJ"], 2, ["PY","PZ","CYZ","DJ","PY","PZ","CYZ","G9"]),
  49. (False, ["WZ","","","","","","","","",""], ["YZJ"], 2, ["PW","PZ","CYZ","G9"]),
  50. (False, ["WZ","","","","","","","","",""], ["YZJ"], 2, ["PY","PZ","CYZ","G9"]),
  51. (True, ["YZ","","","","","","","","",""], ["YZJ"], 2, ["PY","PZ","CZY","G9"]),
  52. (True, ["YZ","","","","","","","","",""], ["ZYJ"], 2, ["PY","PZ","CYZ","G9"]),
  53. (False, ["YZ","","","","","","","","",""], ["YZJ"], 1, ["PY","PZ","CYZ","G9"]),
  54. (False, ["YZ","","","","","","","","",""], ["YZJ"], 1, ["PY","PZ","CYZ","PY","PZ","CYZ","G9"]),
  55. (False, ["YZ","","","","","","","","",""], ["YZJ"], 1, ["PY","PZ","CYZ","PJ","G9"]),
  56. (False, ["YZ","","","","","","","","",""], ["YZJ"], 1, ["PJ","G9"]),
  57. (True, ["BW","UV","","","","","","","",""], ["BUR","WVS","RSJ"], 2, ["PB","PW","G1","DW","PU","CBU","DR","PW","PV","CVW","PR","CRS","G9"]),
  58. (False, ["BW","AUV","","","","","","","",""], ["BUR","WVS","RSJ"], 2, ["PB","G1","PU","CBU","DR","PA","PB","G0","DA","PW","G1","PV","CVW","PR","CRS","G9"]),
  59. (True, ["BCW","AUV","","","","","","","",""], ["CUR","WVS","RSJ"], 2, ["PB","PC","G1","DB","PU","CCU","DR","PC","PA","PB","G0","DA","PW","G1","DB","PV","CVW","PR","CRS","G9"]),
  60. (False, ["BCW","UV","","","","","","","",""], ["CUR","WVS","RSJ"], 2, ["PB","PC","G1","DB","PU","CCU","DR","PC","PA","PB","G0","DA","PW","G1","DB","PV","CVW","PR","CRS","G9"]),
  61. (False, ["BCW","AUV","","","","","","","",""], ["CUR","WVS","RSJ"], 2, ["PB","PC","G1","DB","PU","CCU","PA","PB","G0","DA","PW","G1","DB","PV","CVW","PR","CRS","G9"]),
  62. (False, ["BCW","AUV","","","","","","","",""], ["CUR","WVS","RSJ"], 2, ["PB","PC","G1","DB","PU","CCU","DR","PA","G0","DA","PW","G1","DB","PV","CVW","PR","CRS","G9"]),
  63. (False, ["BCW","AUV","","","","","","","",""], ["CUR","WVS","RSJ"], 2, ["PB","PC","G1","DB","PU","CCU","DR","PB","G0","DA","PW","G1","DB","PV","CVW","PR","CRS","G9"]),
  64. (False, ["BCW","AUV","","","","","","","",""], ["CUR","WVS","RSJ"], 2, ["PB","PC","G1","DB","PU","CCU","DR","PA","PB","G0","DA","G1","DB","PV","CVW","PR","CRS","G9"]),
  65. (False, ["BCW","AUV","","","","","","","",""], ["CUR","WVS","RSJ"], 2, ["PB","PC","G1","DB","PU","CCU","DR","PA","PB","G0","DA","PW","G1","DB","CVW","PR","CRS","G9"]),
  66. (True, ["BFK","LG","M","N","O","CDE","PQR","U","W",""], ["BPT","CQS","TSH","HUI","IWV","VFA","GRX","MXZ","ANY","YZJ"], 5, ["PB","PF","PK","G1","PL","PG","G6","DB","DK","DL","G5","PC","PD","PE","G6","DF","G2","PM","G6","DM","DC","G3","PN","G4","PO","G6","DN","DO","DD","DE","PB","PP","CBP","PC","PQ","CCQ","CTS","G7","PU","CUH","G8","PW","CWI","G6","PF","CVF","PR","PM","PN","CGR","CMX","CAN","CYZ","G9"]),
  67. (False, ["BFK","LG","M","N","O","CDE","PQR","U","W",""], ["BPT","CQS","TSH","HUI","IWV","VFA","GRX","MXZ","ANY","YZJ"], 5, ["PB","PF","PK","G1","PL","PG","G6","DB","DK","DL","G5","PC","PD","PE","G6","DF","G6","DM","DC","G3","PN","G4","PO","PM","G6","DN","DO","DD","DE","PB","PP","CB","PP","CPQ","CCQ","CTS","G7","PU","CUH","G8","PW","CWI","G6","PF","CVF","PR","PM","PN","CGR","CMX","CAN","CYZ","G9"])
  68. ]
Success #stdin #stdout 0s 4720KB
stdin
Standard input is empty
stdout
True