{"group":{"id":1,"name":"Community","lockable":false,"created_at":"2012-01-18T18:02:15.000Z","updated_at":"2026-04-06T14:01:22.000Z","description":"Problems submitted by members of the MATLAB Central community.","is_default":true,"created_by":161519,"badge_id":null,"featured":false,"trending":false,"solution_count_in_trending_period":0,"trending_last_calculated":"2026-04-06T00:00:00.000Z","image_id":null,"published":true,"community_created":false,"status_id":2,"is_default_group_for_player":false,"deleted_by":null,"deleted_at":null,"restored_by":null,"restored_at":null,"description_opc":null,"description_html":null,"published_at":null},"problems":[{"id":54770,"title":"Count the peaceful queens","description":"In a 5x5 chessboard with a queen of one color (white, say) on the perimeter, one can place 12 black queens on the board such that none of the black queens can attack the white one (or vice versa). \r\nWrite a function that returns the number of queens that cannot attack a queen of the other color placed anywhere on the perimeter of an x chessboard.  \r\n","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.4333px; min-height: 0px; white-space: normal; color: rgb(0, 0, 0); font-family: Menlo, Monaco, Consolas, monospace; font-style: normal; font-size: 14px; font-weight: 400; text-decoration: rgb(0, 0, 0); white-space: normal; \"\u003e\u003cdiv style=\"block-size: 328.7px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 164.35px; transform-origin: 407px 164.35px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 85.1833px 8px; transform-origin: 85.1833px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eIn a 5x5 chessboard with a \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://en.wikipedia.org/wiki/Queen_(chess)#Placement_and_movement\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003equeen\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 272.283px 8px; transform-origin: 272.283px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e of one color (white, say) on the perimeter, one can place 12 black queens on the board such that none of the black queens can attack the white one (or vice versa). \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 372.883px 8px; transform-origin: 372.883px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eWrite a function that returns the number of queens that cannot attack a queen of the other color placed anywhere on the perimeter of an \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"font-family: \u0026quot;STIXGeneral\u0026quot;, \u0026quot;STIXGeneral-webfont\u0026quot;, serif; font-style: italic; font-weight: 400; color: rgb(0, 0, 0);\"\u003en\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 3.5px 8px; transform-origin: 3.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003ex\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"font-family: \u0026quot;STIXGeneral\u0026quot;, \u0026quot;STIXGeneral-webfont\u0026quot;, serif; font-style: italic; font-weight: 400; color: rgb(0, 0, 0);\"\u003en\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 42.0083px 8px; transform-origin: 42.0083px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e chessboard. \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 1.94167px 8px; transform-origin: 1.94167px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 226.7px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 113.35px; text-align: left; transform-origin: 384px 113.35px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cimg class=\"imageNode\" style=\"vertical-align: baseline;width: 764px;height: 221px\" src=\"data:image/png;base64,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\" data-image-state=\"image-loaded\" width=\"764\" height=\"221\"\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function y = peacefulQueens(n)\r\n  y = f(n);\r\nend","test_suite":"%%\r\nn = 5;\r\nassert(isequal(peacefulQueens(n),12))\r\n\r\n%%\r\nn = 8;\r\nassert(isequal(peacefulQueens(n),42))\r\n\r\n%%\r\nn = 64;\r\nassert(isequal(peacefulQueens(n),3906))\r\n\r\n%%\r\nn = 4096;\r\nassert(isequal(peacefulQueens(n),16764930))\r\n\r\n%%\r\nn = 262144;\r\nassert(isequal(peacefulQueens(n),68718690306))\r\n\r\n%%\r\nn = 2097152;\r\nassert(isequal(peacefulQueens(n),4398040219650))\r\n\r\n%%\r\nn = 16777216;\r\nassert(isequal(peacefulQueens(n),281474926379010))\r\n\r\n%%\r\nm = randi(1000)+4;\r\ny = sum(arrayfun(@peacefulQueens,3:m));\r\nassert(isequal(y,polyval([1 3 2 0],m-2)/3))\r\n\r\n%%\r\nfiletext = fileread('peacefulQueens.m');\r\nillegal = contains(filetext, 'assignin') || contains(filetext, 'assert') || contains(filetext,'switch') || contains(filetext,'regexp'); \r\nassert(~illegal)\r\n","published":true,"deleted":false,"likes_count":2,"comments_count":0,"created_by":46909,"edited_by":46909,"edited_at":"2022-07-02T17:52:57.000Z","deleted_by":null,"deleted_at":null,"solvers_count":76,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2022-07-02T02:16:14.000Z","updated_at":"2026-01-26T15:48:57.000Z","published_at":"2022-07-02T02:17:02.000Z","restored_at":null,"restored_by":null,"spam":null,"simulink":false,"admin_reviewed":false,"description_opc":"{\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eIn a 5x5 chessboard with a \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://en.wikipedia.org/wiki/Queen_(chess)#Placement_and_movement\\\"\u003e\u003cw:r\u003e\u003cw:t\u003equeen\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e of one color (white, say) on the perimeter, one can place 12 black queens on the board such that none of the black queens can attack the white one (or vice versa). \u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eWrite a function that returns the number of queens that cannot attack a queen of the other color placed anywhere on the perimeter of an \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:customXml w:element=\\\"equation\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"displayStyle\\\" w:val=\\\"false\\\"/\u003e\u003cw:attr w:name=\\\"altTextString\\\" w:val=\\\"n\\\"/\u003e\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003en\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003ex\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:customXml w:element=\\\"equation\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"displayStyle\\\" w:val=\\\"false\\\"/\u003e\u003cw:attr w:name=\\\"altTextString\\\" w:val=\\\"n\\\"/\u003e\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003en\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e chessboard. \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"221\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"764\\\"/\u003e\u003cw:attr w:name=\\\"verticalAlign\\\" w:val=\\\"baseline\\\"/\u003e\u003cw:attr w:name=\\\"altText\\\" w:val=\\\"\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId1\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\",\"relationship\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"target\":\"/media/image1.png\",\"relationshipId\":\"rId1\"}]},{\"partUri\":\"/media/image1.png\",\"contentType\":\"image/png\",\"content\":\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA/oAAAEmCAYAAADShevcAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAElsSURBVHhe7d0LsBX1lfj7tUEYEBUIRomJBiT4mEQ0I17FGyOjUbRUokVEM1JGjQOTKTS5EYwa1NIx6qhUMo4mgRA1FhMjSmVixWJQ4x/LvIwwMSQzIlz0CIkP4gNElIviub1Or1M0v9177+69+/Tjx/dTteus3gczfX6ze+3f+j26a90BAQAAAAAAXuhnPwEAAAAAgAco9AEAAAAA8AiFPgAAAAAAHqHQBwAAAADAIxT6AAAAAAB4hEIfAAAAAACPUOgDAAAAAOARCn0AAAAAADxCoQ8AAAAAgEco9AEAAAAA8AiFPgAAAAAAHqHQBwAAAADAIxT6AAAAAAB4hEIfAAAAAACPUOgDAAAAAOARCn0AAAAAADxCoQ8AAAAAgEco9AEAAAAA8AiFPgAAAAAAHqHQBwAAAADAIxT6AAAAAAB4hEIfAAAAAACPUOgDAAAAAOARCn0AAAAAADxS6w5YDADYxXx63Fh55o//rx1Vz5BBIlu22kEFcf7Fqvr5H3HYJ+T3K9fYEXxATi4W518scnK2KPQBYBdWq9Vk21I7qKCBk0SWz7ODCho/Q2j/AvnQ/nTj/EJOLhY5uVjk5GzlunRfRyk1gVX1tcfg+Per8uL8i31V/fz1+gUAAABQfrnO6GuxwChZcRilLBajlCgj8nKxyMvFIi+jbMjJxSInF4ucnC1uxgcAAAAAgEco9AEAAAAA8AiFPgAAAAAAHqHQBwAAAADAIxT6AAAAAAB4hEIfAAAAAACPUOgDAAAAAOARCn0AAAAAADxCoQ8AAAAAgEco9AEAAAAA8AiFPgAgc0+sFLntgfDni6/am8hN1dt/xWqRRY+HP7tesTcrhM8/ymZlV3BNLQtf+rmsmlXB+T/ydPjSvIB80f7VVOsOWNznarWabFtqBxU0cJLI8nl2UEHjZwjtXyAf2j/HdIGcZJWXtRN5/Y9EfvUnkdffsjcdRx4kcvM/ihw/zt7IAHkhVPX2107kvY8FHcjnGp//QfuLXDY1/Duy4kP7k5f9klVO3vh28JlcGBRmy0VWr7c3HSP2EvnyqSI3XGRvZCCrnPBmcB394GGRp55tPFg2ZJDIeSeKTJ9sb2SAvnKI9m9P2XJydWf0dxsm/fb/J+k/9ibZbfz/kQEnvCkDTu6W3Y57oedY36/tfYr9YwBAX5l5e/jl/NCvGxc5SmcBTpotcvqcsBOKbFS9/bVAnnZTOFPU7Py1WJkxV+SqBWEntCz4/KNsdMZ+9Hkid/y0cZGv9PN6y/0iY88v1yy/XitnXh2uPmi2ImbLVpH5QTE65ZowfyAbtL8/Klno14YeI7tN+L30P/R70m/0FVL70MSewr/nd4NH9Rzr+7v93RLp/6m7e94HAGRPixb9ok9DOwSf+ZodoCNVb38t3LVATkPP/+Lb7KBgfP5RNlqc6YCSFmFJaTGn/42uTCmaXh+aF9Kevw4A6sogdIb290vlCv2eGfyjf9NT0CfRb78Lemb6dXAAAJCdOXeFnYIoXZ58x6Uia+4Nl9/pz4VXhsuuo3SWSfcwo31Vb//5D4UzR1F6npefI/LgdeHyU/1548UiH9/X/oHRjqXu4S8Sn3+UjV4XujrGpdfUo7eGn8kNi8N46kT7ZYTOzBZJ78ehBaNr+mki8y4Lc8KT3wnjk4+yX0Z8M7gm0T7a3z+VKvR1qb7O1Ed1v9slH2z4T9m+5krZ/uxX5IOX7ul5z9X/b79nEQAgC7rkM0qLmSVBJ1M7Bb2Fmf7UDuUvg86Buzd57iKWMHei6u3vzoTruf54TnC+J4iMGhm+pz+1Q7n4+vpi+c6fWVAQPv8om7hCS4t63YPf+/kbtkcY6wCUDgBE9QygLbODAsz/uQURWlTqHvDee3MMHhzGOgCo11qUnr87+IbkaH//VKrQ19n8KC3o339ytGx/5iz54IWb5YP135ftf7qw5z0t+KNqex4h/Uaea0cAgE7ELVd+LOhQaicyjr6/YJYdGN0fuugJO0AqVW//uNl49/xc2rGM0qWlRc3q8/lH2eigkVukXz2tfoApSgcAegu4Xt9ebEEB3CJRC0n3/KJmn7NjUK3XPRW+kVvRaH//VKbQ7ynybR9+j/c39hT0jWjB3/3GzhmPWX0AyMbKtRYYnXUdOdwOGtAOgdtpWNXkRlForOrt7/7f1fMavpcdNKCz++6sfterFuSMzz/K5rmYz9IlZ1nQxJTPWmBWrbMgZ+42HnV2zPaCqE3vipxxrB2Yv/zVAqRC+/upMoW+LtuP2v7Cv1rU2PYu59/sNkxqQw6xAwBAu1asscBMnmBBCyd+2gKz+s8WIJWqt/9fXrPAuOfVyERndnLtSxbkjM8/yuZ/YwbPGq0wiTrbKfR1pUwRW0rWOteCDuq1GvxTE4+wwOj5l+mpHFVB+/upOkv3o7P5AV2m30r3a//VM/Mf1XOHfgBAR/SmPVHDhljQwrA9LTCvb7IAqVS9/d1ZQ/e8Ghk40AKz+V0LcsbnH2XjFmojhlrQwtCYz+46ZyAuD+7gQu99OloZursFEa++YQESo/39VIlCP/aO+U4B30j3e06hP+jjFgEA2uU+L3zfD1nQgtv5jFsuiNaq3v7uo5uSFiX7jbDANHtGeF/i84+ycbeBjNrHghbiZv2LeExa1wYLUoqbdV7H8vHUaH8/VaPQdx6lF3dX/Ybcf+usDAAApPPKmxa04b33LDBDBlmAxKre/p0s69y42QJTxPnz+UcZbXU+Wxu3WFARrG4pFu3vp2os3U/4zPxE/ibhWhQAQKy4m44lXar31jsWmL0TzuRih6q3f9wMUNJO5jvbLDCDnKX8eeDzjzJyZ/C3OtdKI3H78ZOuUMnSR/e2IKW4gcOkK4SwA+3vp2oU+u4++wEpZuWdf9u96SmLAADtch+psyVpp9KZkR3l/O8gmaq3v3v+SW1wZtOT7iPNGp9/lM2oj1hgNiW8oV7cfvyDnadb5OEA51pIOvi3yRk8Uwcyp5ca7e+nShT63W89Y5FJsfz+PWGpPgBk7eADLDArVlnQwv3Oc54PG2MBUql6+7sz2cv+YEELTz1rgRmznwU54/OPsjngwxaYJ1Za0IL77HTV6lGRfcG9/0bS+1csc0oEFbdqCM3R/n6q5Ix+jyTFfvBvBu7p7O93nq0PAEjPXSY6/2ELmtCO54vOc88/7zyDF8lUvf3dZaJxxYZLO57u+X/WedxeXvj8o2ziVsnc/YgFTcxdZIGZWtDDqeKWey963IIm7vuFBebkoyxAKrS/n6oxo7+lfqi8/+hvWNSY++x9Ffe/BQBIZ/pkCyK+cJ0FMfQGZuf+ix0Y7ZgeX1ChVnVVb/+px1sQcdUCC2LoPtCrfmAHRs//mE/aQc74/KNsjj40fPZ5lF4z7uBS1LSbpO4JEpd/0YKcnXB4/WDFD5fUP8oySnOGe/7nf84CpEL7+6kaM/qB7s07rw15f+9zLWpgt2GyfeQMOwh9sOE/Ez+WDwDQ2LhRIpOd2ciHfi1y+pxw5rL3Bk/aydRZpeO+Wt8hWDDLAqRW9fY/JDh/d+ZHZ/VnzN15yah2MvX9M6+uP/+rpllQAD7/KKM7L7XA6GfumJkii5bteFqEfjb1M6qfVX0/Sj/T+tkuwqZ3g+v/DDswev6aEzQHRG/69tv/2fF+lOYUzS1Ij/b3U607YHGfq9Vqsm2pHaSkj9jb7bgX7Ci0bXOX9Hvm7+sftxcU+d1H/b5u2f77T45O92g+x8BJIsvn2UEFjZ8RtFmb7V8GtH+xtP1zTBfISSd5WTuM+0yxg5SmnyZyh9MpbceunBeq3v7acTxpth2kpMuLs5h59KH9yct+6SQnKy3g3QIsCZ3Nffq78c/VT6PTnKyzxO2c/4i9RH5ydef7w3f1vjLt35my5eTqzOgHBbq7v14LeS3+d5vwe+l/6Pd6Xt0TXpABJ7xZV+R/8MLNHRX5AICdaYdQOxTucr8kFj8ZziqhfVVvf+0QLryyvfN/+LfhrFKR+PyjjBZeEQ4kpaWrT25z9usXYfbU9vZ56+zzA9yGq2O0v18qU+ir9585q2cW31Xb84ie/fj6cgv8Xt2bE97SFwCQmC7zXHOvyI0X2xsN6Gh/tCDSToHO5uoe0WZ7SNFc1dtfl3kuvl5k5ln2RgN6/vrqtWVr8N/cHs4+NdtD2tf4/KNsdABKV4skGYQ68iALzC33i4w9v35Jf56GB9eKXk9JBgHdexLoTTGnXNPejDRCtL9fKrN0P6r/2Juk3+gr7Cg5ndXf/sK/tr1Pv9PlMEXb1ZcjFY3lSCijrPJyL13O/IfnRZ5bL7IuKGDGHRgWc1oQ6e9ODToPcY/tufwckRsusoMUyAs786H9daZez13PV58NrneD1htFdQXvXXxbfGGsM5hxN8hrxYf2Jy/7JeucrFZ2iawKXiuDz+awPUWOOljk8OCzqYMCc+4KC3yXFnk6iJVWX+QEvWb0ue5dL4fnPOZjOwYp5j8U/9QLHVxbeqsdpEBfuR7tn1zZcnIlC/0euw2TfvucKfI3I6XfiKBVI/TO+h90/av0G/WN2Dvvt1vw98XFkyeSV7FIXiijvuhUNqPFzrSb60f8tVPw8gN2kAJ5IR0f2j9uD2lVOpV90f7kZb/knZOVFmrfmB+ulIl6NLim0j4Zoi9ywtDB4c3iGtHHwMUNVujKhrRP5qCvXI/2T65sOblSS/d3EhTpH7x0T0/R/v7yv9/ptf3Zr/Tsx9efH6z/vv0HO+hqgH4fvcCOAAB50dmAn98QdiC1uOm1R9CRQN/zof11Wal2IKPnXxV8/lFGuiLmhf9ob292HpoVmWrqCeE15Z7/gAEWoCO0f3VVt9BPSIv99//7VHnvHWcTX79BFgAA8qazRDqDqfsAtZN5zkT7BXJR9fbXWSKdwdeCXzuXU46zX1QEn3+UTe8g1IbF4VYSXZqty/urondv+YPXhdeUnv+BI+2X6HO0fzlVd+l+G3Qm/4OPflUG7D5Stv/pwp4VAWkUsUQxSyxHKhbLkVBGReflTpEXikX7F4u87B9ycrHIycUiJ2fL+xn9KF3mL7/8SM/z9NMW+QAAAAAAVMEuVej34nn6AAAAAABf7ZKFPgAAAAAAvqLQBwAAAADAIxT6AAAAAAB4hEIfAAAAAACPUOgDAAAAAOARCn0AAAAAADxS687xqf61Wk22LbWDCho4SWT5PDuooPEzhPYvkA/tn2O6QE40LwOoLvKyX8jJQLWVKSdT6KdAoVks2r9YFPp+0rzMdVUc8lqxfGh/8rJfyMnFIicXi5ycrdwLfQDVRYfSP3Qqi0Wnslh0KlE25ORikZOLRU7OVu6FPhdPcUhexSJ5oYzIy8UiLxeLvIyyIScXi5xcLHJytrgZHwAAAAAAHqHQBwAAAADAIxT6AAAAAAB4hEIfAAAAAACPUOgDAAAAAOARCn0AAAAAADxCoQ8AAAAAgEco9AEAAAAA8AiFPgAAAAAAHqHQBwAAAADAIxT6AIDMrVgtsujx8GfXK/YmclP19n9ipchtD4Q/X3zV3gTQtlVdIo88Hb40L1TNyuD8Fy0LX5oXqqbq7Y9qqnUHLO5ztVpNls+zgwoaP0Nk21I7qKCBk4T2L5AP7Z9jukBOssrL2om597GgA/OcyOtv2ZuOg/YXuWyqyJEH2RsZIC+Eqt7+2om//kciv/pT4/PX8775H0WOH2dvZIC8jLLJKie/GVxHP3hY5KlnGw+WDRkkct6JItMn2xsZyConbHw7yAkLg8J4ucjq9famY8ReIl8+VeSGi+yNDGSVE6re/kUhJ2eLQj8FLp6d6WxRV5C81r60Y3RSk+6okUGHbKzIuDEix3wyfD8LWba/foEseiLoXK4N/oYNQefyjyJbtobn/6lRIkcfKnLS+HJ3KItofzqU/skiL2uB9tCv7SCBk48SmR0UnMODz2unyMvVb/+Zt4vMDzrESen5L7xCZNge9kYH6FSibLLIydon+PqdYb8miY/vKzLjjPDa6lQWOUFn7M+8Ot35L5iVTZ8ti5xQ9fYvEjk5WyzdR2qawCbNFrnl/nAJVW+RqXQmRo+106adt6sW2C9KRGeODr1wR+dSl1H1JmM9f/2C0b/tpOBvnHZTOChQJlVvf/hlxtx0RabSa+7i2+wAHal6+58+J12Rr/T8P/M1OwCwE70+NC8kLTKVzjhrf0FXBhVN+zXa/0p7/vrfaP+uaFVvf/iFQh+p3HJfmMAaLa10acLT0a2yJK85d4Xnk/T89Qtn9Hnl+PJQVW9/+GX+QzsPNCldHn75OSIPXheOyuvPGy8OZyyitGOjq1LQvqq3v+ZjzVFRujz/jktF1twbzkrpz4VXhn9XlC7l1T38AHbQ+3HEDfBPP01k3mVhTnjyO2EcN3v8zeCaLJLmJZ1gcWlOe/TWMCdsWBzGUyfaLyOmXGNBQare/vAPhT4S006hFr5RulRck9XMs8JEPPnY+g6lKkPy0lkjnQWP0nPVc9aOsHYuNRm756+jslpcF63q7Q//uDOx+tn78ZygA3ZCuIVE6U/9jC6+vr5Yu/NnFqAtVW9/Nx/r+S0JOvnRPKw/tUP/y6Bz7C7LnbuofCuugCLN/7kFEVpU6h7w3ntzDB4cxtrv0WstSgttd/AtT3F9FS3qdQ9+7/WvW3Y01gFA7fdE9QxgOv2kPFW9/eEfCn0k9sMlFhjtgC0NErAmqwtOCTuX13wp7FC6I5VlSF7X3mOB0UT79HdFHrxWZNbZYcLtnUlyk6/OmhX55aGq3v7wS9xssO6RbEY/q1E6iMasfnuq3v5xy/UfC/JZo333+r779+nKJr3XCoCQ+z2vfZneAjPO7KBQ7h1U63VPQfu7e+6d5PSzrp7WfN+9DgC4f9+3F1tQgCq3P/xEoY9EdMl4dLm4ziRrQdmIdijd5PathRYUQJeIuuevM0eNOpVa8LvF8lfvtKAAVW9/+GeVcxdk/bwNDz6XzejssjurrDeURHpVb3+9EWqU5tuRw+2gAe0Qu3nNbQdgV+Vu41Fnxyxvj9r0rsgZx9qB+ctfLcjZczHX8iVnWdDElM9aYFatsyBnVW9/+IlCHy0NHVw/yjrlOAuauPAUC4zOHhW1V9xdIqqPY2l1x+bzP2eB0UK7iL36PrQ//POX1ywwJ37aghYmOrMz+tQIpFf19l+xxgIzeYIFLbh/5+o/WwDs4tY614IO6rUa/FMTj7DAaF9BHw2Xt/+NGbxs1U9TZzuFvp5/EVt6qt7+8BOFPlqKm/FpNUqp4h7ttvJ5C3IUl/BnTbWgibgbvRSx/L3q7Q8/ubMmw/a0oIWBAy0wm9+1AKlUvf31plVRw4ZY0IL7d76+yQJgF+f2dXrv09HK0N0tiHj1DQty5BbKI4Za0MLQmNyxzhkIzUPV2x9+otBHS887HTKVZJRS6RLzqCJGWeMSfpJRYuXundq42YIcVb394SeddYhK2inbb4QFRu+ejvSq3v7RrUhq3w9Z0IL7d8YtlwV2RV0bLEgprj+xroDl4+42nFH7WNBCXH+uiNWLVW9/+IlCHy25MyZu8diMO6LZbiLshNsRTHX+bqFfQKFc9faHfzpZVugOlg0ZZAESq3r7v/KmBW147z0LDJ8fIFT11S1bnWt74xYLKoLVRSgjCn201PWyBRXlLgfbY7AFbSjii6fq7Q//xM1AJO3kvLPNAjPIWUqO1qre/nE33Uu6VPWtdywweydcyQD47qN7W5BS3MBh0hVCWXJn8Lc6uaqRuAmYpCuEslT19oefKPTRkrssSpOv3iAuCXf/Z9KlWFka8zELzNsp9qS+7SyPdWf481D19oef3G0tSW1wZnOT7mPEzqre/u75b0naqXdWJBSRk4EyOsC5FpIO/m1yBs/UgQXkhVEfscBsSriCMm575sHO00XyUPX2h58o9NGSWyjr3lB9JEgrWoy6ic69EVQe3ITp7g1t5jXn/JPe8CpLVW9/+MmdSV32BwtaeOpZC8yY/SxAKlVv/4MPsMCsWGVBC/c7TyA5bIwFwC7Ovf9G0vtXLHvGgoi4VUN97YAPW2CeWGlBC3E3SW71qM6+UPX2h58o9NFS3J5w947JcfRu8W5RfdiBFuQobsYnyR5R/TcvOne8P+pgC3JU9faHn9xlikmeSKEdH/ea+qzzuDckU/X2d1cXzX/Ygia04++e/+edZ1ADu6q45d6LHregift+YYE5+SgLcha3SunuRyxoYu4iC0zcE5PyUPX2h58o9NFS3NLOR35nQRMPODMvqojlSHGPXrnjpxY0sfAxCyIOL2KgouLtDz9NPd6CiKsWWBBD9yFe9QM7MNqxi3sMJFqrevtPn2xBxBeusyCGDrye+y92YPT8j2egCOhxwuH1xfIPlzSfGNCc4U4InP85C3J29KHhs+ejNGe5g3tR026qP//Lv2hBzqre/vAThT4ScZPX4ieb3/lZf6f/JkpHKYcXsBxJ97i7Xx6afJvdQV9/544S6/knfSxf1qrc/vDTIaPqZx50VnnG3J2XLGonR98/8+r6Ds1V0yxAalVv/3HB+U92ZuMf+rXI6XPCmfve/KydfJ3VO+6r9ee/YJYFAHq29M04ww6MXjOaEzQHRPsMv/2fHe9HaU7R3FKUOy+1wOj5HzNTZNGyHSsxNTdojtBcoe9HaU7R3FIEH9of/ql1Byzuc7VaTZbPs4MKGj9DZNtSO6iggZOk7fbXZ5LqyGmUFp9z/7l+xlk7lpd9t34UduGVnSWwTtp/ZXD++t9HafH/8Lfqi2j9MtFOpXv+2nadfIH40P45pgvkpJO8rB2Xk2bbQUq6vDKLmZddOS9Xvf21w77PFDtIafppInc4RUE7Omn/MiAv+6fTvrLOErsFZBK6TfAnV3c+IdBpTtYCvp3z1z7R00Hfp9MJmU5zQtXbv2jk5Gwxo49EtEA81lniqYXkF64V+YcbRK7/Ufiack34nltkaqeyyFFKLdDd2a/V60XGni8y4RKRmbeHLz0+4Nz687/8nOJGiVXV2x9+0g6JDiC5g2VJPPzbcFYD7at6+2uHXDt07Zy/rlhKerMuYFcye2p9fycJnX2O2/KXt4VXhAN5aWm/5zZnJWYRqt7+8AuFPhL7epC84jpkWjDrkkt9uQVmryM+YUGBFlwWf/66zFVvBKWvRuc/rgQ3sat6+8NPOoC0+HqRmWfZGw3obEX0xpL69AgdXNPZj2Z7GNFc1dtfB1DX3Cty48X2RgN67tH8p51iXc2gK50a5T1gVzQ8uFb0ekoyCOhua9R+kE4YtDMjnRUdANTVOkkGAY88yAJzy/3hhI27pD9PVW9/+IWl+ymwHCZ0y33tJdFOl4pm1f5z7gq/DNLSWf1ZQbHd7rIwH9qfJaL+6Yu8rDPF64LiS5dm67OR9W7EeqMifRLExbfFF2Y6gxN3g7ZWyMv1qtz+es5/eF7kufXh36CDrDqYoQMC+rtTg85z9B4EvTQ/33CRHaTAMlGUTV/kZL1m9HG7XS+HfRh9bG9vkTz/obDAdOng2tJb7SCFvsjJuv1StzCuDHKDPuZYn4CkN0fWv6VRn06LbB1ETKsvckLV2z9P5ORsUeinwMWzg+4NfXR52PFascbeNPpc5skTRO59LH5UUm+WcslZ6fchZdn+ug9fZ8C1I/lM8MWhCVg7w/rzyLFhhzeuoB4ySOS8E8MOZdqC34f2p0PpnyLyctweRjo1+aly+2vOm3Zz/Pm//IAdpECnEmXTFzl56ODwZnGN6GPg4oplnVlP+2SOInKyFsrfmB+uVIp6NMhpaZ/M0Rc5wff2zxI5OVss3UdbtEicekJYEM+7bOeXzhrrDMydl4RFpUsLbC1SizRyeDiDpQX7z28Q+c2/7/ipiVVnj3TZlbtPTL9E9AtlwRJ7oyBVb3/s2nRZo15nWpwhf1Vufx1g1VytHfjo+e8RdKQBxGtWZCrtT+g15e4tHzDAgpLTvtoL/9He3vg8+N7+KC8KffQZTWzXfCksPnUmPEpnZapAO8Nuh1Jt3GxBifnQ/vCXzlLoDLJeY9q5mXKc/QK5qHr76yydzuD3DsieM9F+AaAtOoGgg4APXhdeU7q0/EDnqT5l1jsIuGFxuJVHz1+X91dF1dsf5UShjz6nyeqJfwsTV2/BnHbZe5G0Q/ns3WEC7i2YdX9VVVS9/eE3LTj12mpnfzg6V/X213uP6GBFO/vzAdTTR/b2rhZMu8WvDLR/o/lAV2hWsa9T9fZHuVDoIzeauHQGSWfIdZlSleiXxayzRd78WXhzlwtPtl9USJXbHwAAAEByFPrIXdVHKFs9LqXsGCEGAAAA/EahDwAAAACARyj0AQAAAADwCIU+AAAAAAAeodAHAAAAAMAjFPoAAAAAAHiEQh8AAAAAAI/UugMW97larSbL59lBBY2fIbJtqR1U0MBJQvsXyIf2zzFdICealwFUF3nZL+RkoNrKlJMp9FOg0CwW7V8sCn0/aV7muioOea1YPrQ/edkv5ORikZOLRU7OVu6FPoDqokPpHzqVxaJTWSw6lSgbcnKxyMnFIidnK/dCv+r/z1tzr8imd+2NiiF5FYvkhTKiU1ks8nKxyMsoG3JyscjJxSInZ4ub8aVU1SIfAAAAALBroNAHAAAAAMAjFPoAAAAAAHiEQh8AAAAAAI9Q6AMAAAAA4BEKfQAAAAAAPEKhDwAAAACARyj0AQAAAADwCIU+AAAAAAAeodAHAAAAAMAjFPoAgMw9sVLktgfCny++am8iN7R/sWh/ACiP2pBDpN/Ic3tetb1PsXf9R6EPAOjYyi6RL1wn8pGzRQZOEjlptshVC8KfY88P35twSVj4IHu0f7FofwAokd2GSf+Dvy27Tfi9DDi5W3b7v5+V/uPu63nt9ndLet4bcMKb0m/0FfYf+KnWHbC4z9VqNdm21A4qSL+ol8+zgw69+ZbIo8tFul4VWfuSyIrV4fsj9hIZNVLkyLHBz4+InHxU+H4Wxs8Q2j9i0ePN23/cGJFjPhm+n4Us23/j28H5PxF0LtcGf8MGkV/9UWTL1vD8PzVK5OhDgw7meJHjx9l/kAFt/xzTBXKSRV6eebvI/IftIAHNawuD79Zhe9gbHcg6L+Qti7xA+7fPh/YnL/uFvnKx6CsXK4v21xn73YKCXov9JLrf7ZLtz35Ful/7L3unfWXLyczoF0CLynP/ReSW+4NibdmOIlO9/lZ4rJ0GnQ3Qlw4KIDvavpNmt25/7bxp+5eNzhwdeuGOzuUjT4dFvtLz1xkj/dt0JmnaTeGgANBXTp+TrshR+pn9zNfsAB2h/YtF+wNAeejSfJ2xT1rkq9rgUT3/jS7v9w2Ffs5uuU9kxtywIEtCOwRasK0Kijt0rp3219HFsrT/nLvC80l6/jqQMfq8cHAAyJp+HvUaiTryIJE7LhVZc284Kq8/F14pctD+9g/M6vXhHma0j/YvFu0PAOWhhbouzXdtX3OlvP/fp8p7j9R6Xu8/NUE+eOke++0O/XWAwDMU+jnSpeJaeEXpUmtdxjfzLJHLzwnjj+9rv4y4fqEFaFuS9p98bHz7fzPo0BVNZ410pj5Kz1XP+caLw87l9NPqz19n+3VwA8ia+3nUYmbJTTt/DvXn1Ikiv/xO/VaSuYtYcdIJ2r9YtD8AlEe/0d+waIeeov6Fm3dalt+96bey/U8X9gwAROnMvq4I8AmFfo5+6AwUaQdg6a1hkXbBKUFn4IQwXnx9WHxG6ei/O3OAdJK0/zVfim9/vWty0e1/rTP4qDNHT39X5MFrRWadHXYue2eSNI7S7QjuIAfQibjlyo8F11Ojfcf6/oJZdmB0ZYreawLp0f7Fov0BoFz67XeBRSEt5LWob6RnAGDzM3YUihssqDIK/ZzokvHocmudSdaCshEtPrWQi/oWs/ptq3r76xJR9/x15qhRp1ILfnew4qt3WgBkQG8EGaWft5HD7aABHVxzr6tV6y1AKrR/sWh/ACiP2tBjLNrhg/Xft6ixD/68850LdVbfJxT6OXFnU6ccZ0ETFzqPedQl2OzVT2/o4Oq3v7tE9MunNi7ye53/OQuMDhSwVx9ZWbHGAjN5ggUtnPhpC8zqP1uAVGj/YtH+AFAeboHeM1P//kY7aqz7DadASHETvyqg0M9B3F3zz55oQRNxj3Zb+bwFSEwfoeeqUvvH7eGcNdWCJnRfqIvtH8hK1ysWmGFDLGhh2J4WmNc3WYBUaP9i0f4AUB61PQ+3KKSPzEuie8sqi3aIWx1QVRT6OXj1DQsihu9lQRM6E61LtKO4cU96zzsdMpWk/VUZ2n/daxZEtJrN76VLRaM2brYA6FB0K4na90MWtDBiqAUm+nhLJEf7F4v2B4AScR+Nl2A2vxGflu9T6Odg3V8tMG7x2Mimd0VGjbQD07XBAiTmzpgkbX9VhvZ3O4Kpzt8t9BkoQgZeedOCNrz3ngVmyCALkBjtXyzaHwDKpeYuud++1YL0ujsYJCgbCv0cdL1sAQpR9fZf6+zh3GOwBW3YuMUCoANxNx2LW7kU5613LDB7OzOcaI32LxbtDwDlUnd3/b9xZuoa8WxPvotCPwfuMuut2yxI4DVnNnrUPhYgsbj2120RSWx+1wJTRPuP+ZgF5m3nnJp52xnQdGf4gXa520K2JMxr7vYRPpPtof2LRfsDQHl0v79zwVQ3w99AbUD9v+ve2PiRfFVDoZ8Dt1DTu7cnocWoW9QNHGgBEotrf90W0Yq2v7vsv4j2P9AZlHT3hjbjDhS5N4IC2nXwARaYFfX3s4l1v3OD28PGWIBUaP9i0f4AUCLOzfdqH0pw1+1AbeS5FkWwdB9pxO2pjrsTv0vvFu8WdYcdaAESi2t/947JccrS/nEzPkn2iOq/edF54sBRB1sAdMhd3TL/YQuaeGJl/Wfy88dagFRo/2LR/gBQHnF32e8XV8Q7+o/+hkWhJM/erxIK/Ry4N3RTP0jQKXjAGflX7uwuWotr/0d+Z0ETZWn/oTGPbbrjpxY0sfAxCyIOZ6AIGZk+2YKIL1xnQQwdeDr3X+zA6PLn48fZAVKh/YtF+wNAeege/Z5n50f0/9vvNb2Dfv9Dv1e3R/+Dl35kkR8o9HPi7uf7xX9b0IDO+C9+0g7MyUclfywcdua2v7Zts1UVZWp/vcfAQfvbgfnhkuZ30NffzV1kB0bPP+lj+YBWxgXfnZOd2ciHfi1y+pxw5rL386kzmHc/InLcV+tXyCyYZQFSo/2LRfsDQLlsX3OlRSYo4ruP/I3U9j5lp4Jfj/sf8VPpt/8/2TuhD175Sf1N/SqOQj8n37rIAqNf+FOuEVlVv9KkZ1n5xbfVdwrO/5wFSC2u/bWN45bwl7H9fxx0HqP03D7ztfploEpnjo765/rzv/FiC4CMLLjMgohHnhY5abbIPlNEBk4SGXu+yIy59Z/V6acxm9kp2r9YtD8AlEf3a/8lH2z4TzsKDdh9pOz2d0tkt+NekAEnd/e89LjfPmfavwi9984rsn3lF+3IHxT6OTlklMixn7QDo1/8024S+YcbRK5aIHL9j8Li/wvX1ncKpk4M/zfQnkbtr22t7a9tX+b219kjnZGPWr0+7EROuERk5u3hS48POLf+/C8/J/zfALKkK0SWz6tfMZOErpjRmU+0j/YvFu0PAOWy/Zmzembm09IBgf5jg6LMMxT6Ofr61PgOgRZsOgugy/7cAq3XEZ+wAG1r1v7a9mVvf509ijv/FavDG0Hpq9H5j2NvPvqIDiCtubf1ihG9KWb086srTnTmUwc7G31u0RrtXyzaHwDKRWfm339ytGzbHLNsOsLd099v9BXSPeGFRDfxq4pad8DiPler1WTbUjuoIF2Gp6P3nbrlPpFFMTd6a0VnlS85U2RwwmfAu8bPENo/0En7X97Bqp6s2n/OXcHfcL8dpKCz+rOmtr9PX9s/x3SBnGSdl3Vv8h+eF3luvci6oIDRQSZdDaMFkf7u1CvDwSmXfj5vcLbYJJFVXihK1nmZ9k/Hh/YnL/uFvnKx6CsXqy/avzb0GJEBw6Tf8OOle8tz0r3tlZ5l/kqL+7iZfB0kqP1mtB0lV7acTKGfQpYXj97s7dHl4Rf/ijX2phmzn8jkCSL3PhbO9Lu04PzH09LfGI7ktUMn7a83YLrkrGLbX/fh6woE7Ug+E3Qq9Xn/I4aGP48cG94ROm5AY8ggkfNODDuUaQv+siUvZCPvvKzX3LSb668tnfF8+QE7SIFOTTq0/858aH/ysl/oKxeLvnKximj/fvtdIP0P+XbdHfjff2pC6pvzlS0nU+inkPfFM3SwyGXfDws6l47+Tz3BDhIieaXjQ/vrvv245zvrMtNZZ9tBQmVLXshGUXlZ9yfr48Z6bxqpy5p1CXRadGraQ/uHfGh/8rJf6CsXi75ysQpr/6DI7/+pu3e6SZ8PhT579Ets07si13xJ5I5Lw9H+KJ0VQN/qbf95l4Uz4VFVaX/97Dx6a8znZ7MFQEH0juM6g7nwyvAO5OdMtF8gF7R/sWh/ACiR9zf23MjvvceHywcv3CzdbyyT7i2r7JfVRaFfAcd8UuQnV4vMPGtHwdnuPmukd+RBIk/8W9gZ6y2Yq9T+2qF89u5wFr/38zPmY+FPoGi6FUkHpNrZn4zO0f7Fov0BoES04F9zpby//O974qqj0K8I3Q9+wSlhwakztGmXjaNzuu99adD2VWx/HZjQpfpv/ixcHnrhyfYLAAAAAN6h0K+gtDeBQ7aq3v7RRzwBAAAA8A+FPgAAAAAAHqHQBwAAAADAIxT6AAAAAAB4hEIfAAAAAACPUOgDAAAAAOARCn0AAAAAADxS6w5Y3OdqtZpsW2oHFTRwksjyeXZQQeNnCO1fIB/aP8d0gZxoXgZQXeRlv5CTgWorU06m0E+BQrNYtH+xKPT9pHmZ66o45LVi+dD+5GW/kJOLRU4uFjk5W7kX+gCqiw6lf+hUFotOZbHoVKJsyMnFIicXi5ycrdwLfS6e4pC8ikXyQhmRl4tFXi4WeRllQ04uFjm5WOTkbHEzPgAAAAAAPEKhDwAAAACARyj0AQAAAADwCIU+AAAAAAAeodAHAAAAAMAjFPoAAAAAAHiEQh8AAAAAAI9Q6AMAAAAA4BEKfQAAAAAAPEKhDwAAAACARyj0AQBAqTyxUuS2B8KfL75qb1bIitUiix4Pf3a9Ym8CBVrVJfLI0+FLP5dVszI4/0XLwpfmhaqpevujmmrdAYv7XK1Wk+Xz7KCCxs8Q2bbUDipo4CSh/QvkQ/vnmC6QE/JyscjLIe3EX/8jkV/9SeT1t+xNx5EHidz8jyLHj7M3MpBV+2sn/t7Hgg78c43P/6D9RS6bGv4dWSEv+yernPxm8Dn8wcMiTz3beLBsyCCR804UmT7Z3shAVjlh49tBTlgYFMbLRVavtzcdI/YS+fKpIjdcZG9kIKucUPX2Lwp95WxR6KeQ5cWjCWzRE0HnZq1I14agc/NHkS1bw6T1qVEiRx8qctL4cnZoeulsRVeQvNa+tGN0Us9/1MigIzNWZNwYkWM+Gb6fBZLXzopofzqU/iEvF8uHTk2n7T/zdpH5QYc4qZOPEll4hciwPeyNDmTR/jpA8dCv7SABPf/ZQcE/PMjXnSIv+yeLnKx9gq/fGfYrk/j4viIzzgg/m53KIifojP2ZV6c7/wWzsukzZ5ETqt7+RfLhO7FMOZml+wXQmYtDL9zRudFlPL3JQGcCNMHdcn9Q6M8WmXZTOChQJprAJgXnpueoS6h6i0yl56/H+nfp33fVAvsFMkP7A/DF6XPSFflKvzM/8zU7KNiMuemKfKXnf/FtdgBkTD9f+rlMWmQqnXHW/oKuTCma9mu0/5v2/PW/0f510are/vALhX7O5twVjvY0Wtrn0oQ3+rxyJC91y31hAkt6/prw9O8leWWD9gfgC/0+1BwVpcva77hUZM294ayU/lx4ZbjsPUqX8uoe/iLNf2jngVal53n5OSIPXhfOSunPGy8OZ+yitGOvq7KALOn9IOIG+KefJjLvsvAz+eR3wjhu9vibwTVZJL0udILLpdfUo7eGOWHD4jCeOtF+GTHlGgsKUvX2h38o9HOksxY6CxulX/6Tjw07Atq50WTgdgh0VFCLu6Jpp0QHHqJ0qbgmq5lnhYlY/xb3/BXJq3O0PwCfuN+HWiQvCTr50e9B/akd+l8GnWN3We7cRcWueHNXIui5/nhOcL4nhFuolP7UHL34+vrBijt/ZgGQkfk/tyBCi0rdA957b4jBg8NY+516rUVpoe0OvuUprq+iRb3uwe+9/nXLjsY6AKj9nqieATSnn5Snqrc//EOhn6Nr77HA6IX+9HdFHrxWZNbZ4QXfO5PhXvw6a1Bk8lI/XGKB0U7N0iABa7K64JSwc3PNl8IOjTtSSfLqHO0PwBdxy/UfC/JZo333+r7uwY3SlU16r5sixM3Gu+fn0lwdpYP4zOojS+73vPYlewvMOLODQrl3UK3XPQXt7+65d5XTz716WvN99zoA4P59315sQQGq3P7wE4V+TnSJYnS5tc7E6sxFo06NFvxusfbVOy0ogC4Zd89fC8pGtEPjJrdvLbQAqdH+AHyiN6KN0u+7kcPtoAHtELt5bVWDu3H3Nff/rp7X8CAvN6Oz++6svt5QFciCu41EnR2zvD1q07siZxxrB+Yvf7UgZ8/FXMuXnGVBE1M+a4FZtc6CnFW9/eEnCv2cuEsU9XEgre4YfP7nLDBa6BWxV3/o4PpR1inHWdDEhadYYHT2gr3i6dH+AHyzYo0FZvIEC1o48dMWmNV/tiBnf3nNAuOeVyMTndlJfWoKkIW1zrWgg0qtBp/UxCMsMNpX0EfD5e1/YwbPWvWT1dlOoa/nX8SWnqq3P/xEoZ+DuIQza6oFTcTdaKSI5ddxMw6tRilV3KPdVj5vARKj/QH4Rm9aFTVsiAUtDNvTAvP6Jgty5s4auufVyMCBFpjN71oAdMjta/beJ6KVobtbEPHqGxbkyC2URwy1oIWhMbljnTMQl4eqtz/8RKGfg7iEk2SUUrl7dzZutiBHzzsdMpVklFLpEvOoIkZZq472B+Cb6FYkte+HLGjB7fzHLZfNg866RSUtSvYbYYHRpwcAWejaYEFKcf2JdQUsH3e3w4zax4IW4vrTRaxerHr7w08U+jlwOyJu8dXMKLfQL6BQc2dMUp2/M6LZbiLcldH+AHzyypsWtOG99ywwQwZZkKNOltW6g/VFnD/8VNTqlqxsda7tjVssqIiqtz/8RKGfA3c50h6DLWhDEYmv62ULUAjaH4BP4m66l3Sp6lvvWGD2TjiTnqW4Gbiknfx3tllgBjlL+YF2fXRvC1KKG7hKukIlS+4M/lbnWmkkbgIs6QqhLFW9/eEnCv0cjPmYBebtFHvy3naWB7oz/Hlwl0Vp8tUbxCXh7j9MuhQLO9D+AHzjbkvbkrRT78yIF/GdqNzzT2qDs5oh6T5eoJUDnM9k0sGnTc7gmTqwgM/lqI9YYDYlXMEatz32YOfpFnmoevvDTxT6OXAvWHdvYjOvOYki6Q1/suQOVOjeRH0kSCtajLqJzr0REVqj/QH45uADLDArVlnQwv3OE0gOG2NBztyVBMv+YEELTz1rgRmznwVAh9z7PyS9f8WyZyyIiFu10tcO+LAF5omVFrQQd5PqVo/q7AtVb3/4iUI/B3EzDkn2KOq/edG54/pRB1uQo7g94e4dk+Po3eLdQY3DDrQAidH+AHzjri6a/7AFTWjH3/1O/LzzDOq8uMt0kzwRRzv+7vl/1nncHtCuuOXeix63oIn7fmGBOfkoC3IWt0rm7kcsaGLuIgtM3BOr8lD19oefKPRzEPfojzt+akETCx+zIOLwAgq1uKWFj/zOgiYecGZeFMuR0qP9Afhm+mQLIr5wnQUxdOD73H+xA6OFwfEFFcpTj7cg4qoFFsTQfbhX/cAOjJ5/3GNQgXaccHh9sfzDJc0nBvQz604InP85C3J29KHhs+ej9JpxB8eipt1Uf/6Xf9GCnFW9/eEnCv0c6B5rN3npxd/sDvr6O3eUUkf5kj6WL2tu8lr8ZPM7D+vv9N9E6fkPZzlSW2h/AD4ZN0pksjMb/9CvRU6fE87c934/aidfZ/WO+2p9h3jBLAsKcEhw/u7Mm87qz5i785Jd7eTr+2deXX/+V02zAMiAbumbcYYdGP3M6WdSP4PRPsNv/2fH+1H6mdbPdlHuvNQCo+d/zEyRRct2rITV3KA5QnOFvh+lOUVzSxF8aH/4p9YdsLjP1Wo1WT7PDipo/AyRbUvtIKWVXeF/H6XF/8Pfqi/iNJlpp8YdxdS26ySBDZwU/m+0Q59JqiOnUXrec/+5fsZZOzaXfbf+/Bde2VkC66T9y8CH9s8xXSAnu3JeLoNO8kIZdNL+2mHfZ4odpDT9NJE7nKKgHZ20v3bcT5ptBynp8uIsZh7Jy/7pNCfrLLFbQCah2wR/cnXnEwKd5mQt4Ns5f+0TPR30fTqdEOs0J1e9/Yvmw3dimXIyM/o50QLdHf1fvV5k7PkiEy4RmXl7+NLjA86tL9IuP6e4UUqlBeKxzhJDPccvXCvyDzeIXP+j8DXlmvA99/y1U8MoZftofwC+0Q65dujcwe4kdMVS0pt19RXtkOsAajvn//Bvw1k9IGuzp9b3N5PQ2ee4LX95W3hFOJCXlvZ7bnNWwhah6u0Pv1Do52jBZfEdAl3mpzci0pdboPUaV4KbqH09SF5x568DFrrkUl+Nzv+IT1iAttH+AHyjA9hr7hW58WJ7owGd7YrmP+0U62y6rnRqlPfyoAOoi68XmXmWvdGAnn/0xqr69BQd3NfZv2Z7eIG0hgefM72ekgxCudtKtR+qEwbtzEhnRQcAdbVOkkHAIw+ywNxyfzhh5i7pz1PV2x9+Yel+Clkth5lzV5iM0tJZ/VlBsdfusqSslsPccl97SbTTpYosRwoV2f4sEfUPeblYPixTzLL9dTn/H54XeW69yLqggNdBbi2mdUBAf3dq0HmOe2yVfj/ecJEdpNAX7a8z9Xruer76bHC9G7feqEufhHLxbfEDEzqDGXeDwlbIy/7pi5ys14w+brfr5bAPqY/t7S2S5z8UFpguHZhaeqsdpNAXOVm3v+oWxpVBbtDHTOsTqPTm1Pq3NOpTa5Gtg4hp9UVOqHr758mH78Qy5WQK/RSyvHh0H77OwGpn4JkgcWkC0M6A/jxybPiFH1fQDRkkct6JYYcmbcGf5cWjexMfXR52ZFassTeNPhd48gSRex+LH5XUm6Vcclb6fUgkrx2Kan86lP4hLxfLh05Nnu2vOW/azfW5TTvFLz9gBykU0f5xe3g76dSTl/3SFzl56ODwZnGN6GPg4oplnVlP+2SIInKyFsrfmB+ulIl6NLim0j6Zoy9ygu/tnyUfvhPLlJNZul+QkcPDEXwt2H9+g8hv/n3HT72wdfZCl/24+5Q0iWlCW7DE3iiIFolTTwgHJOZdtvNLZ411BubOS8Ki0qUDHFqkon20P4BdkQ5w63elduCjS+H3CDrSVaHLevV7Pnr+QF9qVmQq7U/oNeXuLR8wwIKS077yC//R3t74PPje/igvCv2S086A26FRGzdbUGKa2K75Ulh86kqEKJ2VQd+i/QH4SmfpdAa/d0D8nIn2i4rQWTqdwdfveO3cTznOfgEURCcQdBDqwevCa0qXlh/oPNWnzHoHATcsDrfy6Pnr8v6qqHr7o5wo9CtAOzTP3h0mgN6CTff3VIUmqyf+LUxcvQMWabcdoH20PwBf6b1HtFhuZ39+GWjBr9/t7ezPB/qCPrK3d7Vg2i1+ZaD9G80HukK2in2dqrc/yoVCvyI0Wc06W+TNn4U3F7nwZPtFhWji0hkMXaGgy5SQL9ofAAAA2DVQ6FdQq8d1lB0jlMWi/QEAAAC/UegDAAAAAOARCn0AAAAAADxCoQ8AAAAAgEco9AEAAAAA8AiFPgAAAAAAHqHQBwAAAADAI7XugMV9rlaryfJ5dlBB42eIbFtqBxU0cJLQ/gXyof1zTBfIieZlANVFXvYLORmotjLlZAr9FCg0i0X7F4tC30+al6t+Xa25V2TTu/ZGxZDXiuVD+5OX/eJDTiYnFIf2L1bZcnLuhT6A6qJD6R86lcWiU1ksOpUoG3JyscjJxSInZyv3Qp+Lpzgkr2KRvFBG5OVikZeLRV5G2ZCTi0VOLhY5OVvcjA8AAAAAAI9Q6AMAAAAA4BEKfQAAAAAAPEKhDwAAAACARyj0AQAAAADwCIU+AAAAAAAeodAHAAAAAMAjFPoAAAAAAHiEQh8AAAAAAI9Q6AMAAAAA4BEKfQAAHHvtf4p8+G//qefnwD1H2bsAUE0ru0QWLQtfT6y0NytkVXD+jzwdvlastjeRG9q/mmrdAYv7XK1Wk21L7aCCBk4SWT7PDipo/Ayh/QvkQ/vnmC6QE/JyaPcRR8i+R3xD9tjnmIaF/TuvPyN/+d2V8tb6/7J3OkdeLhZ5GWWTVU7e+LbI9QuDwmy5yOr19qZjxF4iXz5V5IaL7I0MZJUT3nxL5AcPizz1rMiLr9qbjiGDRM47UWT6ZHsjA+TkEO3fnrLlZAr9FLLu0Cx6XKQruHjWvrRjdEyT7qiRIkeOFRk3RuSYT4bvZyHLi0e/QBY9IbJybfA3bBD51R9FtmwNz/9TQR/56ENFThovcvw4+w8yQPsXq2zJC9kgLwfX/MS7ZcRBF9hRa2+s/Ymse/Irsn3bRnunfXQqi0VeRtlkkZN1xv7Mq8N+WRIf31dkwaxs+mxZ5ATtk339znTnP+MMkZOPsjc6QE6m/TtRtpzM0v0C6AU0abbILfeHS6h6i0z1+lvh8fyHRWbeLnLVAvtFiejyr0MvDM9Pz1OX8fQmAz1//YLRv+2k4G+cdlM4KFAmVW9/ANkZe+qSVEW++tCYc+WQM39jRwBQHtqv0f5X0iJN6Yyt/jfavyua9ilnzE1//tpf0+Xl6Azt7xcK/Zzdcl94AWlBmYRecDq6VZaLZ85d4fkkPX/9whl9Xjm+PFTV2x9AdkYecUXPHvwoXZ7ftexC+eN9o2XF/FrPzxd+8cWe96MGDTukZw8/AJSFFlw6weK6/ByRR28NZ0o3LA7jqRPtlxFTrrGgIF2vxE+wTD9NZN5l4Uz1k98J47jZ428GfVS0j/b3D4V+jnSpuBa+UbpUXC+WmWeFiXjyseESGFcZLh6d5dZZ8Cg9Vz3nGy8WuePSMBm456+jglpcF63q7Q8gWx/9v3buEWsx/+ziT8vrq++RbZvD0T39qUv19X232D/gmJgeNQAUJK6vokW97sHvXZY/bI8wXnhl2O+J0oECt5+Up/k/tyBCi0rdA37kQeHx4MFhrP1O7XNG6fnrBA3aQ/v7h0I/Rz9cYoHRgnJpkID1YrngFJGpJ4hc8yWRxdfXj5SV4eK59h4LjF7oT39X5MFrRWadHV7wWuyvubf+4tfl8EV+eaiqtz+A7MQt11/7yFkWxav7/W7DUi/7B4C+0HPvJKefdfW05vvudQCgt4Dr9e3FFhTA7WdpX9I9v6jZ59RPztxT4f3dRaP9/UOhnxNdMh5dLq4zyVpQNqLFp3txfWuhBQXQJfvu+S+5KRwZjqMFv1ssf/VOCwpQ9fYHkK099zveopDeSb93Fr8R/b07qz9kn6MtAoDiPBdzZ/1Lmo9d9pjyWQvMqnUW5Cx6v6ReZ8dsL4ja9K7IGcfagfnLXy1AKrS/nyj0czB0cP0o65TjLGjiwp23jvYsgS9qr7i7ZF8fx9KoyO91/ucsMFpoF7FX34f2B5CtAYNHWhR6Y62T5Bp40/l3/f9mmEUAUJz/dQp9naxo1U9TZzuFvvZ1iriJ8to/W2AO2l9k+F520MTEIywwev76aDikQ/v7iUI/B/oIN1erUTIV92i3lc9bkKO4hD9rqgVNxN3opYjl71VvfwDZGzxi595J9/agd9IGvSkfABTNLdRGDLWghaFDLIhY95oFOXL7mvqo4ySG7m5BxKtvWIDEaH8/Uejn4PlXLIhIMkqmdIl5VBGjrHEJP8kosXL37mzcbEGOqt7+ALI3YPedezFbN66yqDl3ef/uzoABABRhlTOjP2ofC1qI688VsXqxa4MFKcX159axfDw12t9PFPo5eH2TBcYtHptxR9TavRA74e7bSXX+bqFfQKFc9fYHkK3+A+uX2yddgl/rP8ii0HvvxIwkAkDOtr5ngdm4xYKKcPtqyBft7ycK/Rx0vWxBRbnLwfYYbEEbivjiqXr7A8jW9m0bLdrB3bPfiDsgEPe/BQB5c2fwt26zoIW4CZh9P2RBjj66twUpxe0HT7ptATvQ/n6i0M+BuyxKk6/eIC6Jze9aYJIuxcrSmI9ZYN52zqmZt51tr+4Mfx6q3v4Aspd0qb5rwOCdk5gW+tx4CEDRRn3EArMp4QrKuO2ZB+9vQY4OcPqHSWeYN71jQcSBCfeXYwfa308U+jlwC2W9I6U+kqIVLUbdC23gQAty5F6w0cfUtfKac/7D9rQgR1VvfwDZc/faDx31eYsa2xx0aIaNOtOOQptfWpb4nh8A0FcO+LAF5omVFrQQd5PkkcMtyNF+IywwcY97i7Ns5yee9iAnp0f7+4lCPwdxe8K7Emzr1LvFu0X1YQdakKO4WfhX3rSgCf03Lzp3vD/qYAtyVPX2B5C9/88p9D805lyLGtvvExPr7rL/1p+XWgQAxXFvfqzufsSCJuYussDEPTEpD3HLvRc9bkET9/3CAnPyURYgFdrfTxT6OYh7RMUjv7OgiQecZ7+rIpbDxD165Y6fWtDEwscsiDi8iIGKirc/gOy98od/tWiHAz7zPYvqDdxzVN3vdfm/zugDQNGOPjR89nnUVT+on3CJmnZT/YTG5V+0IGcnHF4/WPHDJc0nZq5aUH/+53/OAqRC+/uJQj8n7sWz+Mn4G1j00t/pv4nSUbIilsPoHnf3y0Mv/mZ30NffuaPEev5JH8uXtSq3P4Ds6dL9N9b+xI5CH/7bf5Kxpy7Z6ZF5WuDrbP8hn/9N3Wz+ul9+xSIAKN6dl1pgtAg7ZqbIomU7VmJq/0yX9Z8+J3w/avKxIuNG2UHOdEvljDPswOj5z5gbbi+I9tl++z873o/SftohBZ1/1dH+fqLQz8m3LrLA6MVz8W3xI2X6nv6uTKNkPw6+EKL03D7ztfiRYv0yOeqf68//xostKEDV2x9A9tY9WV+o77X/KXLolN/LkdO7e16HffEFGX3ifXXP3X/lmZuZzQdQKsePC4utKO3L6Mz9AeeKDJwkss8UkZNm1xdpOiGy4DI7KIiee9z568yxnvP4GeFr5u3xj36ePdUO0Bba3z8U+jnREa5jP2kHRovkL1wr8g83iFz/o/A15ZrwPbeA1j1TRY6S6Qive/GvXi8y9nyRCZeEF72+9Fi/TNzzv/yc4kaJVdXbH0D2Xnttozy7+NNt3YF/xEEXyJ77FbSZFQAaWHiFyPTT7CAF7ffc5qzELIIWi25/MwktSOO2XCId2t8vFPo5+npw8bhLyJUWzA/9Ony5BWavIz5hQYF0pDfu/HVUb/7D4avR+Y8rwU3sqt7+ALKlW3Heef0ZWf6jQ2X9b/4fezfee++8stOAgM7wH3T6/+mZ7dfl/QBQBrpF8o5LRZbPi+/zRB15kAXmlvvDCRt3SX+eNC/rCtCFV7Y+f3dbqfZDdcLGXa2A5Gh/v9S6Axb3uVqtJtsqfINiXfKkibNTt9zXXhLVWeVObpKiy22yaP85d4VfBmnprP6soNhud58+7V8sbf8c0wVyQl7eQfcgaidHZ+oH7jFKBg07WN59/Q89Bf6r65+RYcOGySFn1u/VV3/53ZU9y/nT8iEvZNX+RSAvo2z6Iiev7BJZFbxWPh/0wfYMn4CkN0fW/lijPp0WeWvutYMU+iIn6ISSPu646+XwnPWxyb2DFPMfCgtMly4lX3qrHaRATq5H+ydXtpxMoZ9ClhePdigfXR7eFGXFGnvTjNlPZPIEkXsfix8V05ulXHJW+hvDZXnx6D58nQFf96rIM8EXhyYAfTSH/jxyrMj0yfEF9ZBBIuedKHLDRekLftq/WGVLXsgGebmx3sLfpbP47uP4dMZ/5cKP2FFydCqLRV5G2RSRk7VQ+8Z8kS1b7Q3zaFCo6b7/NPoiJwwdHN4srhF9DFzcYIWubDjG2bbZCjm5Hu2fXNlyMoV+Cnl3aPTCuuz7YUHt0tnxqSfYQUJFXDy6bz9upE+XBc062w4Sov2LVbbkhWyQl9ujs/6jT9hxkz6d9f/tPYfKnrv3HCZGp7JY5GWUTVE5WSc+pt288wRHWQr9JHRg9tZFO5//vMvqtye0Qk5uD+0fKltOZo9+ieno2TVfCi8UnQmP0oRcBTqap18UuoQnauNmC0rMh/YH0Df0jvu/mv8RWf3zv5fXV98jG7v+M3WRDwBloassf36DyIbF4WSGFmi6vL8qdPWVTiI9eF14M0I9/wN3flgK+hDtX04U+hWgF8sT/xZeOL0Fc9pl70XS0eBn7w4TQG/BrPt7qqLq7Q+gb2hhrwV/17ILe/boA0DVaf9Gt1f+5t+r2dcZFRSXun1UJ2nSbrFE52j/cqHQrxC9cPTGFjpDnnbZeNH0y0KX6r/5s/DmLheebL+okCq3PwAAAIBdB4V+BVV9hKzV4zrKjhFKAAAAAGVGoQ8AAAAAgEco9AEAAAAA8AiFPgAAAAAAHqHQBwAAAADAIxT6AAAAAAB4hEIfAAAAAACP1LoDFve5Wq0m25baQQUNnCSyfJ4dVND4GUL7F8iH9s8xXSAnewyuyZatdgCgUoYMEnn7XfKyT7SvDKCaypaTKfRToNAsFu1fLAp9AAAAoBpyLfSZOQKqi5kjAAAAoBpyLfQBAAAAAEDf4mZ8AAAAAAB4hEIfAAAAAACPUOgDAAAAAOARCn0AAAAAADxCoQ8AAAAAgEco9AEAAAAA8AiFPgAAAAAAHqHQBwAAAADAIxT6AAAAAAB4hEIfAAAAAACPUOgDAAAAAOARCn0AAAAAADxCoQ8AAAAAgEco9AEAAAAA8AiFPgAAAAAAHqHQBwAAAADAIxT6AAAAAAB4hEIfAAAAAACPUOgDAAAAAOARCn0AAAAAADxCoQ8AAAAAgEco9AEAAAAA8AiFPgAAAAAAHqHQBwAAAADAIxT6AAAAAAB4Q+T/B/ShDRR/l3aIAAAAAElFTkSuQmCC\",\"relationship\":null}],\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"target\":\"/matlab/document.xml\",\"relationshipId\":\"rId1\"}]}"},{"id":1172,"title":"Wheat on a chessboard pt 1","description":"If a chessboard were to have wheat placed upon each square such that one grain were placed on the first square and each successive square after had double the amount of grains as the square before. How many grains of wheat would be on the chessboard at the finish?\r\n\r\nAssume the chess board is n by n squares.","description_html":"\u003cp\u003eIf a chessboard were to have wheat placed upon each square such that one grain were placed on the first square and each successive square after had double the amount of grains as the square before. How many grains of wheat would be on the chessboard at the finish?\u003c/p\u003e\u003cp\u003eAssume the chess board is n by n squares.\u003c/p\u003e","function_template":"function y = wheat_chess(n)\r\n  y = n;\r\nend","test_suite":"%%\r\nn = 1;\r\ny_correct = 1;\r\nassert(isequal(wheat_chess(n),y_correct))\r\n\r\n%%\r\nn = 0;\r\ny_correct = 0;\r\nassert(isequal(wheat_chess(n),y_correct))\r\n\r\n%%\r\nn = -1;\r\ny_correct = 'NaN';\r\nassert(isequal(wheat_chess(n),y_correct))\r\n\r\n%%\r\nn = 4;\r\ny_correct = 65535;\r\nassert(isequal(wheat_chess(n),y_correct))\r\n\r\n%%\r\nn = 8;\r\ny_correct = 18446744073709551615;\r\nassert(isequal(wheat_chess(n),y_correct))\r\n\r\n%%\r\nn = 10;\r\ny_correct = 1267650600228229401496703205375;\r\nassert(isequal(wheat_chess(n),y_correct))","published":true,"deleted":false,"likes_count":0,"comments_count":7,"created_by":9554,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":192,"test_suite_updated_at":"2013-01-08T15:42:28.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2013-01-04T15:52:05.000Z","updated_at":"2026-03-31T14:13:16.000Z","published_at":"2013-01-04T15:52:05.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eIf a chessboard were to have wheat placed upon each square such that one grain were placed on the first square and each successive square after had double the amount of grains as the square before. How many grains of wheat would be on the chessboard at the finish?\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eAssume the chess board is n by n squares.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":3054,"title":"Chess ELO rating system","description":"The Elo rating system is a method for calculating the relative chess skill levels of players in competitor-versus-competitor games. ( \u003chttp://en.wikipedia.org/wiki/Elo_rating_system\u003e )\r\n\r\nThe difference in the ratings (rating=ELO) between two players serves as a predictor of the outcome of a match. Two players with equal ratings who play against each other are expected to score an equal number of wins. A player whose rating is 100 points greater than their opponent's is expected to score 64%; if the difference is 200 points, then the expected score for the stronger player is 76%.\r\n\r\nSome chess organizations use the \"algorithm of 400\" to calculate performance rating. According to this algorithm, performance rating for an event is calculated by taking (1) the rating of each player beaten and adding 400, (2) the rating of each player lost to and subtracting 400, (3) the rating of each player drawn, and (4) summing these figures and dividing by the number of games played.\r\n\r\nFind the performance with this algorithm with ELO players and results (0=loss,0.5=draw,1=win) in input.","description_html":"\u003cp\u003eThe Elo rating system is a method for calculating the relative chess skill levels of players in competitor-versus-competitor games. ( \u003ca href = \"http://en.wikipedia.org/wiki/Elo_rating_system\"\u003ehttp://en.wikipedia.org/wiki/Elo_rating_system\u003c/a\u003e )\u003c/p\u003e\u003cp\u003eThe difference in the ratings (rating=ELO) between two players serves as a predictor of the outcome of a match. Two players with equal ratings who play against each other are expected to score an equal number of wins. A player whose rating is 100 points greater than their opponent's is expected to score 64%; if the difference is 200 points, then the expected score for the stronger player is 76%.\u003c/p\u003e\u003cp\u003eSome chess organizations use the \"algorithm of 400\" to calculate performance rating. According to this algorithm, performance rating for an event is calculated by taking (1) the rating of each player beaten and adding 400, (2) the rating of each player lost to and subtracting 400, (3) the rating of each player drawn, and (4) summing these figures and dividing by the number of games played.\u003c/p\u003e\u003cp\u003eFind the performance with this algorithm with ELO players and results (0=loss,0.5=draw,1=win) in input.\u003c/p\u003e","function_template":"function y = algo400(players,result)\r\n  y = x;\r\nend","test_suite":"%%\r\nplayers = 1000;\r\nresult = 1;\r\nassert(isequal(algo400(players,result),1400))\r\n%%\r\nplayers = 1000;\r\nresult = 0.5;\r\nassert(isequal(algo400(players,result),1000))\r\n%%\r\nassert(isequal(algo400([2000 2000],[0.5 0.5]),2000))\r\n%%\r\nplayers = [2000 2000];\r\nresult = [1 1];\r\nassert(isequal(algo400(players,result),2400))\r\n%%\r\nplayers = [2000 2000];\r\nresult = [0.5 1];\r\nassert(isequal(algo400(players,result),2200))\r\n%%\r\nplayers = [2000 2100 2200 2300];\r\nresult = [1 0.5 1 0.5];\r\nassert(isequal(algo400(players,result),2350))\r\n%%\r\nplayers = 1000;\r\nresult = 1;\r\nassert(isequal(algo400(players,result),1400))\r\n%% My last performance (my ELO is 1800)\r\nplayers = [1399 1280 2166 1534 1768 1791 1540];\r\nresult = [1 1 0 1 1 0 1];\r\nassert(isequal(round(algo400(players,result)),1811))\r\n%%\r\nplayers = [2000 2100 2200 2300];\r\nresult = [0.5 0.5 0.5 0.5];\r\nassert(isequal(algo400(players,result),2150))\r\n%% Caruana perfomance in 2014 Sinquefield Cup\r\nplayers = [2772 2768 2877 2805 2787  2772 2768 2877 2787 2805];\r\nresult = [1 1 1 1 1 1 1 0.5 0.5 0.5];\r\nassert(isequal(round(algo400(players,result)),3082))\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":1,"created_by":5390,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":96,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2015-02-28T18:02:19.000Z","updated_at":"2026-02-15T07:29:20.000Z","published_at":"2015-02-28T18:03:21.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe Elo rating system is a method for calculating the relative chess skill levels of players in competitor-versus-competitor games. (\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://en.wikipedia.org/wiki/Elo_rating_system\\\"\u003e\u003cw:r\u003e\u003cw:t\u003ehttp://en.wikipedia.org/wiki/Elo_rating_system\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e )\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe difference in the ratings (rating=ELO) between two players serves as a predictor of the outcome of a match. Two players with equal ratings who play against each other are expected to score an equal number of wins. A player whose rating is 100 points greater than their opponent's is expected to score 64%; if the difference is 200 points, then the expected score for the stronger player is 76%.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eSome chess organizations use the \\\"algorithm of 400\\\" to calculate performance rating. According to this algorithm, performance rating for an event is calculated by taking (1) the rating of each player beaten and adding 400, (2) the rating of each player lost to and subtracting 400, (3) the rating of each player drawn, and (4) summing these figures and dividing by the number of games played.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFind the performance with this algorithm with ELO players and results (0=loss,0.5=draw,1=win) in input.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":61144,"title":"FEN Chess Notation","description":"Note: This problem is the reverse, or complement, of Problem 61155 - FEN to Chess Board.\r\nGiven an 8-by-8 character matrix representing a chess board, convert it to FEN (Forsyth-Edwards Notation) board position format.\r\nThe input matrix uses:\r\nDots (\".\") for empty squares\r\nLetters for pieces: \"rnbqkp\" (black pieces) and \"RNBQKP\" (white pieces)\r\nFEN notation encodes each row from top to bottom, separated by slashes (\"/\"). Consecutive empty squares are replaced by their count (1-8).\r\n\r\nExample 1\r\nStarting position:\r\ninput = [ ...\r\n    'rnbqkbnr'\r\n    'pppppppp'\r\n    '........'\r\n    '........'\r\n    '........'\r\n    '........'\r\n    'PPPPPPPP'\r\n    'RNBQKBNR']\r\noutput =\r\n  'rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR'\r\nExample 2\r\nAfter white plays e4:\r\ninput = [ ...\r\n    'rnbqkbnr'\r\n    'pppppppp'\r\n    '........'\r\n    '........'\r\n    '....P...'\r\n    '........'\r\n    'PPPP.PPP'\r\n    'RNBQKBNR']\r\noutput =\r\n  'rnbqkbnr/pppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBNR'\r\n\r\nNote: Empty squares before the P are \"4\", the P itself, then \"3\" empty squares after.","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.44px; min-height: 0px; white-space: normal; color: rgb(33, 33, 33); font-family: Menlo, Monaco, Consolas, monospace; font-style: normal; font-size: 14px; font-weight: 400; text-decoration: none; white-space: normal; \"\u003e\u003cdiv style=\"block-size: 1352.21px; display: block; min-width: 0px; padding-block-start: 0px; padding-inline-start: 2px; padding-left: 2px; padding-top: 0px; perspective-origin: 333.5px 676.104px; transform-origin: 333.5px 676.104px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.5px; text-align: left; transform-origin: 309.5px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eNote: This problem is the reverse, or complement, of\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://www.mathworks.com/matlabcentral/cody/problems/61155-fen-to-chess-board\"\u003e\u003cspan style=\"border-block-end-color: rgb(0, 91, 130); border-block-start-color: rgb(0, 91, 130); border-bottom-color: rgb(0, 91, 130); border-inline-end-color: rgb(0, 91, 130); border-inline-start-color: rgb(0, 91, 130); border-left-color: rgb(0, 91, 130); border-right-color: rgb(0, 91, 130); border-top-color: rgb(0, 91, 130); caret-color: rgb(0, 91, 130); color: rgb(0, 91, 130); column-rule-color: rgb(0, 91, 130); outline-color: rgb(0, 91, 130); text-decoration-color: rgb(0, 91, 130); text-emphasis-color: rgb(0, 91, 130); \"\u003e\u003cspan style=\"\"\u003eProblem 61155 - FEN to Chess Board\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 21px; text-align: left; transform-origin: 309.5px 21px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eGiven an 8-by-8 character matrix representing a chess board, convert it to FEN (\u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://en.wikipedia.org/wiki/Forsyth%E2%80%93Edwards_Notation\"\u003e\u003cspan style=\"border-block-end-color: rgb(0, 91, 130); border-block-start-color: rgb(0, 91, 130); border-bottom-color: rgb(0, 91, 130); border-inline-end-color: rgb(0, 91, 130); border-inline-start-color: rgb(0, 91, 130); border-left-color: rgb(0, 91, 130); border-right-color: rgb(0, 91, 130); border-top-color: rgb(0, 91, 130); caret-color: rgb(0, 91, 130); color: rgb(0, 91, 130); column-rule-color: rgb(0, 91, 130); outline-color: rgb(0, 91, 130); text-decoration-color: rgb(0, 91, 130); text-emphasis-color: rgb(0, 91, 130); \"\u003e\u003cspan style=\"\"\u003eForsyth-Edwards Notation\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e) board position format.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.5px; text-align: left; transform-origin: 309.5px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe input matrix uses:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cul style=\"block-size: 40.875px; font-family: Helvetica, Arial, sans-serif; list-style-type: square; margin-block-end: 20px; margin-block-start: 10px; margin-bottom: 20px; margin-top: 10px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 316.5px 20.4375px; transform-origin: 316.5px 20.4375px; margin-top: 10px; margin-bottom: 20px; \"\u003e\u003cli style=\"block-size: 20.4375px; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 288.5px 10.2188px; text-align: left; transform-origin: 288.5px 10.2188px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eDots (\".\") for empty squares\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4375px; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 288.5px 10.2188px; text-align: left; transform-origin: 288.5px 10.2188px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eLetters for pieces: \"rnbqkp\" (black pieces) and \"RNBQKP\" (white pieces)\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003c/ul\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 21px; text-align: left; transform-origin: 309.5px 21px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eFEN notation encodes each row from top to bottom, separated by slashes (\"/\"). Consecutive empty squares are replaced by their count (1-8).\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 273.667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 136.833px; text-align: left; transform-origin: 309.5px 136.833px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cimg class=\"imageNode\" width=\"266\" height=\"268\" style=\"vertical-align: baseline;width: 266px;height: 268px\" src=\"data:image/png;base64,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\" data-image-state=\"image-loaded\"\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.5px; text-align: left; transform-origin: 309.5px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eExample 1\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.5px; text-align: left; transform-origin: 309.5px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eStarting position:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003einput = [ ...\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e    \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e'rnbqkbnr'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e    \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e'pppppppp'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e    \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e'........'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e    \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e'........'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e    \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e'........'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e    \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e'........'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e    \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e'PPPPPPPP'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e    \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e'RNBQKBNR']\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003eoutput =\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e  'rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.5px; text-align: left; transform-origin: 309.5px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eExample 2\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.5px; text-align: left; transform-origin: 309.5px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eAfter white plays e4:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003einput = [ ...\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e    \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e'rnbqkbnr'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e    \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e'pppppppp'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e    \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e'........'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e    \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e'........'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e    \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e'....P...'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e    \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e'........'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e    \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e'PPPP.PPP'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e    \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e'RNBQKBNR']\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003eoutput =\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e  'rnbqkbnr/pppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBNR'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.5px; text-align: left; transform-origin: 309.5px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.5px; text-align: left; transform-origin: 309.5px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eNote: Empty squares before the P are \"4\", the P itself, then \"3\" empty squares after.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function fen = fenNotation(board)\r\n  fen = '';\r\nend\r\n","test_suite":"%% Test 1: Starting position\r\nboard = ['rnbqkbnr';\r\n         'pppppppp';\r\n         '........';\r\n         '........';\r\n         '........';\r\n         '........';\r\n         'PPPPPPPP';\r\n         'RNBQKBNR'];\r\nassert(isequal(fenNotation(board), 'rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR'))\r\n\r\n%% Test 2: After 1.e4\r\nboard = ['rnbqkbnr';\r\n         'pppppppp';\r\n         '........';\r\n         '........';\r\n         '....P...';\r\n         '........';\r\n         'PPPP.PPP';\r\n         'RNBQKBNR'];\r\nassert(isequal(fenNotation(board), 'rnbqkbnr/pppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBNR'))\r\n\r\n%% Test 3: After 1.e4 c5\r\nboard = ['rnbqkbnr';\r\n         'pp.ppppp';\r\n         '........';\r\n         '..p.....';\r\n         '....P...';\r\n         '........';\r\n         'PPPP.PPP';\r\n         'RNBQKBNR'];\r\nassert(isequal(fenNotation(board), 'rnbqkbnr/pp1ppppp/8/2p5/4P3/8/PPPP1PPP/RNBQKBNR'))\r\n\r\n%% Test 4: After 1.e4 c5 2.Nf3\r\nboard = ['rnbqkbnr';\r\n         'pp.ppppp';\r\n         '........';\r\n         '..p.....';\r\n         '....P...';\r\n         '.....N..';\r\n         'PPPP.PPP';\r\n         'RNBQKB.R'];\r\nassert(isequal(fenNotation(board), 'rnbqkbnr/pp1ppppp/8/2p5/4P3/5N2/PPPP1PPP/RNBQKB1R'))\r\n\r\n%% Test 5: Complex middle game position\r\nboard = ['r.bk...r';\r\n         'p..pBpNp';\r\n         'n....n..';\r\n         '.p.NP..P';\r\n         '......P.';\r\n         '...P....';\r\n         'P.P.K...';\r\n         'q.....b.'];\r\nassert(isequal(fenNotation(board), 'r1bk3r/p2pBpNp/n4n2/1p1NP2P/6P1/3P4/P1P1K3/q5b1'))\r\n\r\n%% Test 6: Empty board\r\nboard = ['........';\r\n         '........';\r\n         '........';\r\n         '........';\r\n         '........';\r\n         '........';\r\n         '........';\r\n         '........'];\r\nassert(isequal(fenNotation(board), '8/8/8/8/8/8/8/8'))\r\n\r\n%% Test 7: Only kings\r\nboard = ['....k...';\r\n         '........';\r\n         '........';\r\n         '........';\r\n         '........';\r\n         '........';\r\n         '........';\r\n         '....K...'];\r\nassert(isequal(fenNotation(board), '4k3/8/8/8/8/8/8/4K3'))\r\n\r\n%% Test 8: Single piece per row\r\nboard = ['r.......';\r\n         '.n......';\r\n         '..b.....';\r\n         '...q....';\r\n         '....k...';\r\n         '.....B..';\r\n         '......N.';\r\n         '.......R'];\r\nassert(isequal(fenNotation(board), 'r7/1n6/2b5/3q4/4k3/5B2/6N1/7R'))\r\n\r\n%% Test 9: Alternating pieces and spaces\r\nboard = ['r.r.r.r.';\r\n         '.p.p.p.p';\r\n         'n.n.n.n.';\r\n         '.b.b.b.b';\r\n         'B.B.B.B.';\r\n         '.N.N.N.N';\r\n         'P.P.P.P.';\r\n         '.R.R.R.R'];\r\nassert(isequal(fenNotation(board), 'r1r1r1r1/1p1p1p1p/n1n1n1n1/1b1b1b1b/B1B1B1B1/1N1N1N1N/P1P1P1P1/1R1R1R1R'))\r\n\r\n%% Test 10: All pawns\r\nboard = ['pppppppp';\r\n         'pppppppp';\r\n         'pppppppp';\r\n         'pppppppp';\r\n         'PPPPPPPP';\r\n         'PPPPPPPP';\r\n         'PPPPPPPP';\r\n         'PPPPPPPP'];\r\nassert(isequal(fenNotation(board), 'pppppppp/pppppppp/pppppppp/pppppppp/PPPPPPPP/PPPPPPPP/PPPPPPPP/PPPPPPPP'))\r\n\r\n%% Test 11: After 1.d4 Nf6 2.c4 e6\r\nboard = ['rnbqkb.r';\r\n         'pppp.ppp';\r\n         '....pn..';\r\n         '........';\r\n         '..PP....';\r\n         '........';\r\n         'PP..PPPP';\r\n         'RNBQKBNR'];\r\nassert(isequal(fenNotation(board), 'rnbqkb1r/pppp1ppp/4pn2/8/2PP4/8/PP2PPPP/RNBQKBNR'))\r\n\r\n%% Test 12: After 1.e4 e5 2.Nf3 Nc6 3.Bb5\r\nboard = ['r.bqkbnr';\r\n         'pppp.ppp';\r\n         '..n.....';\r\n         '.B..p...';\r\n         '....P...';\r\n         '.....N..';\r\n         'PPPP.PPP';\r\n         'RNBQK..R'];\r\nassert(isequal(fenNotation(board), 'r1bqkbnr/pppp1ppp/2n5/1B2p3/4P3/5N2/PPPP1PPP/RNBQK2R'))\r\n\r\n%% Test 13: Endgame - King and pawns\r\nboard = ['........';\r\n         '...k....';\r\n         '..p.p...';\r\n         '........';\r\n         '........';\r\n         '..P.P...';\r\n         '...K....';\r\n         '........'];\r\nassert(isequal(fenNotation(board), '8/3k4/2p1p3/8/8/2P1P3/3K4/8'))\r\n\r\n%% Test 14: All pieces on first rank\r\nboard = ['rnbqkbnr';\r\n         '........';\r\n         '........';\r\n         '........';\r\n         '........';\r\n         '........';\r\n         '........';\r\n         'RNBQKBNR'];\r\nassert(isequal(fenNotation(board), 'rnbqkbnr/8/8/8/8/8/8/RNBQKBNR'))\r\n\r\n%% Test 15: Pieces at edges\r\nboard = ['r......r';\r\n         'p......p';\r\n         '........';\r\n         '........';\r\n         '........';\r\n         '........';\r\n         'P......P';\r\n         'R......R'];\r\nassert(isequal(fenNotation(board), 'r6r/p6p/8/8/8/8/P6P/R6R'))\r\n\r\n%% Test 16: After 1.Nf3 Nf6 2.g3 g6\r\nboard = ['rnbqkb.r';\r\n         'pppppp.p';\r\n         '.....np.';\r\n         '........';\r\n         '........';\r\n         '.....NP.';\r\n         'PPPPPP.P';\r\n         'RNBQKB.R'];\r\nassert(isequal(fenNotation(board), 'rnbqkb1r/pppppp1p/5np1/8/8/5NP1/PPPPPP1P/RNBQKB1R'))\r\n\r\n%% Test 17: Queen's Gambit Declined\r\nboard = ['rnbqkb.r';\r\n         'ppp..ppp';\r\n         '....pn..';\r\n         '...p....';\r\n         '..PP....';\r\n         '..N.....';\r\n         'PP..PPPP';\r\n         'R.BQKBNR'];\r\nassert(isequal(fenNotation(board), 'rnbqkb1r/ppp2ppp/4pn2/3p4/2PP4/2N5/PP2PPPP/R1BQKBNR'))\r\n\r\n%% Test 18: Scattered position\r\nboard = ['...q....';\r\n         '........';\r\n         '.k....n.';\r\n         '........';\r\n         '.....P..';\r\n         '..N.....';\r\n         '........';\r\n         '...Q.K..'];\r\nassert(isequal(fenNotation(board), '3q4/8/1k4n1/8/5P2/2N5/8/3Q1K2'))\r\n\r\n%% Test 19: Dense position\r\nboard = ['rnbqkbnr';\r\n         'pppppppp';\r\n         '..N.....';\r\n         '........';\r\n         '........';\r\n         '........';\r\n         'PPPPPPPP';\r\n         'R.BQKBNR'];\r\nassert(isequal(fenNotation(board), 'rnbqkbnr/pppppppp/2N5/8/8/8/PPPPPPPP/R1BQKBNR'))\r\n\r\n%% Test 20: Single empty squares between pieces\r\nboard = ['r.b.k.b.';\r\n         'p.p.p.p.';\r\n         '.n.q.n.r';\r\n         '........';\r\n         '........';\r\n         '.N.Q.N.R';\r\n         'P.P.P.P.';\r\n         'R.B.K.B.'];\r\nassert(isequal(fenNotation(board), 'r1b1k1b1/p1p1p1p1/1n1q1n1r/8/8/1N1Q1N1R/P1P1P1P1/R1B1K1B1'))\r\n","published":true,"deleted":false,"likes_count":0,"comments_count":0,"created_by":7,"edited_by":7,"edited_at":"2026-01-08T15:31:59.000Z","deleted_by":null,"deleted_at":null,"solvers_count":8,"test_suite_updated_at":"2025-12-24T20:06:01.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2025-12-24T19:24:48.000Z","updated_at":"2026-02-26T10:51:57.000Z","published_at":"2025-12-24T20:06:01.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eNote: This problem is the reverse, or complement, of\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/61155-fen-to-chess-board\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eProblem 61155 - FEN to Chess Board\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eGiven an 8-by-8 character matrix representing a chess board, convert it to FEN (\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://en.wikipedia.org/wiki/Forsyth%E2%80%93Edwards_Notation\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eForsyth-Edwards Notation\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e) board position format.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe input matrix uses:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eDots (\\\".\\\") for empty squares\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eLetters for pieces: \\\"rnbqkp\\\" (black pieces) and \\\"RNBQKP\\\" (white pieces)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFEN notation encodes each row from top to bottom, separated by slashes (\\\"/\\\"). Consecutive empty squares are replaced by their count (1-8).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"268\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"266\\\"/\u003e\u003cw:attr w:name=\\\"verticalAlign\\\" w:val=\\\"baseline\\\"/\u003e\u003cw:attr w:name=\\\"altText\\\" w:val=\\\"\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId1\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eExample 1\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eStarting position:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003einput = [ ...\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e    \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e'rnbqkbnr'\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e    \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e'pppppppp'\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e    \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e'........'\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e    \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e'........'\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e    \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e'........'\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e    \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e'........'\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e    \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e'PPPPPPPP'\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e    \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e'RNBQKBNR']\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eoutput =\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e  'rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR'\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eExample 2\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eAfter white plays e4:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003einput = [ ...\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e    \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e'rnbqkbnr'\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e    \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e'pppppppp'\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e    \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e'........'\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e    \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e'........'\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e    \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e'....P...'\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e    \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e'........'\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e    \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e'PPPP.PPP'\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e    \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e'RNBQKBNR']\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eoutput =\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e  'rnbqkbnr/pppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBNR'\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eNote: Empty squares before the P are \\\"4\\\", the P itself, then \\\"3\\\" empty squares after.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\",\"relationship\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"target\":\"/media/image1.png\",\"relationshipId\":\"rId1\"}]},{\"partUri\":\"/media/image1.png\",\"contentType\":\"image/png\",\"content\":\"data:image/png;base64,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\",\"relationship\":null}],\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"target\":\"/matlab/document.xml\",\"relationshipId\":\"rId1\"}]}"},{"id":45240,"title":"Can the knight take out the pawn?","description":"* position of knight = k\r\n* position of pawns  = p\r\n\r\ncan the knight take out those pawns?\r\n\r\n* k='Nf4'\r\n* p={'g6','g7'}\r\n\r\nthen output should be [1,0]\r\n\r\n","description_html":"\u003cul\u003e\u003cli\u003eposition of knight = k\u003c/li\u003e\u003cli\u003eposition of pawns  = p\u003c/li\u003e\u003c/ul\u003e\u003cp\u003ecan the knight take out those pawns?\u003c/p\u003e\u003cul\u003e\u003cli\u003ek='Nf4'\u003c/li\u003e\u003cli\u003ep={'g6','g7'}\u003c/li\u003e\u003c/ul\u003e\u003cp\u003ethen output should be [1,0]\u003c/p\u003e","function_template":"function y = knight_move(k,p)\r\n  y = x;\r\nend","test_suite":"%%\r\nk = 'Nd5';\r\np={'c3','c4','d3','e3','f4','f5','f6','g2','a5'}\r\ny_correct =  [1     0     0     1     1     0     1     0     0];\r\nassert(isequal(knight_move(k,p),y_correct))\r\n\r\n%%\r\nk = 'Ne3';\r\np={'c3','c4','d3','f4','f5','f6','g2','a5'}\r\ny_correct =  [0     1     0      0     1     0     1     0];\r\nassert(isequal(knight_move(k,p),y_correct))\r\n\r\n%%\r\nk = 'Na8';\r\np={'c3','a7','a6','b6','c6','b2','f6'}\r\ny_correct = [ 0     0     0     1     0     0     0];\r\nassert(isequal(knight_move(k,p),y_correct))\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":363598,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":14,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2019-12-21T22:12:27.000Z","updated_at":"2026-01-23T13:26:38.000Z","published_at":"2019-12-21T22:18:45.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eposition of knight = k\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eposition of pawns = p\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ecan the knight take out those pawns?\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ek='Nf4'\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ep={'g6','g7'}\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ethen output should be [1,0]\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":45427,"title":"King's Cage","description":"Given the position of the king on the chessboard, determine the minimum number of steps it'll require to reach the destination.\r\n\r\n\u003chttps://en.wikipedia.org/wiki/Chess#Movement\u003e\r\n\r\nFor simplicity, numerical notation is used to represent the positions.","description_html":"\u003cp\u003eGiven the position of the king on the chessboard, determine the minimum number of steps it'll require to reach the destination.\u003c/p\u003e\u003cp\u003e\u003ca href = \"https://en.wikipedia.org/wiki/Chess#Movement\"\u003ehttps://en.wikipedia.org/wiki/Chess#Movement\u003c/a\u003e\u003c/p\u003e\u003cp\u003eFor simplicity, numerical notation is used to represent the positions.\u003c/p\u003e","function_template":"function i = king(x,y)","test_suite":"%%\r\nx=[1,1];\r\ny=[5,5];\r\nassert(isequal( king(x,y),4))\r\n\r\n%%\r\nx=[6,6];\r\ny=[2,3];\r\nassert(isequal( king(x,y),4))\r\n\r\n%%\r\nx=[5,1];\r\ny=[5,5];\r\nassert(isequal( king(x,y),4))\r\n\r\n%%\r\nx=[2,3];\r\ny=[8,8];\r\nassert(isequal( king(x,y),6))\r\n\r\n%%\r\nx=[2,8];\r\ny=[7,1];\r\nassert(isequal( king(x,y),7))\r\n\r\n%%\r\nx=[1,4];\r\ny=[8,3];\r\nassert(isequal( king(x,y),7))\r\n\r\n\r\n%%\r\nx=[5,8];\r\ny=[5,8];\r\nassert(isequal( king(x,y),0))\r\n\r\n\r\n%%\r\nx=[1,4];\r\ny=[3,4];\r\nassert(isequal( king(x,y),2))\r\n","published":true,"deleted":false,"likes_count":2,"comments_count":0,"created_by":363598,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":57,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2020-04-07T06:55:52.000Z","updated_at":"2026-03-16T10:45:46.000Z","published_at":"2020-04-07T06:55:52.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eGiven the position of the king on the chessboard, determine the minimum number of steps it'll require to reach the destination.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:hyperlink w:docLocation=\\\"https://en.wikipedia.org/wiki/Chess#Movement\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026lt;https://en.wikipedia.org/wiki/Chess#Movement\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026gt;\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFor simplicity, numerical notation is used to represent the positions.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":1174,"title":"Wheat on a chessboard pt 2","description":"If a chessboard were to have wheat placed upon each square such that x grains were placed on the first square and each successive square after had y times the amount of grains as the square before. How many grains of wheat would be on the chessboard at the finish?\r\n\r\nAssume the chess board is n by n squares.","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.4333px; min-height: 0px; white-space: normal; color: rgb(0, 0, 0); font-family: Menlo, Monaco, Consolas, monospace; font-style: normal; font-size: 14px; font-weight: 400; text-decoration: rgb(0, 0, 0); white-space: normal; \"\u003e\u003cdiv style=\"block-size: 93px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 46.5px; transform-origin: 407px 46.5px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 63px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 31.5px; text-align: left; transform-origin: 384px 31.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 384px 8px; transform-origin: 384px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eIf a chessboard were to have wheat placed upon each square such that x grains were placed on the first square and each successive square after had y times the amount of grains as the square before. How many grains of wheat would be on the chessboard at the finish?\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 136px 8px; transform-origin: 136px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eAssume the chess board is n by n squares.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function A = wheat_chess(x,y,n)\r\n  A = x + y + n;\r\nend","test_suite":"%%\r\nx = 56;\r\ny = 1;\r\nn = 1;\r\nA_correct = 56;\r\nassert(isequal(wheat_chess(x,y,n),A_correct))\r\n\r\n%%\r\nx = 1;\r\ny = 2;\r\nn = 8;\r\nA_correct = 18446744073709551615;\r\nassert(isequal(wheat_chess(x,y,n),A_correct))\r\n\r\n\r\n%%\r\nx = 5;\r\ny = 3;\r\nn = 2;\r\nA_correct = 200;\r\nassert(isequal(wheat_chess(x,y,n),A_correct))\r\n\r\n%%\r\nx = 10;\r\ny = 5;\r\nn = 3;\r\nA_correct = 4882810;\r\nassert(isequal(wheat_chess(x,y,n),A_correct))\r\n\r\n%%\r\nx = 1;\r\ny = 0;\r\nn = 1;\r\nA_correct = 1;\r\nassert(isequal(wheat_chess(x,y,n),A_correct))\r\n\r\n\r\n%%\r\nx = 12;\r\ny = 1;\r\nn = 3;\r\nA_correct = 108;\r\nassert(isequal(wheat_chess(x,y,n),A_correct))\r\n\r\n\r\n%%\r\nx = 0;\r\ny = 1e5;\r\nn = 7;\r\nA_correct = 0;\r\nassert(isequal(wheat_chess(x,y,n),A_correct))\r\n\r\n%%\r\nx = 6;\r\ny = 2;\r\nn = 4;\r\nA_correct = 393210;\r\nassert(isequal(wheat_chess(x,y,n),A_correct))","published":true,"deleted":false,"likes_count":0,"comments_count":6,"created_by":9554,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":130,"test_suite_updated_at":"2021-05-05T10:17:41.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2013-01-04T18:21:52.000Z","updated_at":"2026-02-15T07:12:03.000Z","published_at":"2013-01-04T18:21:52.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eIf a chessboard were to have wheat placed upon each square such that x grains were placed on the first square and each successive square after had y times the amount of grains as the square before. How many grains of wheat would be on the chessboard at the finish?\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eAssume the chess board is n by n squares.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\",\"relationship\":null}],\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"target\":\"/matlab/document.xml\",\"relationshipId\":\"rId1\"}]}"},{"id":45329,"title":"Castling-01","description":"Given the position of only one player's chess pieces(some of them) on the chessboard, figure out whether castling is valid or not.\r\n\r\n\u003chttps://en.wikipedia.org/wiki/Castling\u003e","description_html":"\u003cp\u003eGiven the position of only one player's chess pieces(some of them) on the chessboard, figure out whether castling is valid or not.\u003c/p\u003e\u003cp\u003e\u003ca href = \"https://en.wikipedia.org/wiki/Castling\"\u003ehttps://en.wikipedia.org/wiki/Castling\u003c/a\u003e\u003c/p\u003e","function_template":"function y = castling_01(a)\r\n  y = x;\r\nend","test_suite":"%%\r\na={'Ra1','Ka7'}\r\nassert(isequal(castling_01(a),0))\r\n%%\r\na={'Ra1','Rh1'}\r\nassert(isequal(castling_01(a),0))\r\n%%\r\na={'Ra1','Rh1','Kh8'}\r\nassert(isequal(castling_01(a),0))\r\n%%\r\na={'Ra1','Rc1','Kh5'}\r\nassert(isequal(castling_01(a),0))\r\n%%\r\na={'Ra1','Rh1','Ke1'}\r\nassert(isequal(castling_01(a),1))\r\n%%\r\na={'Ra1','Rh1','Ke1'}\r\nassert(isequal(castling_01(a),1))\r\n%%\r\na={'Rh1','Ke1'}\r\nassert(isequal(castling_01(a),1))\r\n%%\r\na={'Rh5','Ke5'}\r\nassert(isequal(castling_01(a),0))\r\n%%\r\na={'Ra8','Ke8'}\r\nassert(isequal(castling_01(a),1))\r\n%%\r\na={'Rd8','Rh8','Ke8'}\r\nassert(isequal(castling_01(a),1))\r\n%%\r\na={'Rh8','Kd8'}\r\nassert(isequal(castling_01(a),0))","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":363598,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":16,"test_suite_updated_at":"2020-02-15T23:25:16.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2020-02-15T12:59:18.000Z","updated_at":"2026-01-23T13:34:49.000Z","published_at":"2020-02-15T23:08:34.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eGiven the position of only one player's chess pieces(some of them) on the chessboard, figure out whether castling is valid or not.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:hyperlink w:docLocation=\\\"https://en.wikipedia.org/wiki/Castling\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026lt;https://en.wikipedia.org/wiki/Castling\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026gt;\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":45336,"title":"chess position","description":"given the position of a chess piece in algebric notation, convert it into 8 by 8 matrix format. For example,\r\n\r\n* 'Qd5' \u003e\u003e [3,4]\r\n\r\nNb. invalid ones should be represented by nan.\r\n","description_html":"\u003cp\u003egiven the position of a chess piece in algebric notation, convert it into 8 by 8 matrix format. For example,\u003c/p\u003e\u003cul\u003e\u003cli\u003e'Qd5' \u0026gt;\u0026gt; [3,4]\u003c/li\u003e\u003c/ul\u003e\u003cp\u003eNb. invalid ones should be represented by nan.\u003c/p\u003e","function_template":"function a = chess_pos(pos)\r\n  y = x;\r\nend","test_suite":"%%\r\npos={'Qe5','Rb2'}\r\na=[4,1;4,1]\r\nassert(isequal(chess_pos(pos),a))\r\n\r\n%%\r\npos={'a5','Nb8'}\r\na=[0,1;4,7]\r\nassert(isequal(chess_pos(pos),a))\r\n\r\n%%\r\npos={'Ng8'}\r\na=[6;7]\r\nassert(isequal(chess_pos(pos),a))\r\n\r\n%%\r\npos={'f1','Qb1','Bd9','c3','Rg7'}\r\na=[  5     1   NaN     2     6;\r\n     0     0   NaN     2     6]\r\nassert(isequaln(chess_pos(pos),a))\r\n\r\n%%\r\npos={'k1','Kc3','Rh9'}\r\na= [NaN     2   NaN\r\n   NaN     2   NaN]\r\nassert(isequaln(chess_pos(pos),a))","published":true,"deleted":false,"likes_count":0,"comments_count":0,"created_by":363598,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":16,"test_suite_updated_at":"2020-02-17T05:55:18.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2020-02-16T23:12:04.000Z","updated_at":"2026-01-23T14:06:55.000Z","published_at":"2020-02-17T05:55:18.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003egiven the position of a chess piece in algebric notation, convert it into 8 by 8 matrix format. For example,\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e'Qd5' \u0026gt;\u0026gt; [3,4]\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eNb. invalid ones should be represented by nan.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":57660,"title":"Knight Moves?","description":"One of my favorite games are chess. Let’s do something with chess. If you don’t know chess, that’s completely fine. You can still solve this problem.\r\nA chess board has 8 rows and 8 columns. You can think of it as an 8-by-8 matrix. Now your board contains only one piece, a knight. It is placed at (x,y) position. For the picture below, the knight is at (5,5).\r\nA knight has 8 possible valid moves that are marked as cross in the picture. For example, a knight can move – ‘two steps right and one step up’; which brings it to position (4,7).\r\nWrite a code to find out those 8 valid positions from any input value of (x,y).\r\n\r\nOutput: (4,7), (6,7), (4,3), (6,3), (3,4), (3,6), (7,4), (7,6). \r\nUse an 8 by 2 matrix to represent the answer.\r\nUse sortrows() function to match the output","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.44px; min-height: 0px; white-space: normal; color: rgb(0, 0, 0); font-family: Menlo, Monaco, Consolas, monospace; font-style: normal; font-size: 14px; font-weight: 400; text-decoration: none solid rgb(0, 0, 0); white-space: normal; \"\u003e\u003cdiv style=\"block-size: 924.46px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 406.989px 462.23px; transform-origin: 406.996px 462.23px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 42.017px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 383.991px 21.0085px; text-align: left; transform-origin: 383.999px 21.0085px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eOne of my favorite games are chess. Let’s do something with chess. If you don’t know chess, that’s completely fine. You can still solve this problem.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42.017px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 383.991px 21.0085px; text-align: left; transform-origin: 383.999px 21.0085px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eA chess board has 8 rows and 8 columns. You can think of it as an 8-by-8 matrix. Now your board contains only one piece, a knight. It is placed at (x,y) position. For the picture below, the knight is at (5,5).\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42.017px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 383.991px 21.0085px; text-align: left; transform-origin: 383.999px 21.0085px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eA knight has 8 possible valid moves that are marked as cross in the picture. For example, a knight can move – ‘two steps right and one step up’; which brings it to position (4,7).\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.0085px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 383.991px 10.4972px; text-align: left; transform-origin: 383.999px 10.5043px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eWrite a code to find out those 8 valid positions from any input value of (x,y).\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 660.554px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 383.991px 330.27px; text-align: left; transform-origin: 383.999px 330.277px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cimg class=\"imageNode\" width=\"701\" height=\"655\" style=\"vertical-align: baseline;width: 701px;height: 655px\" src=\"data:image/png;base64,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\" data-image-state=\"image-loaded\"\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.0085px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 383.991px 10.4972px; text-align: left; transform-origin: 383.999px 10.5043px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eOutput: (4,7), (6,7), (4,3), (6,3), (3,4), (3,6), (7,4), (7,6). \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cul style=\"block-size: 40.8807px; font-family: Helvetica, Arial, sans-serif; list-style-type: square; margin-block-end: 20px; margin-block-start: 10px; margin-bottom: 20px; margin-top: 10px; perspective-origin: 390.994px 20.4403px; transform-origin: 390.994px 20.4403px; margin-top: 10px; margin-bottom: 20px; \"\u003e\u003cli style=\"background-position: 0px 50%; block-size: 20.4403px; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 362.997px 10.2131px; text-align: left; transform-origin: 362.997px 10.2202px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"background-position: 0% 0%; block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eUse an 8 by 2 matrix to represent the answer.\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"background-position: 0px 50%; block-size: 20.4403px; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 362.997px 10.2131px; text-align: left; transform-origin: 362.997px 10.2202px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"background-position: 0% 0%; block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eUse \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://www.mathworks.com/help/matlab/ref/double.sortrows.html\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003esortrows()\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"background-position: 0% 0%; block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e function to match the output\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003c/ul\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function out = knightmoves(x,y)\r\n  y = x;\r\nend","test_suite":"%%\r\nx = 1;\r\ny= 1;\r\nout_correct=[2 3;3 2]\r\nassert(isequal(knightmoves(x,y),out_correct))\r\n%%\r\nx = 1;\r\ny= 8;\r\nout_correct=[2 6;3 7]\r\nassert(isequal(knightmoves(x,y),out_correct))\r\n%%\r\nx = 8;\r\ny= 1;\r\nout_correct=[6 2;7 3]\r\nassert(isequal(knightmoves(x,y),out_correct))\r\n%%\r\nx = 8;\r\ny= 8;\r\nout_correct=[6 7;7 6]\r\nassert(isequal(knightmoves(x,y),out_correct))\r\n%%\r\nx = 5;\r\ny= 5;\r\nout_correct=[3     4;\r\n     3     6;\r\n     4     3;\r\n     4     7;\r\n     6     3;\r\n     6     7;\r\n     7     4;\r\n     7     6]\r\nassert(isequal(knightmoves(x,y),out_correct))\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":2294940,"edited_by":2294940,"edited_at":"2023-02-07T16:06:00.000Z","deleted_by":null,"deleted_at":null,"solvers_count":14,"test_suite_updated_at":"2023-02-07T16:06:00.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2023-02-07T15:49:55.000Z","updated_at":"2025-08-31T10:14:33.000Z","published_at":"2023-02-07T16:02:32.000Z","restored_at":null,"restored_by":null,"spam":null,"simulink":false,"admin_reviewed":false,"description_opc":"{\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eOne of my favorite games are chess. Let’s do something with chess. If you don’t know chess, that’s completely fine. You can still solve this problem.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eA chess board has 8 rows and 8 columns. You can think of it as an 8-by-8 matrix. Now your board contains only one piece, a knight. It is placed at (x,y) position. For the picture below, the knight is at (5,5).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eA knight has 8 possible valid moves that are marked as cross in the picture. For example, a knight can move – ‘two steps right and one step up’; which brings it to position (4,7).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eWrite a code to find out those 8 valid positions from any input value of (x,y).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"655\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"701\\\"/\u003e\u003cw:attr w:name=\\\"verticalAlign\\\" w:val=\\\"baseline\\\"/\u003e\u003cw:attr w:name=\\\"altText\\\" w:val=\\\"\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId1\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eOutput: (4,7), (6,7), (4,3), (6,3), (3,4), (3,6), (7,4), (7,6). \u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eUse an 8 by 2 matrix to represent the answer.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eUse \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/help/matlab/ref/double.sortrows.html\\\"\u003e\u003cw:r\u003e\u003cw:t\u003esortrows()\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e function to match the output\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\",\"relationship\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"target\":\"/media/image1.png\",\"relationshipId\":\"rId1\"}]},{\"partUri\":\"/media/image1.png\",\"contentType\":\"image/png\",\"content\":\"data:image/png;base64,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\",\"relationship\":null}],\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"target\":\"/matlab/document.xml\",\"relationshipId\":\"rId1\"}]}"},{"id":3057,"title":"Chess performance","description":"After Problems \u003chttp://www.mathworks.com/matlabcentral/cody/problems/3054-chess-elo-rating-system/ 3054\u003e and \u003chttp://www.mathworks.com/matlabcentral/cody/problems/3056-chess-probability/ 3056\u003e\r\n\r\n\r\nIn \u003chttp://en.wikipedia.org/wiki/Elo_rating_system Chess\u003e, performance isn't measured absolutely; it is inferred from wins (1), losses (0), and draws (0.5) against other players. A player's rating depends on the ratings of their opponents, and the results scored against them. The difference in rating between two players determines an estimate for the expected score between them.\r\n\r\nSupposing Player A was expected to score Ea points (but actually scored Sa).\r\n\r\nThe formula for updating his rating is :\r\n\r\n\u003c\u003chttp://upload.wikimedia.org/math/2/3/f/23fbcb658ac1e2565003c2190f28a21e.png\u003e\u003e\r\n\r\n* \r\n* \r\n\r\n\r\nThis update can be performed after each game or each tournament, or after any suitable rating period. \r\n\r\nSuppose Player A has a rating *Ra* of 1613, and plays in a five-round tournament. He (or she) loses to a player rated 1609, draws with a player rated 1477, defeats a player rated 1388, defeats a player rated 1586, and loses to a player rated 1720. The player's actual score *Sa* is (0 + 0.5 + 1 + 1 + 0) = 2.5. The expected score *Ea* , calculated according to the formula see in Problem 3056, was (0.506 + 0.686 + 0.785 + 0.539 + 0.351) = 2.867. Therefore the player's new rating *R'a* is (1613 + 32×(2.5 − 2.867)) = 1601. We assume that the *K* factor is always 32.\r\n\r\nI give you rating of Player A, ratings of their opponents and results. \r\n\r\nCompute the new rating (K = 32).\r\n\r\n\r\n","description_html":"\u003cp\u003eAfter Problems \u003ca href = \"http://www.mathworks.com/matlabcentral/cody/problems/3054-chess-elo-rating-system/\"\u003e3054\u003c/a\u003e and \u003ca href = \"http://www.mathworks.com/matlabcentral/cody/problems/3056-chess-probability/\"\u003e3056\u003c/a\u003e\u003c/p\u003e\u003cp\u003eIn \u003ca href = \"http://en.wikipedia.org/wiki/Elo_rating_system\"\u003eChess\u003c/a\u003e, performance isn't measured absolutely; it is inferred from wins (1), losses (0), and draws (0.5) against other players. A player's rating depends on the ratings of their opponents, and the results scored against them. The difference in rating between two players determines an estimate for the expected score between them.\u003c/p\u003e\u003cp\u003eSupposing Player A was expected to score Ea points (but actually scored Sa).\u003c/p\u003e\u003cp\u003eThe formula for updating his rating is :\u003c/p\u003e\u003cimg src = \"http://upload.wikimedia.org/math/2/3/f/23fbcb658ac1e2565003c2190f28a21e.png\"\u003e\u003cul\u003e\u003cli\u003e\u003c/li\u003e\u003cli\u003e\u003c/li\u003e\u003c/ul\u003e\u003cp\u003eThis update can be performed after each game or each tournament, or after any suitable rating period.\u003c/p\u003e\u003cp\u003eSuppose Player A has a rating \u003cb\u003eRa\u003c/b\u003e of 1613, and plays in a five-round tournament. He (or she) loses to a player rated 1609, draws with a player rated 1477, defeats a player rated 1388, defeats a player rated 1586, and loses to a player rated 1720. The player's actual score \u003cb\u003eSa\u003c/b\u003e is (0 + 0.5 + 1 + 1 + 0) = 2.5. The expected score \u003cb\u003eEa\u003c/b\u003e , calculated according to the formula see in Problem 3056, was (0.506 + 0.686 + 0.785 + 0.539 + 0.351) = 2.867. Therefore the player's new rating \u003cb\u003eR'a\u003c/b\u003e is (1613 + 32×(2.5 − 2.867)) = 1601. We assume that the \u003cb\u003eK\u003c/b\u003e factor is always 32.\u003c/p\u003e\u003cp\u003eI give you rating of Player A, ratings of their opponents and results.\u003c/p\u003e\u003cp\u003eCompute the new rating (K = 32).\u003c/p\u003e","function_template":"function y = new_elo(opponents_elo,res,elo_playerA)\r\n  y = x;\r\nend","test_suite":"%%\r\nplayera=1613;\r\nelos=[1609 1477 1388 1586 1720];\r\nres=[0 0.5 1 1 0];\r\nassert(isequal(new_elo(elos,res,playera),1601))\r\n%%\r\nplayera=1613;\r\nelos=[1609 1477 1586 1720];\r\nres=[0 1 1 1];\r\nassert(isequal(new_elo(elos,res,playera),1642))\r\n%%\r\nplayera=1613;\r\nelos=[1613 1613 1613 1613 1613];\r\nres=[0.5 0.5 0.5 0.5 0.5];\r\nassert(isequal(new_elo(elos,res,playera),1613))\r\n%%\r\nassert(isequal(new_elo([1800 1900 2000 2100 2200],[1 0 1 0 1],1900),1935))\r\n%% My new ELO\r\nplayera=1800;\r\nelos=[1399 1280 2166 1534 1768 1791 1540];\r\nres=[1 1 0 1 1 0 1];\r\nassert(isequal(new_elo(elos,res,playera),1811))\r\n%% The last game was critical (-32 points if I lost)\r\nplayera=1800;\r\nelos=[1399 1280 2166 1534 1768 1791 1540];\r\nres=[1 1 0 1 1 0 0];\r\nassert(isequal(new_elo(elos,res,playera),1779))\r\n%% Perfect tournament ?\r\nplayera=1800;\r\nelos=[1399 1280 2166 1534 1768 1791 1540];\r\nres=[1 1 1 1 1 1 1];\r\nassert(isequal(new_elo(elos,res,playera),1875))\r\n%% Caruana in 2014 Sinquefield Cup (notice that K=16 for these guys)\r\ncaruana=2801;\r\nelos = [2772 2768 2877 2805 2787  2772 2768 2877 2787 2805];\r\nres = [1 1 1 1 1 1 1 0.5 0.5 0.5];\r\nassert(isequal(new_elo(elos,res,caruana),2913))","published":true,"deleted":false,"likes_count":3,"comments_count":5,"created_by":5390,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":65,"test_suite_updated_at":"2015-03-02T20:49:24.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2015-02-28T23:49:25.000Z","updated_at":"2026-02-15T07:24:43.000Z","published_at":"2015-02-28T23:53:01.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/media/image1.png\"}],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eAfter Problems\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://www.mathworks.com/matlabcentral/cody/problems/3054-chess-elo-rating-system/\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e3054\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e and\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://www.mathworks.com/matlabcentral/cody/problems/3056-chess-probability/\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e3056\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eIn\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://en.wikipedia.org/wiki/Elo_rating_system\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eChess\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e, performance isn't measured absolutely; it is inferred from wins (1), losses (0), and draws (0.5) against other players. A player's rating depends on the ratings of their opponents, and the results scored against them. The difference in rating between two players determines an estimate for the expected score between them.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eSupposing Player A was expected to score Ea points (but actually scored Sa).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe formula for updating his rating is :\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId1\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis update can be performed after each game or each tournament, or after any suitable rating period.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eSuppose Player A has a rating\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eRa\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e of 1613, and plays in a five-round tournament. He (or she) loses to a player rated 1609, draws with a player rated 1477, defeats a player rated 1388, defeats a player rated 1586, and loses to a player rated 1720. The player's actual score\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eSa\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e is (0 + 0.5 + 1 + 1 + 0) = 2.5. The expected score\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eEa\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e , calculated according to the formula see in Problem 3056, was (0.506 + 0.686 + 0.785 + 0.539 + 0.351) = 2.867. Therefore the player's new rating\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eR'a\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e is (1613 + 32×(2.5 − 2.867)) = 1601. We assume that the\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eK\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e factor is always 32.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eI give you rating of Player A, ratings of their opponents and results.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eCompute the new rating (K = 32).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"},{\"partUri\":\"/media/image1.png\",\"contentType\":\"image/png\",\"content\":\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAANYAAAAWBAMAAABOJX+pAAAAMFBMVEX///8wMDDMzMwEBASKiooWFhZiYmKenp62trbm5uZQUFBAQEAMDAwiIiJ0dHQAAAB7s/cyAAAAAXRSTlMAQObYZgAAAzpJREFUeNq9VllIVFEY/mZxFmfcSAxCdJSoJKkRCiQhhyAKhZrESerJjBRc6ELQAmJTQRAFjpAPLdaET5EPPmRRJA4aSQulBrYQNiHai+aQozkq2n/uMs7cOSMW1A/33P/cf/nO+ZdzLiCTyYZ/TVqFWXDjv1Hz3+2rak1ayeJG9MBkSo92oiLLz1EZnAhkPxJ4grJiz/mmS279CM0SvUlfa2OVGpp7sDEtlbE/byiZ+gU88/RzNyvA8pIrcABtFIkcloYhGJ5zdExBkvkkPkfO11II6CsL8Vz6PVjcyRU4YeqjSNAyoTuAeZ7SUgI9AVlfkLCMlYBQz01XNUlnI+YD4fgIKPbSu5AeN2Gu5xgbK2jolHiDV8KapZCOPOViHaOVfeEJsmH4xPJGy0QNPXZeiTtRCTmGIb+ElW9D2+gctyF6YX7Hc2MKmd8z62UPDe0foLiMIveAuRNKxdVIdehbHmv8HtawlIjO2tloNYzXdYGbirNZ7D3nIJAzQsFBXnP6O4YveJVJv4S1bdTcvSusMfNgRXt6yH6bV2FYeD01L2Kyip5vvbiXh1XdsvV0eHLtsPginJP8FtR5YRALKUFVG7pe9LDwpcjzQ2xwsiGXUZ74sQgG8VgSjevEfGm7ZbVYyh+QUWqZ4y6X64TLJcLlZ0EQm9QjRgaMN9xn7qYYTYrJfgIdTIqxdG5YtZI+IXaq8uW7B42DzXxpNJbSvuwQQ+wrwDDzEKQh9zPgugs0LrOgToUXak2g7mu4ohi3sm8aSu+M2AMx7ZxJUWJbNlod0TFcR8sLMn+Up2+A+QjxgiqzGrtkIBmnSzGkjOw3++WFqboIQfcd4NyMqvuoCBc1rJCov3YIuL6Z9u4pUzUMuWzzKMYPYX6rt5Rf9QiFeTT/8UYF1bX7xT795URox+vbYwQtiR+3IInWfauodOk4wTvqtkfqWMrrA0erphVj6t+IM9yEjDg3ghHJTtUZJZN5pYcFjK1irPdGfdxUPRgHqxJG+fBIVYseK4wBOLWKcZIt8l5Gyc10PlROFTa8ktiAWjauJCfDpu3wxjduirod4y5sVWJ3xFooKiDaTJs22/vnYHvW9g8gtvNvC0XkMLGLXXkAAAAASUVORK5CYII=\"}]}"},{"id":3056,"title":"Chess probability","description":"The difference in the ratings between two players serves as a predictor of the outcome of a match (the \u003chttp://en.wikipedia.org/wiki/Elo_rating_system Elo rating system\u003e)\r\n\r\nIf Player A has a rating of Ra and Player B a rating of Rb, the formula for the expected score of Player A is :\r\n\r\n\u003c\u003chttp://upload.wikimedia.org/math/b/0/3/b0366725c224ee55eab6e2371dc6a0ef.png\u003e\u003e\r\n \r\n* \r\n \r\n\r\nTwo players with equal ratings who play against each other are expected to score an equal number of wins. A player whose rating is 100 points greater than their opponent's is expected to score 64%; if the difference is 200 points, then the expected score for the stronger player is 76%.\r\n\r\nI give you two ELOs, compute the expected score (round to 3 digits), or probability  that the first player wins.\r\n\r\n\r\n","description_html":"\u003cp\u003eThe difference in the ratings between two players serves as a predictor of the outcome of a match (the \u003ca href = \"http://en.wikipedia.org/wiki/Elo_rating_system\"\u003eElo rating system\u003c/a\u003e)\u003c/p\u003e\u003cp\u003eIf Player A has a rating of Ra and Player B a rating of Rb, the formula for the expected score of Player A is :\u003c/p\u003e\u003cimg src = \"http://upload.wikimedia.org/math/b/0/3/b0366725c224ee55eab6e2371dc6a0ef.png\"\u003e\u003cul\u003e\u003cli\u003e\u003c/li\u003e\u003c/ul\u003e\u003cp\u003eTwo players with equal ratings who play against each other are expected to score an equal number of wins. A player whose rating is 100 points greater than their opponent's is expected to score 64%; if the difference is 200 points, then the expected score for the stronger player is 76%.\u003c/p\u003e\u003cp\u003eI give you two ELOs, compute the expected score (round to 3 digits), or probability  that the first player wins.\u003c/p\u003e","function_template":"function y = expected_score(elo1,elo2)\r\n  y = x;\r\nend","test_suite":"%%\r\nx = 1800;\r\ny = 1800;\r\nassert(isequal(expected_score(x,y),0.5))\r\n%%\r\nx = 1900;\r\ny = 1800;\r\nassert(isequal(expected_score(x,y),0.64))\r\n%%\r\nx = 1900;\r\ny = 2000;\r\nassert(isequal(expected_score(x,y),0.36))\r\n%%\r\nx = 1900;\r\ny = 2100;\r\nassert(isequal(expected_score(x,y),0.24))\r\n%% My probability against Maxime Vachier-Lagrave (best french player)\r\nx = 1800;\r\ny = 2775;\r\nassert(isequal(expected_score(x,y),0.004))\r\n%% My probability against Magnus Carlsen (World Chess Champion)\r\nx = 1800;\r\ny = 2865;\r\nassert(isequal(expected_score(x,y),0.002))\r\n%% Magnus against Maxime\r\nx = 2865;\r\ny = 2775;\r\nassert(isequal(expected_score(x,y),0.627))\r\n%% Magnus Carlsen against Garry Kasparov (1999)\r\nx = 2865;\r\ny = 2851;\r\nassert(isequal(expected_score(x,y),0.52))\r\n%% Magnus Carlsen against Fabiano Caruana\r\nx = 2865;\r\ny = 2844;\r\nassert(isequal(expected_score(x,y),0.53))\r\n%% Bobby Fisher (1972) against Magnus Carlsen\r\nx = 2785;\r\ny = 2865;\r\nassert(isequal(expected_score(x,y),0.387))\r\n%% Bobby Fisher (1972) against me\r\nx = 2785;\r\ny = 1800;\r\nassert(isequal(expected_score(x,y),0.997))\r\n","published":true,"deleted":false,"likes_count":6,"comments_count":0,"created_by":5390,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":680,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2015-02-28T22:51:09.000Z","updated_at":"2026-04-05T17:25:47.000Z","published_at":"2015-02-28T22:52:00.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/media/image1.png\"}],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe difference in the ratings between two players serves as a predictor of the outcome of a match (the\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://en.wikipedia.org/wiki/Elo_rating_system\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eElo rating system\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eIf Player A has a rating of Ra and Player B a rating of Rb, the formula for the expected score of Player A is :\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId1\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eTwo players with equal ratings who play against each other are expected to score an equal number of wins. A player whose rating is 100 points greater than their opponent's is expected to score 64%; if the difference is 200 points, then the expected score for the stronger player is 76%.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eI give you two ELOs, compute the expected score (round to 3 digits), or probability that the first player wins.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"},{\"partUri\":\"/media/image1.png\",\"contentType\":\"image/png\",\"content\":\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAM4AAAArBAMAAADCuKrGAAAAMFBMVEX///90dHQEBAQwMDCenp5QUFAWFhbm5ubMzMyKioq2trZAQEAMDAwiIiJiYmIAAADHPVvyAAAAAXRSTlMAQObYZgAAAuJJREFUeNrtV0toE2EQ/pJs91+TZpuKKZ7aHDxZhKBo8WCNQj14qNHiAxFZRNIHVAPFi0UbFC8qEqh40cOePBUfUAoS0BQPvhByqXqoEK1CaauNXswWu3H+JF03TbV5dHPqwGYzM//u98/881qgOhoscZ29OhjnkRIXOqqCYdvmXqMmtKc2fiuZ1nHWcdZxikmrDU7Xq53hkhbagG8Nz7Cl0WO565xkuxS3/nwEHUinrMfJ9NLdbz2OPYUkVOtD+2GA+S0HEYDAzQ82nyEYe8R/+yxAfoc6671G+dM6If+U0oC4sEyXWSuQHzw5JQ0MdfRnPmxpvGk6Fam9lK5q9kzGQpwSqz4Y+beK71cq2rSDxwC9V6iPlrE/+T/GH6fLVWRPhpx3ia57v4Jl4NyIYv5pV8HODH4kx9ep0uETuOYly9m43dV/N7brShRS50xw9amWCwabaWEboO4f7THrDF4PABv4aKe3PMDn2SSJFFMi2ZSiCvt2JcFLDMNJWdYEHqV/yeB52vvBmtQRiAfjOFvQfybhWF6zWau6gkDuwXlVoD214MK0WWvwGnnHB5ZCH9gLFf1mnKvTGJpY3ivfLIWd2yRI+yAEFsnpKe+sD/fbpwL5RVkeUraeLPpxPRtdH42HS5me3SZBgwcOxRWAlEI7aSJCwhaLxR7nebjI0m76PGBRUW2C+EnBucr6djgCSaHSoSWxSDUjkolnOjo6DuV57KaYe4IDWDg9uekOxF4FxyrD4TVEEVTYPRiWcLHxfT6TcjzqGUUeWZTZuHVOCWOM4XfFc0gaepCdOglvEpvnt+djJMfLvgEIUcYFU7f1fZ344k1Wdj5DUbjjPH+yNAqxICgHvo/DFbGV2QCyOK5Q6Ewo1G+KA7diZHD3UvbnKYijuFX2V+JK9ohBiEk4cyVG1r+2FZiTkCZVDy6vAY6cQINaQV8oa6olgZaGrKwtTtFUywXa8+YdVnVDN2pDjqrf8Af8bczR/4tLjAAAAABJRU5ErkJggg==\"}]}"},{"id":45330,"title":"Castling-02","description":"This is a follow up of problem \r\n\r\n\u003chttps://www.mathworks.com/matlabcentral/cody/groups/1/problems/45329-castling-01\u003e\r\n\r\n\r\nGiven the position of only one player's chess pieces(some of them) on the chessboard, figure out whether castling is valid or not.\r\n\r\n\u003chttps://en.wikipedia.org/wiki/Castling\u003e","description_html":"\u003cp\u003eThis is a follow up of problem\u003c/p\u003e\u003cp\u003e\u003ca href = \"https://www.mathworks.com/matlabcentral/cody/groups/1/problems/45329-castling-01\"\u003ehttps://www.mathworks.com/matlabcentral/cody/groups/1/problems/45329-castling-01\u003c/a\u003e\u003c/p\u003e\u003cp\u003eGiven the position of only one player's chess pieces(some of them) on the chessboard, figure out whether castling is valid or not.\u003c/p\u003e\u003cp\u003e\u003ca href = \"https://en.wikipedia.org/wiki/Castling\"\u003ehttps://en.wikipedia.org/wiki/Castling\u003c/a\u003e\u003c/p\u003e","function_template":"function tf=castling_02(a)\r\n  y = x;\r\nend","test_suite":"%%\r\na={'Rd1','Rh1','Ke1'}\r\nassert(isequal(castling_02(a),1))\r\n%%\r\na={'Rd1','Rd4','Ke1','Bb6'}\r\nassert(isequal(castling_02(a),0))\r\n%%\r\na={'d1','Rh8','Kg1'}\r\nassert(isequal(castling_02(a),0))\r\n%%\r\na={'Ra1','Rh1','Ke1','Qd1'}\r\nassert(isequal(castling_02(a),1))\r\n%%\r\na={'Ra1','Rh1','Ke1','Qd1','Bg1'}\r\nassert(isequal(castling_02(a),0))\r\n%%\r\na={'Ba2','Ra1','Rb1','Ke1','Bg1'}\r\nassert(isequal(castling_02(a),0))\r\n%%\r\na={'Na1','Rh1','Ke1','Qd1'}\r\nassert(isequal(castling_02(a),1))\r\n%%\r\na={'Kd1','Qe1','Rh1','Rd8','a4','Nf2'}\r\nassert(isequal(castling_02(a),0))\r\n","published":true,"deleted":false,"likes_count":2,"comments_count":0,"created_by":363598,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":10,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2020-02-15T23:34:53.000Z","updated_at":"2026-01-23T13:53:26.000Z","published_at":"2020-02-15T23:38:28.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis is a follow up of problem\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/groups/1/problems/45329-castling-01\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026lt;https://www.mathworks.com/matlabcentral/cody/groups/1/problems/45329-castling-01\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026gt;\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eGiven the position of only one player's chess pieces(some of them) on the chessboard, figure out whether castling is valid or not.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:hyperlink w:docLocation=\\\"https://en.wikipedia.org/wiki/Castling\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026lt;https://en.wikipedia.org/wiki/Castling\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026gt;\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":1684,"title":"Identify Reachable Points ","description":"Given a vector of 2-D Points and a vector of 2-D Deltas create an array of all Locations that can be reached from the points using the Deltas. The provided Deltas are only positive but the points that can be reached may use Negative Deltas or Y-deltas for X moves, like moves of a Knight dxy [1 2].\r\n\r\n*Input:* [Pts, dxy]\r\n\r\n\r\n*Output:* Mxy\r\n\r\n*Example:* \r\n\r\n  Pts [5 5; 7 9]\r\n\r\n  dxy [0 1]  % Multiple dxy are possible\r\n  \r\n  Mxy =[4 5;5 4;5 6;6 5;6 9;7 8;7 10;8 9]\r\n\r\n*Related Challenges:*\r\n\r\n1) Minimum Sized Circle for N integer points with all unique distances ","description_html":"\u003cp\u003eGiven a vector of 2-D Points and a vector of 2-D Deltas create an array of all Locations that can be reached from the points using the Deltas. The provided Deltas are only positive but the points that can be reached may use Negative Deltas or Y-deltas for X moves, like moves of a Knight dxy [1 2].\u003c/p\u003e\u003cp\u003e\u003cb\u003eInput:\u003c/b\u003e [Pts, dxy]\u003c/p\u003e\u003cp\u003e\u003cb\u003eOutput:\u003c/b\u003e Mxy\u003c/p\u003e\u003cp\u003e\u003cb\u003eExample:\u003c/b\u003e\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003ePts [5 5; 7 9]\r\n\u003c/pre\u003e\u003cpre class=\"language-matlab\"\u003edxy [0 1]  % Multiple dxy are possible\r\n\u003c/pre\u003e\u003cpre class=\"language-matlab\"\u003eMxy =[4 5;5 4;5 6;6 5;6 9;7 8;7 10;8 9]\r\n\u003c/pre\u003e\u003cp\u003e\u003cb\u003eRelated Challenges:\u003c/b\u003e\u003c/p\u003e\u003cp\u003e1) Minimum Sized Circle for N integer points with all unique distances\u003c/p\u003e","function_template":"function Mxy=Knights(Pts,dxy)\r\n  Mxy=Pts;\r\nend","test_suite":"%%\r\nPts=[5 5; 7 9];\r\ndxy=[0 1];\r\nMxy=unique(Knights(Pts,dxy),'rows');\r\n\r\nMxy_exp =[4 5;5 4;5 6;6 5;6 9;7 8;7 10;8 9];\r\nassert(isequal(Mxy,Mxy_exp))\r\n%%\r\nPts=[5 5];\r\ndxy=[0 1;1 2];\r\nMxy=unique(Knights(Pts,dxy),'rows');\r\n\r\nMxy_exp =[3 4;3 6;4 3;4 5;4 7;5 4;5 6;6 3;6 5;6 7;7 4;7 6];\r\nassert(isequal(Mxy,Mxy_exp))\r\n%%\r\npts=randi(20,6,2);\r\ndxy=randi(6,4,2);\r\nMxy=unique(Knights(pts,dxy),'rows');\r\n\r\n nP=size(pts,1);\r\n ndxy=size(dxy,1);\r\n \r\n mxy=[];\r\n for i=1:nP\r\n  mxy=[mxy;\r\n      dxy(:,1)+pts(i,1) dxy(:,2)+pts(i,2);\r\n      -dxy(:,1)+pts(i,1) dxy(:,2)+pts(i,2);\r\n      dxy(:,1)+pts(i,1) -dxy(:,2)+pts(i,2);\r\n      -dxy(:,1)+pts(i,1) -dxy(:,2)+pts(i,2);\r\n       dxy(:,2)+pts(i,1) dxy(:,1)+pts(i,2);\r\n      -dxy(:,2)+pts(i,1) dxy(:,1)+pts(i,2);\r\n      dxy(:,2)+pts(i,1) -dxy(:,1)+pts(i,2);\r\n      -dxy(:,2)+pts(i,1) -dxy(:,1)+pts(i,2)];\r\n end\r\n\r\n Mxy_exp=unique(mxy,'rows');\r\n\r\nassert(isequal(Mxy,Mxy_exp))\r\n\r\n\r\n\r\n\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":3097,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":48,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2013-06-28T03:22:54.000Z","updated_at":"2026-02-15T07:15:08.000Z","published_at":"2013-06-28T03:58:36.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eGiven a vector of 2-D Points and a vector of 2-D Deltas create an array of all Locations that can be reached from the points using the Deltas. The provided Deltas are only positive but the points that can be reached may use Negative Deltas or Y-deltas for X moves, like moves of a Knight dxy [1 2].\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eInput:\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e [Pts, dxy]\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eOutput:\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e Mxy\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eExample:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[Pts [5 5; 7 9]\\n\\ndxy [0 1]  % Multiple dxy are possible\\n\\nMxy =[4 5;5 4;5 6;6 5;6 9;7 8;7 10;8 9]]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eRelated Challenges:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e1) Minimum Sized Circle for N integer points with all unique distances\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":45236,"title":"Queen's move","description":"given a number of consecutive moves of queen, check for their validity based on their previous position....\r\nbut remember if u get an invalid move - u need check for the next move's validity based on the last valid position.....\r\n\r\n* x={'Qd1','Qd5','Qf7','Qa8','Qg8'}\r\n* y=[1,1,1,0,1]\r\n \r\n\u003chttps://en.wikipedia.org/wiki/Algebraic_notation_(chess)\u003e\r\n","description_html":"\u003cp\u003egiven a number of consecutive moves of queen, check for their validity based on their previous position....\r\nbut remember if u get an invalid move - u need check for the next move's validity based on the last valid position.....\u003c/p\u003e\u003cul\u003e\u003cli\u003ex={'Qd1','Qd5','Qf7','Qa8','Qg8'}\u003c/li\u003e\u003cli\u003ey=[1,1,1,0,1]\u003c/li\u003e\u003c/ul\u003e\u003cp\u003e\u003ca href = \"https://en.wikipedia.org/wiki/Algebraic_notation_(chess)\"\u003ehttps://en.wikipedia.org/wiki/Algebraic_notation_(chess)\u003c/a\u003e\u003c/p\u003e","function_template":"function y = Queen_move(x)","test_suite":"%%\r\nx = {'Qd1','Qd5','Qf7','Qa8','Qg8'};\r\ny_correct = [1,1,1,0,1];\r\nassert(isequal(Queen_move(x),y_correct))\r\n%%\r\nx = {'Qd1','Qd5','Qf7','Qa8','Qc7'};\r\ny_correct = [1,1,1,0,1];\r\nassert(isequal(Queen_move(x),y_correct))\r\n%%\r\nx={'Qh1','Qg5','Qe6','Qe2','Qb3','Qd5','Qh7'};\r\ny_correct = [1,0,0,0,0,1,0];\r\nassert(isequal(Queen_move(x),y_correct))\r\n","published":true,"deleted":false,"likes_count":3,"comments_count":2,"created_by":363598,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":17,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2019-12-20T16:33:40.000Z","updated_at":"2026-01-23T12:20:52.000Z","published_at":"2019-12-20T16:35:13.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003egiven a number of consecutive moves of queen, check for their validity based on their previous position.... but remember if u get an invalid move - u need check for the next move's validity based on the last valid position.....\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ex={'Qd1','Qd5','Qf7','Qa8','Qg8'}\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ey=[1,1,1,0,1]\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:hyperlink w:docLocation=\\\"https://en.wikipedia.org/wiki/Algebraic_notation_(chess)\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026lt;https://en.wikipedia.org/wiki/Algebraic_notation_(chess\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e)\u0026gt;\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":60541,"title":"Compute the number of squares a knight can reach after n moves","description":"Several Cody problems involve knights from chess. They have asked players to find a knight’s tour in a matrix (CP 96), determine whether points are reachable given the moves of a knight and other pieces (CP 1684), calculate the probability that a knight will remain on a chessboard after a given number of moves (CP 45389), determine the number of moves to reach a destination (CP 45433), find when a knight not allowed to revisit squares will be trapped (CP 54780), and list the squares that a knight can reach after one move (CP 57660).\r\nThis problem involves the number of squares on an infinite chessboard that a knight can reach. If the knight starts on the pink square below, then it can reach the eight squares marked “1” after one move and the 33 squares marked “2” after two moves. \r\nWrite a function to compute the number of squares that a knight can reach after n moves. \r\n","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.4333px; min-height: 0px; white-space: normal; color: rgb(0, 0, 0); font-family: Menlo, Monaco, Consolas, monospace; font-style: normal; font-size: 14px; font-weight: 400; text-decoration: rgb(0, 0, 0); white-space: normal; \"\u003e\u003cdiv style=\"block-size: 500.7px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 250.35px; transform-origin: 407px 250.35px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 105px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 52.5px; text-align: left; transform-origin: 384px 52.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 98.425px 8px; transform-origin: 98.425px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eSeveral Cody problems involve \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://en.wikipedia.org/wiki/Knight_(chess)#Movement\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"text-decoration-line: underline; \"\u003eknights\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 146.625px 8px; transform-origin: 146.625px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e from chess. They have asked players to find a \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"/#null\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"text-decoration-line: underline; \"\u003eknight’s tour\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 38.5px 8px; transform-origin: 38.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e in a matrix (\u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://www.mathworks.com/matlabcentral/cody/problems/96\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"text-decoration-line: underline; \"\u003eCP 96\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 6.21667px 8px; transform-origin: 6.21667px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e), determine whether points are reachable given the moves of a knight and other pieces (\u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://www.mathworks.com/matlabcentral/cody/problems/1684\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"text-decoration-line: underline; \"\u003eCP 1684\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 81.3px 8px; transform-origin: 81.3px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e), calculate the probability that a knight will remain on a chessboard after a given number of moves (\u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://www.mathworks.com/matlabcentral/cody/problems/45389\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"text-decoration-line: underline; \"\u003eCP 45389\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 114.733px 8px; transform-origin: 114.733px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e), determine the number of moves to reach a destination (\u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://www.mathworks.com/matlabcentral/cody/problems/45433\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"text-decoration-line: underline; \"\u003eCP 45433\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 206.167px 8px; transform-origin: 206.167px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e), find when a knight not allowed to revisit squares will be trapped (\u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://www.mathworks.com/matlabcentral/cody/problems/54780\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"text-decoration-line: underline; \"\u003eCP 54780\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 42px 8px; transform-origin: 42px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e), and list the squares that a knight can reach after one move (\u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://www.mathworks.com/matlabcentral/cody/problems/57660\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"text-decoration-line: underline; \"\u003eCP 57660\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 4.275px 8px; transform-origin: 4.275px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e).\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 63px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 31.5px; text-align: left; transform-origin: 384px 31.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 374.567px 8px; transform-origin: 374.567px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThis problem involves the number of squares on an infinite chessboard that a knight can reach. If the knight starts on the pink square below, then it can reach the eight squares marked “1” after one move and the 33 squares marked “2” after two moves. \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 277.958px 8px; transform-origin: 277.958px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eWrite a function to compute the number of squares that a knight can reach after n moves. \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 284.7px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 142.35px; text-align: left; transform-origin: 384px 142.35px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cimg class=\"imageNode\" width=\"369\" height=\"279\" style=\"vertical-align: baseline;width: 369px;height: 279px\" src=\"data:image/png;base64,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\" alt=\"Positions reachable by a knight after 1 and 2 moves\" data-image-state=\"image-loaded\"\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function y = knightSq(n)\r\n  y = 8^n;\r\nend","test_suite":"%%\r\nassert(isequal(knightSq(0),1))\r\n\r\n%%\r\nassert(isequal(knightSq(1),8))\r\n\r\n%%\r\nassert(isequal(knightSq(2),33))\r\n\r\n%%\r\nassert(isequal(knightSq(21),3172))\r\n\r\n%%\r\nassert(isequal(knightSq(67),31692))\r\n\r\n%%\r\nassert(isequal(knightSq(212),315457))\r\n\r\n%%\r\nassert(isequal(knightSq(670),3144981))\r\n\r\n%%\r\nassert(isequal(knightSq(2118),31409941))\r\n\r\n%%\r\nassert(isequal(knightSq(6699),314163004))\r\n\r\n%%\r\nassert(isequal(knightSq(21184),3141417729))\r\n\r\n%%\r\nassert(isequal(knightSq(66992),31415764417))\r\n\r\n%%\r\nassert(isequal(knightSq(211849),314160839004))\r\n\r\n%%\r\nassert(isequal(knightSq(669924),3141589840129))\r\n\r\n%%\r\nassert(isequal(knightSq(knightSq(knightSq(5))),509156381452))\r\n\r\n%%\r\nm = randi([1001 50000]);\r\nassert(all(diff(diff(diff(arrayfun(@knightSq,m:m+randi([5 15])))))==0))","published":true,"deleted":false,"likes_count":0,"comments_count":0,"created_by":46909,"edited_by":46909,"edited_at":"2024-06-15T15:27:46.000Z","deleted_by":null,"deleted_at":null,"solvers_count":7,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2024-06-15T15:27:39.000Z","updated_at":"2025-07-26T06:24:29.000Z","published_at":"2024-06-15T15:27:46.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eSeveral Cody problems involve \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://en.wikipedia.org/wiki/Knight_(chess)#Movement\\\"\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:u/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eknights\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:rPr/\u003e\u003cw:t\u003e from chess. They have asked players to find a \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"\\\"\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:u/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eknight’s tour\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e in a matrix (\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/96\\\"\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:u/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eCP 96\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e), determine whether points are reachable given the moves of a knight and other pieces (\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/1684\\\"\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:u/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eCP 1684\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e), calculate the probability that a knight will remain on a chessboard after a given number of moves (\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/45389\\\"\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:u/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eCP 45389\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e), determine the number of moves to reach a destination (\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/45433\\\"\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:u/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eCP 45433\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e), find when a knight not allowed to revisit squares will be trapped (\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/54780\\\"\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:u/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eCP 54780\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e), and list the squares that a knight can reach after one move (\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/57660\\\"\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:u/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eCP 57660\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis problem involves the number of squares on an infinite chessboard that a knight can reach. If the knight starts on the pink square below, then it can reach the eight squares marked “1” after one move and the 33 squares marked “2” after two moves. \u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eWrite a function to compute the number of squares that a knight can reach after n moves. \u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"279\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"369\\\"/\u003e\u003cw:attr w:name=\\\"verticalAlign\\\" w:val=\\\"baseline\\\"/\u003e\u003cw:attr w:name=\\\"altText\\\" w:val=\\\"Positions reachable by a knight after 1 and 2 moves\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId1\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\",\"relationship\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"target\":\"/media/image1.png\",\"relationshipId\":\"rId1\"}]},{\"partUri\":\"/media/image1.png\",\"contentType\":\"image/png\",\"content\":\"data:image/png;base64,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\",\"relationship\":null}],\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"target\":\"/matlab/document.xml\",\"relationshipId\":\"rId1\"}]}"},{"id":61155,"title":"FEN to Chess Board","description":"Note: This problem is the reverse, or complement, of Problem 61144 - FEN Chess Notation.\r\nGiven a FEN (Forsyth-Edwards Notation) string representing a chess board position, convert it to an 8-by-8 character matrix.\r\nFEN notation encodes each rank (row) from top to bottom, separated by slashes (`/`). Numbers 1-8 represent consecutive empty squares.\r\nThe output matrix uses:\r\nDots (`.`) for empty squares\r\nLetters for pieces: `rnbqkp` (black pieces) and `RNBQKP` (white pieces)\r\nIf the FEN string contains additional fields (castling rights, en passant, etc.), ignore everything after the first space and only parse the board position.\r\n\r\nExample 1\r\nStarting position.\r\nInput: 'rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR'\r\nOutput:\r\n['rnbqkbnr';\r\n 'pppppppp';\r\n '........';\r\n '........';\r\n '........';\r\n '........';\r\n 'PPPPPPPP';\r\n 'RNBQKBNR']\r\nExample 2\r\nAfter white plays e4:\r\nInput: 'rnbqkbnr/pppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBNR'\r\nOutput:\r\n['rnbqkbnr';\r\n 'pppppppp';\r\n '........';\r\n '........';\r\n '....P...';\r\n '........';\r\n 'PPPP.PPP';\r\n 'RNBQKBNR']\r\nNote: The `4P3` means 4 empty squares, then P, then 3 empty squares.","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.44px; min-height: 0px; white-space: normal; color: rgb(33, 33, 33); font-family: Menlo, Monaco, Consolas, monospace; font-style: normal; font-size: 14px; font-weight: 400; text-decoration: none; white-space: normal; \"\u003e\u003cdiv style=\"block-size: 1311.88px; display: block; min-width: 0px; padding-block-start: 0px; padding-inline-start: 2px; padding-left: 2px; padding-top: 0px; perspective-origin: 333.5px 655.938px; transform-origin: 333.5px 655.938px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.5px; text-align: left; transform-origin: 309.5px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eNote: This problem is the reverse, or complement, of \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://www.mathworks.com/matlabcentral/cody/problems/61144-fen-chess-notation\"\u003e\u003cspan style=\"border-block-end-color: rgb(0, 91, 130); border-block-start-color: rgb(0, 91, 130); border-bottom-color: rgb(0, 91, 130); border-inline-end-color: rgb(0, 91, 130); border-inline-start-color: rgb(0, 91, 130); border-left-color: rgb(0, 91, 130); border-right-color: rgb(0, 91, 130); border-top-color: rgb(0, 91, 130); caret-color: rgb(0, 91, 130); color: rgb(0, 91, 130); column-rule-color: rgb(0, 91, 130); outline-color: rgb(0, 91, 130); text-decoration-color: rgb(0, 91, 130); text-emphasis-color: rgb(0, 91, 130); \"\u003e\u003cspan style=\"\"\u003eProblem 61144 - FEN Chess Notation\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 21px; text-align: left; transform-origin: 309.5px 21px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eGiven a FEN (\u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://en.wikipedia.org/wiki/Forsyth%E2%80%93Edwards_Notation\"\u003e\u003cspan style=\"border-block-end-color: rgb(0, 91, 130); border-block-start-color: rgb(0, 91, 130); border-bottom-color: rgb(0, 91, 130); border-inline-end-color: rgb(0, 91, 130); border-inline-start-color: rgb(0, 91, 130); border-left-color: rgb(0, 91, 130); border-right-color: rgb(0, 91, 130); border-top-color: rgb(0, 91, 130); caret-color: rgb(0, 91, 130); color: rgb(0, 91, 130); column-rule-color: rgb(0, 91, 130); outline-color: rgb(0, 91, 130); text-decoration-color: rgb(0, 91, 130); text-emphasis-color: rgb(0, 91, 130); \"\u003e\u003cspan style=\"\"\u003eForsyth-Edwards Notation\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e) string representing a chess board position, convert it to an 8-by-8 character matrix.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 21px; text-align: left; transform-origin: 309.5px 21px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eFEN notation encodes each rank (row) from top to bottom, separated by slashes (`/`). Numbers 1-8 represent consecutive empty squares.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.5px; text-align: left; transform-origin: 309.5px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe output matrix uses:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cul style=\"block-size: 40.875px; font-family: Helvetica, Arial, sans-serif; list-style-type: square; margin-block-end: 20px; margin-block-start: 10px; margin-bottom: 20px; margin-top: 10px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 316.5px 20.4375px; transform-origin: 316.5px 20.4375px; margin-top: 10px; margin-bottom: 20px; \"\u003e\u003cli style=\"block-size: 20.4375px; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 288.5px 10.2188px; text-align: left; transform-origin: 288.5px 10.2188px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eDots (`.`) for empty squares\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4375px; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 288.5px 10.2188px; text-align: left; transform-origin: 288.5px 10.2188px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eLetters for pieces: `rnbqkp` (black pieces) and `RNBQKP` (white pieces)\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003c/ul\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 21px; text-align: left; transform-origin: 309.5px 21px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eIf the FEN string contains additional fields (castling rights, en passant, etc.), ignore everything after the first space and only parse the board position.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 273.667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 136.833px; text-align: left; transform-origin: 309.5px 136.833px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cimg class=\"imageNode\" style=\"vertical-align: baseline\" src=\"data:image/png;base64,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\" data-image-state=\"image-loaded\"\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.5px; text-align: left; transform-origin: 309.5px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eExample 1\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.5px; text-align: left; transform-origin: 309.5px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eStarting position.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003eInput: 'rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003eOutput:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e['rnbqkbnr';\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e 'pppppppp';\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e '........';\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e '........';\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e '........';\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e '........';\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e 'PPPPPPPP';\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e 'RNBQKBNR']\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.5px; text-align: left; transform-origin: 309.5px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eExample 2\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.5px; text-align: left; transform-origin: 309.5px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eAfter white plays e4:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003eInput: 'rnbqkbnr/pppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBNR'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003eOutput:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e['rnbqkbnr';\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e 'pppppppp';\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e '........';\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e '........';\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e '....P...';\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e '........';\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e 'PPPP.PPP';\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e 'RNBQKBNR']\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.5px; text-align: left; transform-origin: 309.5px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eNote: The `4P3` means 4 empty squares, then P, then 3 empty squares.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function board = fenToBoard(fen)\r\n  board = [];\r\nend","test_suite":"%% Test 1: Starting position\r\nfen = 'rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR';\r\nboard_correct = ['rnbqkbnr';\r\n                 'pppppppp';\r\n                 '........';\r\n                 '........';\r\n                 '........';\r\n                 '........';\r\n                 'PPPPPPPP';\r\n                 'RNBQKBNR'];\r\nassert(isequal(fenToBoard(fen), board_correct))\r\n\r\n%% Test 2: After 1.e4\r\nfen = 'rnbqkbnr/pppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBNR';\r\nboard_correct = ['rnbqkbnr';\r\n                 'pppppppp';\r\n                 '........';\r\n                 '........';\r\n                 '....P...';\r\n                 '........';\r\n                 'PPPP.PPP';\r\n                 'RNBQKBNR'];\r\nassert(isequal(fenToBoard(fen), board_correct))\r\n\r\n%% Test 3: After 1.e4 c5\r\nfen = 'rnbqkbnr/pp1ppppp/8/2p5/4P3/8/PPPP1PPP/RNBQKBNR';\r\nboard_correct = ['rnbqkbnr';\r\n                 'pp.ppppp';\r\n                 '........';\r\n                 '..p.....';\r\n                 '....P...';\r\n                 '........';\r\n                 'PPPP.PPP';\r\n                 'RNBQKBNR'];\r\nassert(isequal(fenToBoard(fen), board_correct))\r\n\r\n%% Test 4: After 1.e4 c5 2.Nf3\r\nfen = 'rnbqkbnr/pp1ppppp/8/2p5/4P3/5N2/PPPP1PPP/RNBQKB1R';\r\nboard_correct = ['rnbqkbnr';\r\n                 'pp.ppppp';\r\n                 '........';\r\n                 '..p.....';\r\n                 '....P...';\r\n                 '.....N..';\r\n                 'PPPP.PPP';\r\n                 'RNBQKB.R'];\r\nassert(isequal(fenToBoard(fen), board_correct))\r\n\r\n%% Test 5: Complex middle game position\r\nfen = 'r1bk3r/p2pBpNp/n4n2/1p1NP2P/6P1/3P4/P1P1K3/q5b1';\r\nboard_correct = ['r.bk...r';\r\n                 'p..pBpNp';\r\n                 'n....n..';\r\n                 '.p.NP..P';\r\n                 '......P.';\r\n                 '...P....';\r\n                 'P.P.K...';\r\n                 'q.....b.'];\r\nassert(isequal(fenToBoard(fen), board_correct))\r\n\r\n%% Test 6: Empty board\r\nfen = '8/8/8/8/8/8/8/8';\r\nboard_correct = ['........';\r\n                 '........';\r\n                 '........';\r\n                 '........';\r\n                 '........';\r\n                 '........';\r\n                 '........';\r\n                 '........'];\r\nassert(isequal(fenToBoard(fen), board_correct))\r\n\r\n%% Test 7: Only kings\r\nfen = '4k3/8/8/8/8/8/8/4K3';\r\nboard_correct = ['....k...';\r\n                 '........';\r\n                 '........';\r\n                 '........';\r\n                 '........';\r\n                 '........';\r\n                 '........';\r\n                 '....K...'];\r\nassert(isequal(fenToBoard(fen), board_correct))\r\n\r\n%% Test 8: Single piece per row\r\nfen = 'r7/1n6/2b5/3q4/4k3/5B2/6N1/7R';\r\nboard_correct = ['r.......';\r\n                 '.n......';\r\n                 '..b.....';\r\n                 '...q....';\r\n                 '....k...';\r\n                 '.....B..';\r\n                 '......N.';\r\n                 '.......R'];\r\nassert(isequal(fenToBoard(fen), board_correct))\r\n\r\n%% Test 9: Alternating pieces and spaces\r\nfen = 'r1r1r1r1/1p1p1p1p/n1n1n1n1/1b1b1b1b/B1B1B1B1/1N1N1N1N/P1P1P1P1/1R1R1R1R';\r\nboard_correct = ['r.r.r.r.';\r\n                 '.p.p.p.p';\r\n                 'n.n.n.n.';\r\n                 '.b.b.b.b';\r\n                 'B.B.B.B.';\r\n                 '.N.N.N.N';\r\n                 'P.P.P.P.';\r\n                 '.R.R.R.R'];\r\nassert(isequal(fenToBoard(fen), board_correct))\r\n\r\n%% Test 10: All pawns\r\nfen = 'pppppppp/pppppppp/pppppppp/pppppppp/PPPPPPPP/PPPPPPPP/PPPPPPPP/PPPPPPPP';\r\nboard_correct = ['pppppppp';\r\n                 'pppppppp';\r\n                 'pppppppp';\r\n                 'pppppppp';\r\n                 'PPPPPPPP';\r\n                 'PPPPPPPP';\r\n                 'PPPPPPPP';\r\n                 'PPPPPPPP'];\r\nassert(isequal(fenToBoard(fen), board_correct))\r\n\r\n%% Test 11: After 1.d4 Nf6 2.c4 e6\r\nfen = 'rnbqkb1r/pppp1ppp/4pn2/8/2PP4/8/PP2PPPP/RNBQKBNR';\r\nboard_correct = ['rnbqkb.r';\r\n                 'pppp.ppp';\r\n                 '....pn..';\r\n                 '........';\r\n                 '..PP....';\r\n                 '........';\r\n                 'PP..PPPP';\r\n                 'RNBQKBNR'];\r\nassert(isequal(fenToBoard(fen), board_correct))\r\n\r\n%% Test 12: After 1.e4 e5 2.Nf3 Nc6 3.Bb5\r\nfen = 'r1bqkbnr/pppp1ppp/2n5/1B2p3/4P3/5N2/PPPP1PPP/RNBQK2R';\r\nboard_correct = ['r.bqkbnr';\r\n                 'pppp.ppp';\r\n                 '..n.....';\r\n                 '.B..p...';\r\n                 '....P...';\r\n                 '.....N..';\r\n                 'PPPP.PPP';\r\n                 'RNBQK..R'];\r\nassert(isequal(fenToBoard(fen), board_correct))\r\n\r\n%% Test 13: Endgame - King and pawns\r\nfen = '8/3k4/2p1p3/8/8/2P1P3/3K4/8';\r\nboard_correct = ['........';\r\n                 '...k....';\r\n                 '..p.p...';\r\n                 '........';\r\n                 '........';\r\n                 '..P.P...';\r\n                 '...K....';\r\n                 '........'];\r\nassert(isequal(fenToBoard(fen), board_correct))\r\n\r\n%% Test 14: All pieces on first rank\r\nfen = 'rnbqkbnr/8/8/8/8/8/8/RNBQKBNR';\r\nboard_correct = ['rnbqkbnr';\r\n                 '........';\r\n                 '........';\r\n                 '........';\r\n                 '........';\r\n                 '........';\r\n                 '........';\r\n                 'RNBQKBNR'];\r\nassert(isequal(fenToBoard(fen), board_correct))\r\n\r\n%% Test 15: Pieces at edges\r\nfen = 'r6r/p6p/8/8/8/8/P6P/R6R';\r\nboard_correct = ['r......r';\r\n                 'p......p';\r\n                 '........';\r\n                 '........';\r\n                 '........';\r\n                 '........';\r\n                 'P......P';\r\n                 'R......R'];\r\nassert(isequal(fenToBoard(fen), board_correct))\r\n\r\n%% Test 16: After 1.Nf3 Nf6 2.g3 g6\r\nfen = 'rnbqkb1r/pppppp1p/5np1/8/8/5NP1/PPPPPP1P/RNBQKB1R';\r\nboard_correct = ['rnbqkb.r';\r\n                 'pppppp.p';\r\n                 '.....np.';\r\n                 '........';\r\n                 '........';\r\n                 '.....NP.';\r\n                 'PPPPPP.P';\r\n                 'RNBQKB.R'];\r\nassert(isequal(fenToBoard(fen), board_correct))\r\n\r\n%% Test 17: Queen's Gambit Declined\r\nfen = 'rnbqkb1r/ppp2ppp/4pn2/3p4/2PP4/2N5/PP2PPPP/R1BQKBNR';\r\nboard_correct = ['rnbqkb.r';\r\n                 'ppp..ppp';\r\n                 '....pn..';\r\n                 '...p....';\r\n                 '..PP....';\r\n                 '..N.....';\r\n                 'PP..PPPP';\r\n                 'R.BQKBNR'];\r\nassert(isequal(fenToBoard(fen), board_correct))\r\n\r\n%% Test 18: Scattered position\r\nfen = '3q4/8/1k4n1/8/5P2/2N5/8/3Q1K2';\r\nboard_correct = ['...q....';\r\n                 '........';\r\n                 '.k....n.';\r\n                 '........';\r\n                 '.....P..';\r\n                 '..N.....';\r\n                 '........';\r\n                 '...Q.K..'];\r\nassert(isequal(fenToBoard(fen), board_correct))\r\n\r\n%% Test 19: Dense position\r\nfen = 'rnbqkbnr/pppppppp/2N5/8/8/8/PPPPPPPP/R1BQKBNR';\r\nboard_correct = ['rnbqkbnr';\r\n                 'pppppppp';\r\n                 '..N.....';\r\n                 '........';\r\n                 '........';\r\n                 '........';\r\n                 'PPPPPPPP';\r\n                 'R.BQKBNR'];\r\nassert(isequal(fenToBoard(fen), board_correct))\r\n\r\n%% Test 20: Single empty squares between pieces\r\nfen = 'r1b1k1b1/p1p1p1p1/1n1q1n1r/8/8/1N1Q1N1R/P1P1P1P1/R1B1K1B1';\r\nboard_correct = ['r.b.k.b.';\r\n                 'p.p.p.p.';\r\n                 '.n.q.n.r';\r\n                 '........';\r\n                 '........';\r\n                 '.N.Q.N.R';\r\n                 'P.P.P.P.';\r\n                 'R.B.K.B.'];\r\nassert(isequal(fenToBoard(fen), board_correct))\r\n\r\n%% Test 21: FEN with additional fields (ignore after space)\r\nfen = 'rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1';\r\nboard_correct = ['rnbqkbnr';\r\n                 'pppppppp';\r\n                 '........';\r\n                 '........';\r\n                 '........';\r\n                 '........';\r\n                 'PPPPPPPP';\r\n                 'RNBQKBNR'];\r\nassert(isequal(fenToBoard(fen), board_correct))","published":true,"deleted":false,"likes_count":0,"comments_count":0,"created_by":7,"edited_by":7,"edited_at":"2026-01-08T15:29:54.000Z","deleted_by":null,"deleted_at":null,"solvers_count":6,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2026-01-07T22:18:23.000Z","updated_at":"2026-02-22T15:09:57.000Z","published_at":"2026-01-08T15:29:54.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eNote: This problem is the reverse, or complement, of \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/61144-fen-chess-notation\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eProblem 61144 - FEN Chess Notation\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eGiven a FEN (\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://en.wikipedia.org/wiki/Forsyth%E2%80%93Edwards_Notation\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eForsyth-Edwards Notation\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e) string representing a chess board position, convert it to an 8-by-8 character matrix.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFEN notation encodes each rank (row) from top to bottom, separated by slashes (`/`). Numbers 1-8 represent consecutive empty squares.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe output matrix uses:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eDots (`.`) for empty squares\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eLetters for pieces: `rnbqkp` (black pieces) and `RNBQKP` (white pieces)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eIf the FEN string contains additional fields (castling rights, en passant, etc.), ignore everything after the first space and only parse the board position.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"verticalAlign\\\" w:val=\\\"baseline\\\"/\u003e\u003cw:attr w:name=\\\"altText\\\" w:val=\\\"\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId1\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eExample 1\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eStarting position.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eInput: 'rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR'\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eOutput:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e['rnbqkbnr';\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e 'pppppppp';\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e '........';\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e '........';\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e '........';\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e '........';\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e 'PPPPPPPP';\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e 'RNBQKBNR']\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eExample 2\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eAfter white plays e4:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eInput: 'rnbqkbnr/pppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBNR'\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eOutput:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e['rnbqkbnr';\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e 'pppppppp';\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e '........';\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e '........';\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e '....P...';\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e '........';\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e 'PPPP.PPP';\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e 'RNBQKBNR']\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eNote: The `4P3` means 4 empty squares, then P, then 3 empty squares.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\",\"relationship\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"target\":\"/media/image1.png\",\"relationshipId\":\"rId1\"}]},{\"partUri\":\"/media/image1.png\",\"contentType\":\"image/png\",\"content\":\"data:image/png;base64,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\",\"relationship\":null}],\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"target\":\"/matlab/document.xml\",\"relationshipId\":\"rId1\"}]}"},{"id":315,"title":"Valid Chess Moves","description":"Using standard Algebraic notation ('' for a pawn), given previous move and a next move, output true if it is a valid move or false otherwise. Assume there are no other pieces on the chess board, that the piece can be either black or white (whichever generates a valid result) and the previous move was valid. Examples:\r\nMoving a pawn one space:\r\n('c5','c6') -\u003e true \r\n\r\nMoving a bishop non-diagonally:\r\n('Bb7','Bd7') -\u003e false","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.4333px; min-height: 0px; white-space: normal; color: rgb(0, 0, 0); font-family: Menlo, Monaco, Consolas, monospace; font-style: normal; font-size: 14px; font-weight: 400; text-decoration: rgb(0, 0, 0); white-space: normal; \"\u003e\u003cdiv style=\"block-size: 175.167px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 87.5833px; transform-origin: 407px 87.5833px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 63px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 31.5px; text-align: left; transform-origin: 384px 31.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 17.5px 8px; transform-origin: 17.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eUsing\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 2px 8px; transform-origin: 2px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"/#null\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003estandard Algebraic notation\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 276.5px 8px; transform-origin: 276.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e ('' for a pawn), given previous move and a next move, output true if it is a valid move or false otherwise. Assume there are no other pieces on the chess board, that the piece can be either black or white (whichever generates a valid result) and the previous move was valid. Examples:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgb(247, 247, 247); block-size: 102.167px; border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; border-end-end-radius: 4px; border-end-start-radius: 4px; border-start-end-radius: 4px; border-start-start-radius: 4px; border-top-left-radius: 4px; border-top-right-radius: 4px; margin-block-end: 10px; margin-block-start: 10px; margin-bottom: 10px; margin-inline-end: 3px; margin-inline-start: 3px; margin-left: 3px; margin-right: 3px; margin-top: 10px; perspective-origin: 404px 51.0833px; transform-origin: 404px 51.0833px; margin-left: 3px; margin-top: 10px; margin-bottom: 10px; margin-right: 3px; \"\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 96px 8.5px; tab-size: 4; transform-origin: 96px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; perspective-origin: 28px 8.5px; transform-origin: 28px 8.5px; \"\u003eMoving \u003c/span\u003e\u003cspan style=\"border-block-end-color: rgb(170, 4, 249); border-block-start-color: rgb(170, 4, 249); border-bottom-color: rgb(170, 4, 249); border-inline-end-color: rgb(170, 4, 249); border-inline-start-color: rgb(170, 4, 249); border-left-color: rgb(170, 4, 249); border-right-color: rgb(170, 4, 249); border-top-color: rgb(170, 4, 249); caret-color: rgb(170, 4, 249); color: rgb(170, 4, 249); column-rule-color: rgb(170, 4, 249); margin-inline-end: 0px; margin-right: 0px; outline-color: rgb(170, 4, 249); perspective-origin: 68px 8.5px; text-decoration-color: rgb(170, 4, 249); text-emphasis-color: rgb(170, 4, 249); transform-origin: 68px 8.5px; \"\u003ea pawn one space:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 80px 8.5px; tab-size: 4; transform-origin: 80px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; perspective-origin: 4px 8.5px; transform-origin: 4px 8.5px; \"\u003e(\u003c/span\u003e\u003cspan style=\"border-block-end-color: rgb(170, 4, 249); border-block-start-color: rgb(170, 4, 249); border-bottom-color: rgb(170, 4, 249); border-inline-end-color: rgb(170, 4, 249); border-inline-start-color: rgb(170, 4, 249); border-left-color: rgb(170, 4, 249); border-right-color: rgb(170, 4, 249); border-top-color: rgb(170, 4, 249); caret-color: rgb(170, 4, 249); color: rgb(170, 4, 249); column-rule-color: rgb(170, 4, 249); margin-inline-end: 0px; margin-right: 0px; outline-color: rgb(170, 4, 249); perspective-origin: 16px 8.5px; text-decoration-color: rgb(170, 4, 249); text-emphasis-color: rgb(170, 4, 249); transform-origin: 16px 8.5px; \"\u003e'c5'\u003c/span\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; perspective-origin: 4px 8.5px; transform-origin: 4px 8.5px; \"\u003e,\u003c/span\u003e\u003cspan style=\"border-block-end-color: rgb(170, 4, 249); border-block-start-color: rgb(170, 4, 249); border-bottom-color: rgb(170, 4, 249); border-inline-end-color: rgb(170, 4, 249); border-inline-start-color: rgb(170, 4, 249); border-left-color: rgb(170, 4, 249); border-right-color: rgb(170, 4, 249); border-top-color: rgb(170, 4, 249); caret-color: rgb(170, 4, 249); color: rgb(170, 4, 249); column-rule-color: rgb(170, 4, 249); margin-inline-end: 0px; margin-right: 0px; outline-color: rgb(170, 4, 249); perspective-origin: 16px 8.5px; text-decoration-color: rgb(170, 4, 249); text-emphasis-color: rgb(170, 4, 249); transform-origin: 16px 8.5px; \"\u003e'c6'\u003c/span\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; perspective-origin: 40px 8.5px; transform-origin: 40px 8.5px; \"\u003e) -\u0026gt; true \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 0px 8.5px; tab-size: 4; transform-origin: 0px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 124px 8.5px; tab-size: 4; transform-origin: 124px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; perspective-origin: 28px 8.5px; transform-origin: 28px 8.5px; \"\u003eMoving \u003c/span\u003e\u003cspan style=\"border-block-end-color: rgb(170, 4, 249); border-block-start-color: rgb(170, 4, 249); border-bottom-color: rgb(170, 4, 249); border-inline-end-color: rgb(170, 4, 249); border-inline-start-color: rgb(170, 4, 249); border-left-color: rgb(170, 4, 249); border-right-color: rgb(170, 4, 249); border-top-color: rgb(170, 4, 249); caret-color: rgb(170, 4, 249); color: rgb(170, 4, 249); column-rule-color: rgb(170, 4, 249); margin-inline-end: 0px; margin-right: 0px; outline-color: rgb(170, 4, 249); perspective-origin: 96px 8.5px; text-decoration-color: rgb(170, 4, 249); text-emphasis-color: rgb(170, 4, 249); transform-origin: 96px 8.5px; \"\u003ea bishop non-diagonally:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 88px 8.5px; tab-size: 4; transform-origin: 88px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; perspective-origin: 4px 8.5px; transform-origin: 4px 8.5px; \"\u003e(\u003c/span\u003e\u003cspan style=\"border-block-end-color: rgb(170, 4, 249); border-block-start-color: rgb(170, 4, 249); border-bottom-color: rgb(170, 4, 249); border-inline-end-color: rgb(170, 4, 249); border-inline-start-color: rgb(170, 4, 249); border-left-color: rgb(170, 4, 249); border-right-color: rgb(170, 4, 249); border-top-color: rgb(170, 4, 249); caret-color: rgb(170, 4, 249); color: rgb(170, 4, 249); column-rule-color: rgb(170, 4, 249); margin-inline-end: 0px; margin-right: 0px; outline-color: rgb(170, 4, 249); perspective-origin: 20px 8.5px; text-decoration-color: rgb(170, 4, 249); text-emphasis-color: rgb(170, 4, 249); transform-origin: 20px 8.5px; \"\u003e'Bb7'\u003c/span\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; perspective-origin: 4px 8.5px; transform-origin: 4px 8.5px; \"\u003e,\u003c/span\u003e\u003cspan style=\"border-block-end-color: rgb(170, 4, 249); border-block-start-color: rgb(170, 4, 249); border-bottom-color: rgb(170, 4, 249); border-inline-end-color: rgb(170, 4, 249); border-inline-start-color: rgb(170, 4, 249); border-left-color: rgb(170, 4, 249); border-right-color: rgb(170, 4, 249); border-top-color: rgb(170, 4, 249); caret-color: rgb(170, 4, 249); color: rgb(170, 4, 249); column-rule-color: rgb(170, 4, 249); margin-inline-end: 0px; margin-right: 0px; outline-color: rgb(170, 4, 249); perspective-origin: 20px 8.5px; text-decoration-color: rgb(170, 4, 249); text-emphasis-color: rgb(170, 4, 249); transform-origin: 20px 8.5px; \"\u003e'Bd7'\u003c/span\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; perspective-origin: 40px 8.5px; transform-origin: 40px 8.5px; \"\u003e) -\u0026gt; false\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function z = chessmove(x,y)\r\n  z = false;\r\nend","test_suite":"%%\r\nx = 'c5';\r\ny = 'c6';\r\nz = true;\r\nassert(isequal(chessmove(x,y),z))\r\n\r\n%%\r\nx = 'a2';\r\ny = 'a5';\r\nz = false;\r\nassert(isequal(chessmove(x,y),z))\r\n\r\n%%\r\nx = 'g3';\r\ny = 'h4';\r\nz = false;\r\nassert(isequal(chessmove(x,y),z))\r\n\r\n%%\r\nx = 'Bb7';\r\ny = 'Bd7';\r\nz = false;\r\nassert(isequal(chessmove(x,y),z))\r\n\r\n%%\r\nx = 'Bg2';\r\ny = 'Bh3';\r\nz = true;\r\nassert(isequal(chessmove(x,y),z))\r\n\r\n%%\r\nx = 'Nf1';\r\ny = 'Ne3';\r\nz = true;\r\nassert(isequal(chessmove(x,y),z))\r\n\r\n%%\r\nx = 'Nc5';\r\ny = 'Nc3';\r\nz = false;\r\nassert(isequal(chessmove(x,y),z))\r\n\r\n%%\r\nx = 'Qb2';\r\ny = 'Qc4';\r\nz = false;\r\nassert(isequal(chessmove(x,y),z))\r\n\r\n%%\r\nx = 'Qa1';\r\ny = 'Qh8';\r\nz = true;\r\nassert(isequal(chessmove(x,y),z))\r\n\r\n%%\r\nx = 'Rh7';\r\ny = 'Rh3';\r\nz = true;\r\nassert(isequal(chessmove(x,y),z))\r\n\r\n%%\r\nx = 'Rb2';\r\ny = 'Rh8';\r\nz = false;\r\nassert(isequal(chessmove(x,y),z))\r\n\r\n%%\r\nx = 'Ke1';\r\ny = 'Ke2';\r\nz = true;\r\nassert(isequal(chessmove(x,y),z))\r\n\r\n%%\r\nx = 'Kf3';\r\ny = 'Kg4';\r\nz = true;\r\nassert(isequal(chessmove(x,y),z))\r\n\r\n%%\r\nx = 'Kb2';\r\ny = 'Kc4';\r\nz = false;\r\nassert(isequal(chessmove(x,y),z))","published":true,"deleted":false,"likes_count":2,"comments_count":2,"created_by":1022,"edited_by":223089,"edited_at":"2022-05-23T10:24:16.000Z","deleted_by":null,"deleted_at":null,"solvers_count":85,"test_suite_updated_at":"2022-05-23T09:39:10.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2012-02-13T05:34:29.000Z","updated_at":"2026-03-30T18:59:55.000Z","published_at":"2012-02-13T05:35:32.000Z","restored_at":null,"restored_by":null,"spam":null,"simulink":false,"admin_reviewed":false,"description_opc":"{\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eUsing\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"\\\"\u003e\u003cw:r\u003e\u003cw:t\u003estandard Algebraic notation\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e ('' for a pawn), given previous move and a next move, output true if it is a valid move or false otherwise. Assume there are no other pieces on the chess board, that the piece can be either black or white (whichever generates a valid result) and the previous move was valid. Examples:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[Moving a pawn one space:\\n('c5','c6') -\u003e true \\n\\nMoving a bishop non-diagonally:\\n('Bb7','Bd7') -\u003e false]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\",\"relationship\":null}],\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"target\":\"/matlab/document.xml\",\"relationshipId\":\"rId1\"}]}"},{"id":45433,"title":"The Dark Knight","description":"  The current position of the knight is x \r\n  The desired destination is y\r\n The size of the chessboard is n.\r\n\r\nFind the minimum number of moves required by the knight to reach the destination.\r\n\r\nFor example, \r\n  \r\n x=[2,2]  y=[3,3] -- moves required = 2  \r\n   [2,2] \u003e [1,4] \u003e [3,3]\r\n","description_html":"\u003cpre class=\"language-matlab\"\u003eThe current position of the knight is x \r\nThe desired destination is y\r\nThe size of the chessboard is n.\r\n\u003c/pre\u003e\u003cp\u003eFind the minimum number of moves required by the knight to reach the destination.\u003c/p\u003e\u003cp\u003eFor example,\u003c/p\u003e\u003cpre\u003e x=[2,2]  y=[3,3] -- moves required = 2  \r\n   [2,2] \u0026gt; [1,4] \u0026gt; [3,3]\u003c/pre\u003e","function_template":"function out = knight_step(x,y,n)","test_suite":"%%\r\nassert(isequal(knight_step([2,2],[3,3],8),2))\r\n%%\r\nassert(isequal(knight_step([2,2],[1,1],20),4))\r\n\r\n%%\r\nassert(isequal(knight_step([2,2],[8,8],12),4))\r\n\r\n%%\r\nassert(isequal(knight_step([2,2],[12,11],12),7))\r\n\r\n%%\r\nassert(isequal(knight_step([1,3],[8,3],8),5))\r\n%%\r\nassert(isequal(knight_step([1,3],[5,4],8),3))\r\n%%\r\nassert(isequal(knight_step([8,2],[1,2],8),5))\r\n\r\n%%\r\nassert(isequal(knight_step([8,7],[21,32],50),14))\r\n%%\r\nassert(isequal(knight_step([5,19],[5,19],20),0))\r\n%%\r\nassert(isequal(knight_step([5,19],[19,5],20),10))\r\n","published":true,"deleted":false,"likes_count":2,"comments_count":0,"created_by":363598,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":21,"test_suite_updated_at":"2020-04-10T06:28:31.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2020-04-10T06:20:09.000Z","updated_at":"2026-01-21T12:55:02.000Z","published_at":"2020-04-10T06:28:31.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[The current position of the knight is x \\nThe desired destination is y\\nThe size of the chessboard is n.]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFind the minimum number of moves required by the knight to reach the destination.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFor example,\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[ x=[2,2]  y=[3,3] -- moves required = 2  \\n   [2,2] \u003e [1,4] \u003e [3,3]]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":45238,"title":"Checkmate","description":"* The positions of different chess pieces are given in a cell  *p* . \r\n* The position of the king is given as *x*\r\n\r\nDetermine if the opponent king is in check for individual scenerios.\r\n\r\n* x='Kg7'\r\n* p={'Qe5','Qg5','Qb5','Qa7'}\r\n\r\noutput= [1,1,0,1]\r\n\r\nN.b.any invalid position should produce 0.\r\nu may imagine p as the white pieces and x as the black king for clarity.","description_html":"\u003cul\u003e\u003cli\u003eThe positions of different chess pieces are given in a cell  \u003cb\u003ep\u003c/b\u003e .\u003c/li\u003e\u003cli\u003eThe position of the king is given as \u003cb\u003ex\u003c/b\u003e\u003c/li\u003e\u003c/ul\u003e\u003cp\u003eDetermine if the opponent king is in check for individual scenerios.\u003c/p\u003e\u003cul\u003e\u003cli\u003ex='Kg7'\u003c/li\u003e\u003cli\u003ep={'Qe5','Qg5','Qb5','Qa7'}\u003c/li\u003e\u003c/ul\u003e\u003cp\u003eoutput= [1,1,0,1]\u003c/p\u003e\u003cp\u003eN.b.any invalid position should produce 0.\r\nu may imagine p as the white pieces and x as the black king for clarity.\u003c/p\u003e","function_template":"function y=checkmate(x,p)\r\n  y = x;\r\nend","test_suite":"%%\r\nx='Kg7';\r\np={'Qe5','Qg5','Qb5','Qa7'}\r\ny_correct = [1,1,0,1];\r\nassert(isequal(checkmate(x,p),y_correct))\r\n\r\n%%\r\nx='Kg7';\r\np={'Qe5','Rg5','Bb5','Na7','h6'}\r\ny_correct = [1,1,0,0,1];\r\nassert(isequal(checkmate(x,p),y_correct))\r\n\r\n%%\r\nx='Ka3';\r\np={'Qe5','Rg5','Bb5','Na7','h6'}\r\ny_correct = [0,0,0,0,0];\r\nassert(isequal(checkmate(x,p),y_correct))\r\n\r\n%%\r\nx='Ka3';\r\np={'a2','Rg5','Be7','Nc4','Nb1'}\r\ny_correct = [0,0,1,1,1];\r\nassert(isequal(checkmate(x,p),y_correct))\r\n\r\n%%\r\nx='Ka3';\r\np={'a2','Rg5','Be7','Nc5','Kb2'}\r\ny_correct = [0,0,1,0,0];\r\nassert(isequal(checkmate(x,p),y_correct))\r\n\r\n%%\r\nx='Kf2';\r\np={'Ra2','Rg5','Bh4','Bg1','Nd3','Kf3','Ng1','e1','Qg4','Qf7'}\r\ny_correct = [1,0,1,1,1,0,0,0,0,1];\r\nassert(isequal(checkmate(x,p),y_correct))","published":true,"deleted":false,"likes_count":3,"comments_count":5,"created_by":363598,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":11,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2019-12-21T00:09:28.000Z","updated_at":"2026-01-23T12:59:27.000Z","published_at":"2019-12-21T00:12:53.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe positions of different chess pieces are given in a cell \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ep\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e .\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe position of the king is given as\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ex\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eDetermine if the opponent king is in check for individual scenerios.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ex='Kg7'\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ep={'Qe5','Qg5','Qb5','Qa7'}\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eoutput= [1,1,0,1]\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eN.b.any invalid position should produce 0. u may imagine p as the white pieces and x as the black king for clarity.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":3061,"title":"Mirror, mirror on the wall, who is fairest of them all?","description":"The Elo rating system was featured in the movie *The Social Network* during the \u003chttps://www.youtube.com/watch?v=BzZRr4KV59I/ algorithm scene\u003e where Mark Zuckerberg released Facemash. \r\n\r\nIn the scene Eduardo Saverin writes mathematical formulas for the Elo rating system on Zuckerberg's dorm room window. \r\nThe Elo system is employed to rank coeds by their attractiveness. \r\nThe equations driving the algorithm are shown briefly (Ea and Eb). \r\n\r\nYou should know these equations now (See problem \u003chttp://www.mathworks.com/matlabcentral/cody/problems/3056-chess-probability/ 3056\u003e) :\r\n\r\n\r\n\u003c\u003chttp://upload.wikimedia.org/math/b/0/3/b0366725c224ee55eab6e2371dc6a0ef.png\u003e\u003e\r\n \r\n* \r\n\r\n\r\nEa is the expected probability that Girl A will win the match against Girl B.\r\n\r\nRa is the rating of Girl A, which changes after tournament, according to the formula (Ra )n = (Ra )n-1 + 32 (W - Ea ) where W = {1,0.5,0}.\r\n\r\nNow imagine a single round-robin tournament where each girl plays (is compared with)  every other girl once.\r\nA judge (me for the problem) gives a note :\r\n\r\n* 1   if girl A is more attractive than girl B\r\n* 0   if girl B is more attractive than girl A\r\n* 0.5 if same attractiveness\r\n\r\nI give you the tournament results (2 on the main diagonal).\r\n\r\nFind the final rating of Snow White (she is unique).\r\n\r\nConsider that all girl begin the tournament with a rating of 1000.\r\n\r\nYou can observe that the total number of attractiveness (ELO) points remains constant.\r\n","description_html":"\u003cp\u003eThe Elo rating system was featured in the movie \u003cb\u003eThe Social Network\u003c/b\u003e during the \u003ca href = \"https://www.youtube.com/watch?v=BzZRr4KV59I/\"\u003ealgorithm scene\u003c/a\u003e where Mark Zuckerberg released Facemash.\u003c/p\u003e\u003cp\u003eIn the scene Eduardo Saverin writes mathematical formulas for the Elo rating system on Zuckerberg's dorm room window. \r\nThe Elo system is employed to rank coeds by their attractiveness. \r\nThe equations driving the algorithm are shown briefly (Ea and Eb).\u003c/p\u003e\u003cp\u003eYou should know these equations now (See problem \u003ca href = \"http://www.mathworks.com/matlabcentral/cody/problems/3056-chess-probability/\"\u003e3056\u003c/a\u003e) :\u003c/p\u003e\u003cimg src = \"http://upload.wikimedia.org/math/b/0/3/b0366725c224ee55eab6e2371dc6a0ef.png\"\u003e\u003cul\u003e\u003cli\u003e\u003c/li\u003e\u003c/ul\u003e\u003cp\u003eEa is the expected probability that Girl A will win the match against Girl B.\u003c/p\u003e\u003cp\u003eRa is the rating of Girl A, which changes after tournament, according to the formula (Ra )n = (Ra )n-1 + 32 (W - Ea ) where W = {1,0.5,0}.\u003c/p\u003e\u003cp\u003eNow imagine a single round-robin tournament where each girl plays (is compared with)  every other girl once.\r\nA judge (me for the problem) gives a note :\u003c/p\u003e\u003cul\u003e\u003cli\u003e1   if girl A is more attractive than girl B\u003c/li\u003e\u003cli\u003e0   if girl B is more attractive than girl A\u003c/li\u003e\u003cli\u003e0.5 if same attractiveness\u003c/li\u003e\u003c/ul\u003e\u003cp\u003eI give you the tournament results (2 on the main diagonal).\u003c/p\u003e\u003cp\u003eFind the final rating of Snow White (she is unique).\u003c/p\u003e\u003cp\u003eConsider that all girl begin the tournament with a rating of 1000.\u003c/p\u003e\u003cp\u003eYou can observe that the total number of attractiveness (ELO) points remains constant.\u003c/p\u003e","function_template":"function y = fairest_girl(X)\r\n  y = X;\r\nend","test_suite":"%%\r\nA=[2 1 1 1 1;0 2 1 1 1;0 0 2 1 1;0 0 0 2 1;0 0 0 0 2];\r\nassert(isequal(fairest_girl(A),1064));\r\n%%\r\nA=[2 1;0 2];\r\nassert(isequal(fairest_girl(A),1016));\r\n%%\r\nassert(isequal(fairest_girl([2 1 0.5;0 2 0.5;0.5 0.5 2]),1016));\r\n%%\r\nA=[2 1 1 1 1 1;0 2 1 1 1 1;0 0 2 1 1 1;0 0 0 2 0.5 0.5;0 0 0 0.5 2 0.5;0 0 0 0.5 0.5 2];\r\nassert(isequal(fairest_girl(A),1080));\r\n%%\r\nA=[2 0.5 1;0.5 2 0.5;0 0.5 2];\r\nassert(isequal(fairest_girl(A),1016));\r\n%%\r\nA=[2 1 1 1 1 1 1;0 2 1 1 1 1 1;0 0 2 1 1 1 1;0 0 0 2 0.5 0.5 1;0 0 0 0.5 2 0.5 1;0 0 0 0.5 0.5 2 1;0 0 0 0 0 0 2];\r\nassert(isequal(fairest_girl(A),1096));\r\n%%\r\nA=[2 1 1 1 1 1 0.5;0 2 1 1 1 1 0.5;0 0 2 1 1 1 0.5;0 0 0 2 0.5 0.5 0.5;0 0 0 0.5 2 0.5 0.5;0 0 0 0.5 0.5 2 0.5;0.5 0.5 0.5 0.5 0.5 0.5 2];\r\nassert(isequal(fairest_girl(A),1080));\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":1,"created_by":5390,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":18,"test_suite_updated_at":"2015-03-03T18:22:50.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2015-03-03T18:06:46.000Z","updated_at":"2026-04-01T09:44:49.000Z","published_at":"2015-03-03T18:13:07.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/media/image1.png\"}],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe Elo rating system was featured in the movie\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eThe Social Network\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e during the\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.youtube.com/watch?v=BzZRr4KV59I/\\\"\u003e\u003cw:r\u003e\u003cw:t\u003ealgorithm scene\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e where Mark Zuckerberg released Facemash.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eIn the scene Eduardo Saverin writes mathematical formulas for the Elo rating system on Zuckerberg's dorm room window. The Elo system is employed to rank coeds by their attractiveness. The equations driving the algorithm are shown briefly (Ea and Eb).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eYou should know these equations now (See problem\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://www.mathworks.com/matlabcentral/cody/problems/3056-chess-probability/\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e3056\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e) :\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId1\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eEa is the expected probability that Girl A will win the match against Girl B.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eRa is the rating of Girl A, which changes after tournament, according to the formula (Ra )n = (Ra )n-1 + 32 (W - Ea ) where W = {1,0.5,0}.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eNow imagine a single round-robin tournament where each girl plays (is compared with) every other girl once. A judge (me for the problem) gives a note :\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e1 if girl A is more attractive than girl B\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e0 if girl B is more attractive than girl A\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e0.5 if same attractiveness\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eI give you the tournament results (2 on the main diagonal).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFind the final rating of Snow White (she is unique).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eConsider that all girl begin the tournament with a rating of 1000.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eYou can observe that the total number of attractiveness (ELO) points remains constant.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"},{\"partUri\":\"/media/image1.png\",\"contentType\":\"image/png\",\"content\":\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAM4AAAArBAMAAADCuKrGAAAAMFBMVEX///90dHQEBAQwMDCenp5QUFAWFhbm5ubMzMyKioq2trZAQEAMDAwiIiJiYmIAAADHPVvyAAAAAXRSTlMAQObYZgAAAuJJREFUeNrtV0toE2EQ/pJs91+TZpuKKZ7aHDxZhKBo8WCNQj14qNHiAxFZRNIHVAPFi0UbFC8qEqh40cOePBUfUAoS0BQPvhByqXqoEK1CaauNXswWu3H+JF03TbV5dHPqwGYzM//u98/881qgOhoscZ29OhjnkRIXOqqCYdvmXqMmtKc2fiuZ1nHWcdZxikmrDU7Xq53hkhbagG8Nz7Cl0WO565xkuxS3/nwEHUinrMfJ9NLdbz2OPYUkVOtD+2GA+S0HEYDAzQ82nyEYe8R/+yxAfoc6671G+dM6If+U0oC4sEyXWSuQHzw5JQ0MdfRnPmxpvGk6Fam9lK5q9kzGQpwSqz4Y+beK71cq2rSDxwC9V6iPlrE/+T/GH6fLVWRPhpx3ia57v4Jl4NyIYv5pV8HODH4kx9ep0uETuOYly9m43dV/N7brShRS50xw9amWCwabaWEboO4f7THrDF4PABv4aKe3PMDn2SSJFFMi2ZSiCvt2JcFLDMNJWdYEHqV/yeB52vvBmtQRiAfjOFvQfybhWF6zWau6gkDuwXlVoD214MK0WWvwGnnHB5ZCH9gLFf1mnKvTGJpY3ivfLIWd2yRI+yAEFsnpKe+sD/fbpwL5RVkeUraeLPpxPRtdH42HS5me3SZBgwcOxRWAlEI7aSJCwhaLxR7nebjI0m76PGBRUW2C+EnBucr6djgCSaHSoSWxSDUjkolnOjo6DuV57KaYe4IDWDg9uekOxF4FxyrD4TVEEVTYPRiWcLHxfT6TcjzqGUUeWZTZuHVOCWOM4XfFc0gaepCdOglvEpvnt+djJMfLvgEIUcYFU7f1fZ344k1Wdj5DUbjjPH+yNAqxICgHvo/DFbGV2QCyOK5Q6Ewo1G+KA7diZHD3UvbnKYijuFX2V+JK9ohBiEk4cyVG1r+2FZiTkCZVDy6vAY6cQINaQV8oa6olgZaGrKwtTtFUywXa8+YdVnVDN2pDjqrf8Af8bczR/4tLjAAAAABJRU5ErkJggg==\"}]}"},{"id":306,"title":"Eight Queens Solution Checker","description":"Write a function to verify whether an arrangement of queens on a chessboard is a valid solution to the classic eight queens problem.\r\nIn the eight queens problem, eight queens must be placed on a chessboard such that no two queens attack each other. That is, no two queens can share the same row, column, or diagonal. The diagram below is one possible solution:\r\n\r\nYour function should take an 8-by-8 matrix of 0s and 1s, where the 1s represent the position of the queens, and return a logical 1 if the solution is valid or a logical 0 otherwise.\r\nEXAMPLE 1\r\n   in1 = [ ...\r\n       0 0 0 1 0 0 0 0\r\n       0 0 0 0 0 0 1 0\r\n       0 0 1 0 0 0 0 0\r\n       0 0 0 0 0 0 0 1\r\n       0 1 0 0 0 0 0 0\r\n       0 0 0 0 1 0 0 0\r\n       1 0 0 0 0 0 0 0\r\n       0 0 0 0 0 1 0 0 ];\r\n\r\n   isEightQueensSolution(in1)\r\nreturns 1.\r\nEXAMPLE 2\r\n   in2 = [ ...\r\n       0 0 0 1 0 0 0 0\r\n       0 0 0 0 0 0 1 0\r\n       0 0 1 0 0 0 0 0\r\n       0 0 0 0 0 0 0 1\r\n       0 1 0 0 0 0 0 0\r\n       1 0 0 0 0 0 0 0\r\n       0 0 0 0 1 0 0 0\r\n       0 0 0 0 0 1 0 0 ];\r\n\r\n   isEightQueensSolution(in2)\r\nreturns 0. (Notice that the queens on the bottom two rows share a diagonal.)","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.4333px; min-height: 0px; white-space: normal; color: rgb(0, 0, 0); font-family: Menlo, Monaco, Consolas, monospace; font-style: normal; font-size: 14px; font-weight: 400; text-decoration: rgb(0, 0, 0); white-space: normal; \"\u003e\u003cdiv style=\"block-size: 1032.03px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 516.017px; transform-origin: 407px 516.017px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 343.5px 8px; transform-origin: 343.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eWrite a function to verify whether an arrangement of queens on a chessboard is a valid solution to the classic\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 2px 8px; transform-origin: 2px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"/#null\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eeight queens problem\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 2px 8px; transform-origin: 2px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 377.5px 8px; transform-origin: 377.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eIn the eight queens problem, eight queens must be placed on a chessboard such that no two queens attack each other. That is, no two queens can share the same row, column, or diagonal. The diagram below is one possible solution:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 287.5px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 143.75px; text-align: center; transform-origin: 384px 143.75px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cimg class=\"imageNode\" style=\"vertical-align: baseline\" src=\"data:image/png;base64,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\" data-image-state=\"image-loaded\"\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 380px 8px; transform-origin: 380px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eYour function should take an 8-by-8 matrix of 0s and 1s, where the 1s represent the position of the queens, and return a logical 1 if the solution is valid or a logical 0 otherwise.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 39px 8px; transform-origin: 39px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eEXAMPLE 1\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgb(247, 247, 247); block-size: 224.767px; border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; border-end-end-radius: 4px; border-end-start-radius: 4px; border-start-end-radius: 4px; border-start-start-radius: 4px; border-top-left-radius: 4px; border-top-right-radius: 4px; margin-block-end: 10px; margin-block-start: 10px; margin-bottom: 10px; margin-inline-end: 3px; margin-inline-start: 3px; margin-left: 3px; margin-right: 3px; margin-top: 10px; perspective-origin: 404px 112.383px; transform-origin: 404px 112.383px; margin-left: 3px; margin-top: 10px; margin-bottom: 10px; margin-right: 3px; \"\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 56px 8.5px; tab-size: 4; transform-origin: 56px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; perspective-origin: 44px 8.5px; transform-origin: 44px 8.5px; \"\u003e   in1 = [ \u003c/span\u003e\u003cspan style=\"border-block-end-color: rgb(14, 0, 255); border-block-start-color: rgb(14, 0, 255); border-bottom-color: rgb(14, 0, 255); border-inline-end-color: rgb(14, 0, 255); border-inline-start-color: rgb(14, 0, 255); border-left-color: rgb(14, 0, 255); border-right-color: rgb(14, 0, 255); border-top-color: rgb(14, 0, 255); caret-color: rgb(14, 0, 255); color: rgb(14, 0, 255); column-rule-color: rgb(14, 0, 255); margin-inline-end: 0px; margin-right: 0px; outline-color: rgb(14, 0, 255); perspective-origin: 12px 8.5px; text-decoration: none; text-decoration-color: rgb(14, 0, 255); text-emphasis-color: rgb(14, 0, 255); transform-origin: 12px 8.5px; \"\u003e...\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 88px 8.5px; tab-size: 4; transform-origin: 88px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e       0 0 0 1 0 0 0 0\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 88px 8.5px; tab-size: 4; transform-origin: 88px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e       0 0 0 0 0 0 1 0\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 88px 8.5px; tab-size: 4; transform-origin: 88px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e       0 0 1 0 0 0 0 0\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 88px 8.5px; tab-size: 4; transform-origin: 88px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e       0 0 0 0 0 0 0 1\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 88px 8.5px; tab-size: 4; transform-origin: 88px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e       0 1 0 0 0 0 0 0\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 88px 8.5px; tab-size: 4; transform-origin: 88px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e       0 0 0 0 1 0 0 0\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 88px 8.5px; tab-size: 4; transform-origin: 88px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e       1 0 0 0 0 0 0 0\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 100px 8.5px; tab-size: 4; transform-origin: 100px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e       0 0 0 0 0 1 0 0 ];\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 0px 8.5px; tab-size: 4; transform-origin: 0px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 116px 8.5px; tab-size: 4; transform-origin: 116px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e   isEightQueensSolution(in1)\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 10px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 10px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 10px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 30.5px 8px; transform-origin: 30.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003ereturns 1.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 39px 8px; transform-origin: 39px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eEXAMPLE 2\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgb(247, 247, 247); block-size: 224.767px; border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; border-end-end-radius: 4px; border-end-start-radius: 4px; border-start-end-radius: 4px; border-start-start-radius: 4px; border-top-left-radius: 4px; border-top-right-radius: 4px; margin-block-end: 10px; margin-block-start: 10px; margin-bottom: 10px; margin-inline-end: 3px; margin-inline-start: 3px; margin-left: 3px; margin-right: 3px; margin-top: 10px; perspective-origin: 404px 112.383px; transform-origin: 404px 112.383px; margin-left: 3px; margin-top: 10px; margin-bottom: 10px; margin-right: 3px; \"\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 56px 8.5px; tab-size: 4; transform-origin: 56px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; perspective-origin: 44px 8.5px; transform-origin: 44px 8.5px; \"\u003e   in2 = [ \u003c/span\u003e\u003cspan style=\"border-block-end-color: rgb(14, 0, 255); border-block-start-color: rgb(14, 0, 255); border-bottom-color: rgb(14, 0, 255); border-inline-end-color: rgb(14, 0, 255); border-inline-start-color: rgb(14, 0, 255); border-left-color: rgb(14, 0, 255); border-right-color: rgb(14, 0, 255); border-top-color: rgb(14, 0, 255); caret-color: rgb(14, 0, 255); color: rgb(14, 0, 255); column-rule-color: rgb(14, 0, 255); margin-inline-end: 0px; margin-right: 0px; outline-color: rgb(14, 0, 255); perspective-origin: 12px 8.5px; text-decoration: none; text-decoration-color: rgb(14, 0, 255); text-emphasis-color: rgb(14, 0, 255); transform-origin: 12px 8.5px; \"\u003e...\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 88px 8.5px; tab-size: 4; transform-origin: 88px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e       0 0 0 1 0 0 0 0\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 88px 8.5px; tab-size: 4; transform-origin: 88px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e       0 0 0 0 0 0 1 0\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 88px 8.5px; tab-size: 4; transform-origin: 88px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e       0 0 1 0 0 0 0 0\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 88px 8.5px; tab-size: 4; transform-origin: 88px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e       0 0 0 0 0 0 0 1\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 88px 8.5px; tab-size: 4; transform-origin: 88px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e       0 1 0 0 0 0 0 0\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 88px 8.5px; tab-size: 4; transform-origin: 88px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e       1 0 0 0 0 0 0 0\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 88px 8.5px; tab-size: 4; transform-origin: 88px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e       0 0 0 0 1 0 0 0\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 100px 8.5px; tab-size: 4; transform-origin: 100px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e       0 0 0 0 0 1 0 0 ];\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 0px 8.5px; tab-size: 4; transform-origin: 0px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 116px 8.5px; tab-size: 4; transform-origin: 116px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e   isEightQueensSolution(in2)\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 10px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 10px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 10px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 240px 8px; transform-origin: 240px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003ereturns 0. (Notice that the queens on the bottom two rows share a diagonal.)\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function y = isEightQueensSolution(x)\r\n  y = x;\r\nend","test_suite":"%% Eight Queens Solution Checker Test Suite\r\n\r\n%%\r\n% Unique solution #6 from \r\n% http://en.wikipedia.org/wiki/Eight_queens_puzzle\r\nin1 = [ ...\r\n    0 0 0 0 1 0 0 0\r\n    0 0 1 0 0 0 0 0\r\n    0 0 0 0 0 0 0 1\r\n    0 0 0 1 0 0 0 0\r\n    0 0 0 0 0 0 1 0\r\n    1 0 0 0 0 0 0 0\r\n    0 0 0 0 0 1 0 0\r\n    0 1 0 0 0 0 0 0 ];\r\nout1 = isEightQueensSolution(in1);\r\nassert(islogical(out1));\r\nassert(isequal(out1, 1));\r\n\r\n%%\r\n% Unique solution #7\r\nin2 = [ ...\r\n    0 0 0 0 1 0 0 0\r\n    0 0 0 0 0 0 1 0\r\n    0 0 0 1 0 0 0 0\r\n    1 0 0 0 0 0 0 0\r\n    0 0 1 0 0 0 0 0\r\n    0 0 0 0 0 0 0 1\r\n    0 0 0 0 0 1 0 0\r\n    0 1 0 0 0 0 0 0 ];\r\nout2 = isEightQueensSolution(in2);\r\nassert(isequal(out2, 1));\r\n\r\n%%\r\n% Unique solution #10\r\nin3 = [ ...\r\n    0 0 0 0 0 1 0 0\r\n    0 1 0 0 0 0 0 0\r\n    0 0 0 0 0 0 1 0\r\n    1 0 0 0 0 0 0 0\r\n    0 0 0 1 0 0 0 0\r\n    0 0 0 0 0 0 0 1\r\n    0 0 0 0 1 0 0 0\r\n    0 0 1 0 0 0 0 0 ];\r\nout3 = isEightQueensSolution(in3);\r\nassert(isequal(out3, 1));\r\n\r\n%%\r\n% Unique solution #11\r\nin4 = [ ...\r\n    0 0 0 1 0 0 0 0\r\n    0 0 0 0 0 0 1 0\r\n    1 0 0 0 0 0 0 0\r\n    0 0 0 0 0 0 0 1\r\n    0 0 0 0 1 0 0 0\r\n    0 1 0 0 0 0 0 0\r\n    0 0 0 0 0 1 0 0\r\n    0 0 1 0 0 0 0 0 ];\r\nout4 = isEightQueensSolution(in4);\r\nassert(isequal(out4, 1));\r\n\r\n%%\r\nin5 = [ ...\r\n    0 0 0 0 1 0 0 0\r\n    0 0 1 0 0 0 0 0\r\n    0 0 0 1 0 0 0 0\r\n    0 0 0 0 0 0 0 1\r\n    0 0 0 0 0 0 1 0\r\n    1 0 0 0 0 0 0 0\r\n    0 0 0 0 0 1 0 0\r\n    0 1 0 0 0 0 0 0 ];\r\nout5 = isEightQueensSolution(in5);\r\nassert(isequal(out5, 0));\r\n\r\n%%\r\nin6 = [ ...\r\n    0 0 1 0 0 0 0 0\r\n    0 0 0 0 0 0 1 0\r\n    0 0 0 1 0 0 0 0\r\n    1 0 0 0 0 0 0 0\r\n    0 0 1 0 0 0 0 0\r\n    0 0 0 0 0 0 0 1\r\n    0 0 0 0 0 1 0 0\r\n    0 1 0 0 0 0 0 0 ];\r\nout6 = isEightQueensSolution(in6);\r\nassert(isequal(out6, 0));\r\n\r\n%%\r\nin7 = [ ...\r\n    0 0 0 0 0 1 0 0\r\n    0 1 0 0 0 0 0 0\r\n    0 0 0 0 0 0 1 0\r\n    1 0 0 0 0 0 0 0\r\n    0 0 0 1 0 0 0 0\r\n    0 0 0 0 0 0 0 1\r\n    0 0 1 0 0 0 0 0\r\n    0 0 0 0 1 0 0 0 ];\r\nout7 = isEightQueensSolution(in7);\r\nassert(isequal(out7, 0));\r\n\r\n%%\r\nin8 = [ ...\r\n    0 0 0 1 0 0 0 0\r\n    0 0 0 0 0 0 1 0\r\n    1 0 0 0 0 0 0 0\r\n    0 0 0 0 1 0 0 1\r\n    0 0 0 0 0 0 0 0\r\n    0 1 0 0 0 0 0 0\r\n    0 0 0 0 0 1 0 0\r\n    0 0 1 0 0 0 0 0 ];\r\nout8 = isEightQueensSolution(in8);\r\nassert(isequal(out8, 0));\r\n\r\n%%\r\n% Only 7 queens\r\nin9 = [ ...\r\n    0 0 0 0 1 0 0 0\r\n    0 0 1 0 0 0 0 0\r\n    0 0 0 0 0 0 0 1\r\n    0 0 0 1 0 0 0 0\r\n    0 0 0 0 0 0 0 0\r\n    1 0 0 0 0 0 0 0\r\n    0 0 0 0 0 1 0 0\r\n    0 1 0 0 0 0 0 0 ];\r\nout9 = isEightQueensSolution(in9);\r\nassert(isequal(out9, 0));\r\n\r\n%%\r\n% Row and column constraint satisfied but \r\n% not diagonal constraint.\r\nin10 = eye(8);\r\nout10 = isEightQueensSolution(in10);\r\nassert(isequal(out10, 0));\r\n\r\n%%\r\n% Row and column constraint satisfied but \r\n% not diagonal constraint.\r\nin10 = flip(eye(8));\r\nout10 = isEightQueensSolution(in10);\r\nassert(isequal(out10, 0));","published":true,"deleted":false,"likes_count":6,"comments_count":2,"created_by":4303371,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":168,"test_suite_updated_at":"2022-01-07T08:34:21.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2012-02-11T12:21:25.000Z","updated_at":"2026-03-23T21:10:35.000Z","published_at":"2012-02-11T12:55:24.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eWrite a function to verify whether an arrangement of queens on a chessboard is a valid solution to the classic\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eeight queens problem\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eIn the eight queens problem, eight queens must be placed on a chessboard such that no two queens attack each other. That is, no two queens can share the same row, column, or diagonal. The diagram below is one possible solution:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"center\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"verticalAlign\\\" w:val=\\\"baseline\\\"/\u003e\u003cw:attr w:name=\\\"altText\\\" w:val=\\\"\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId1\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eYour function should take an 8-by-8 matrix of 0s and 1s, where the 1s represent the position of the queens, and return a logical 1 if the solution is valid or a logical 0 otherwise.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eEXAMPLE 1\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[   in1 = [ ...\\n       0 0 0 1 0 0 0 0\\n       0 0 0 0 0 0 1 0\\n       0 0 1 0 0 0 0 0\\n       0 0 0 0 0 0 0 1\\n       0 1 0 0 0 0 0 0\\n       0 0 0 0 1 0 0 0\\n       1 0 0 0 0 0 0 0\\n       0 0 0 0 0 1 0 0 ];\\n\\n   isEightQueensSolution(in1)]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ereturns 1.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eEXAMPLE 2\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[   in2 = [ ...\\n       0 0 0 1 0 0 0 0\\n       0 0 0 0 0 0 1 0\\n       0 0 1 0 0 0 0 0\\n       0 0 0 0 0 0 0 1\\n       0 1 0 0 0 0 0 0\\n       1 0 0 0 0 0 0 0\\n       0 0 0 0 1 0 0 0\\n       0 0 0 0 0 1 0 0 ];\\n\\n   isEightQueensSolution(in2)]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ereturns 0. (Notice that the queens on the bottom two rows share a diagonal.)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\",\"relationship\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"target\":\"/media/image1.png\",\"relationshipId\":\"rId1\"}]},{\"partUri\":\"/media/image1.png\",\"contentType\":\"image/png\",\"content\":\"data:image/png;base64,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\",\"relationship\":null}],\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"target\":\"/matlab/document.xml\",\"relationshipId\":\"rId1\"}]}"},{"id":45237,"title":"Queen's move - 02","description":"In continuation with the problem-45236 ... \r\nIn the previous problem, it was assumed that there were no other chess pieces on the board... Now lets assume there is a number of king present on the board whose location is given in an array *p* . Now, check for the validity of Queen's moves.\r\n\r\n# x={'Qd1','Qh1','Qh8','Qd5','Qg5','Qc5','Qa7','Qf2','Qe7','Qh7'}\r\n# p={'Kd4','Ke5','Kh7','Ke7'}\r\n\r\noutput=[1,1,0,1,0,1,1,0,0,0]\r\n\r\nkindly see this problem for understanding\r\n\u003chttps://www.mathworks.com/matlabcentral/cody/problems/45236-queen-s-move\u003e\r\n","description_html":"\u003cp\u003eIn continuation with the problem-45236 ... \r\nIn the previous problem, it was assumed that there were no other chess pieces on the board... Now lets assume there is a number of king present on the board whose location is given in an array \u003cb\u003ep\u003c/b\u003e . Now, check for the validity of Queen's moves.\u003c/p\u003e\u003col\u003e\u003cli\u003ex={'Qd1','Qh1','Qh8','Qd5','Qg5','Qc5','Qa7','Qf2','Qe7','Qh7'}\u003c/li\u003e\u003cli\u003ep={'Kd4','Ke5','Kh7','Ke7'}\u003c/li\u003e\u003c/ol\u003e\u003cp\u003eoutput=[1,1,0,1,0,1,1,0,0,0]\u003c/p\u003e\u003cp\u003ekindly see this problem for understanding \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/45236-queen-s-move\"\u003ehttps://www.mathworks.com/matlabcentral/cody/problems/45236-queen-s-move\u003c/a\u003e\u003c/p\u003e","function_template":"function z = Queen_move_3(x,p)\r\n  y = x;\r\nend","test_suite":"%%\r\nx={'Qd1','Qh1','Qh8','Qd5','Qg5','Qc5','Qa7','Qf2','Qe7','Qh7'};\r\np={'Kd4','Ke5','Kh7','Ke7'};\r\ny_correct = [1,1,0,1,0,1,1,0,0,0];\r\nassert(isequal(Queen_move_3(x,p),y_correct))\r\n\r\n%%\r\nx={'Qd1','Qd5','Qf1','Qa8','Qf7','Qb2','Qc7'};\r\np={'Kd4','Ke5','Kh7','Ke7'};\r\ny_correct = [1,0,1,0,1,0,0];\r\nassert(isequal(Queen_move_3(x,p),y_correct))\r\n\r\n%%\r\nx={'Qh7','Qh1','Qh8','Qd5','Qg5','Qc5','Qa7','Qf2','Qe7'};\r\np={'Kd4','Ke5','Kh7','Ke7'};\r\ny_correct = [0,0,0,0,0,0,0,0,0];\r\nassert(isequal(Queen_move_3(x,p),y_correct))\r\n\r\n%%\r\nx={'Qh7','Qh1','Qh8','Qd5','Qg5','Qc5','Qa7','Qf2','Qe7'};\r\np={'Ka8','Kb2','Kd7','Kf3','Kg6'};\r\ny_correct = [1,1,1,0,0,0,0,0,0];\r\nassert(isequal(Queen_move_3(x,p),y_correct))\r\n\r\n%%\r\nx={'Qh7','Qh1','Qd5','Qg5','Qc5','Qa7','Qf2','Qe7','Qg2','Qg7','Qf1','Qf7','Qf2','Qa2'};\r\np={'Ka8','Kb2','Kd7','Kf3','Kg6'};\r\ny_correct = [1,1,0,0,0,0,0,0,1,0,1,0,1,0];\r\nassert(isequal(Queen_move_3(x,p),y_correct))\r\n","published":true,"deleted":false,"likes_count":2,"comments_count":3,"created_by":363598,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":8,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2019-12-20T23:00:44.000Z","updated_at":"2026-01-23T12:47:14.000Z","published_at":"2019-12-20T23:01:21.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eIn continuation with the problem-45236 ... In the previous problem, it was assumed that there were no other chess pieces on the board... Now lets assume there is a number of king present on the board whose location is given in an array\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ep\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e . Now, check for the validity of Queen's moves.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"2\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ex={'Qd1','Qh1','Qh8','Qd5','Qg5','Qc5','Qa7','Qf2','Qe7','Qh7'}\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"2\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ep={'Kd4','Ke5','Kh7','Ke7'}\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eoutput=[1,1,0,1,0,1,1,0,0,0]\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ekindly see this problem for understanding\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/45236-queen-s-move\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026lt;https://www.mathworks.com/matlabcentral/cody/problems/45236-queen-s-move\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026gt;\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":45332,"title":"Castling-03","description":"Given the position of different chess pieces on the chessboard, figure out whether castling is valid or not in the next move (white king).\r\n\r\n* a=position of white pieces\r\n* b=position of black pieces\r\n\r\n\u003chttps://en.wikipedia.org/wiki/Castling\u003e\r\n\r\nPrevious problem \u003chttps://www.mathworks.com/matlabcentral/cody/problems/45330-castling-02#\u003e\r\n\r\n\r\n","description_html":"\u003cp\u003eGiven the position of different chess pieces on the chessboard, figure out whether castling is valid or not in the next move (white king).\u003c/p\u003e\u003cul\u003e\u003cli\u003ea=position of white pieces\u003c/li\u003e\u003cli\u003eb=position of black pieces\u003c/li\u003e\u003c/ul\u003e\u003cp\u003e\u003ca href = \"https://en.wikipedia.org/wiki/Castling\"\u003ehttps://en.wikipedia.org/wiki/Castling\u003c/a\u003e\u003c/p\u003e\u003cp\u003ePrevious problem \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/45330-castling-02#\"\u003ehttps://www.mathworks.com/matlabcentral/cody/problems/45330-castling-02#\u003c/a\u003e\u003c/p\u003e","function_template":"function tf=castling_03(a,b)\r\n  y = x;\r\nend","test_suite":"%%\r\na={'Rd1','Rh1','Ke1'}\r\n b={'Nc6','Bg1','g5','Rh8'}\r\nassert(isequal(castling_03(a,b),0))\r\n\r\n%%\r\na={'Rd1','Rh1','Ke1'}\r\nb={'Nc6','d3','g5','Rh8','Qb8'}\r\nassert(isequal(castling_03(a,b),1))\r\n\r\n%%\r\na={'Qe1','Rh1','Kd2','Nf7'}\r\nb={'Nc6','d3','g5','Rh8','Qb8'}\r\nassert(isequal(castling_03(a,b),0))\r\n\r\n%%\r\na={'Qe1','Rh1','Kd2','Nf7'}\r\nb={'Nc6','d3','g5','Rh8','Qc1'}\r\nassert(isequal(castling_03(a,b),0))\r\n\r\n%%\r\na={'Qf1','Rh1','Ra1','Ke1'}\r\nb={'Ng1','h3','Rg5','Nb1','Qa8'}\r\nassert(isequal(castling_03(a,b),0))\r\n\r\n%%\r\na={'Qf1','Rh1','Ra1','Ke1'}\r\nb={'Ng1','h3','Rg5','Nb5','Qa8'}\r\nassert(isequal(castling_03(a,b),1))\r\n\r\n%%\r\na={'Qf1','Rh1','Ra1','Ke1'}\r\n b={'Ba8','Bg7','Rh6','Rb2'}\r\nassert(isequal(castling_03(a,b),1))\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":3,"created_by":363598,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":9,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2020-02-16T12:59:11.000Z","updated_at":"2026-01-23T14:02:57.000Z","published_at":"2020-02-16T13:24:25.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eGiven the position of different chess pieces on the chessboard, figure out whether castling is valid or not in the next move (white king).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ea=position of white pieces\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eb=position of black pieces\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:hyperlink w:docLocation=\\\"https://en.wikipedia.org/wiki/Castling\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026lt;https://en.wikipedia.org/wiki/Castling\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026gt;\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ePrevious problem\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/45330-castling-02#\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026lt;https://www.mathworks.com/matlabcentral/cody/problems/45330-castling-02#\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026gt;\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":447,"title":"swap sign sum \u0026 multiply castles","description":"It is an easy problem, if you know the answer.\r\nGiven a square matrix of NxN ordinary numbers.\r\nInitially place N identical indistinguishable castles or rooks (chess pieces) on the main diagonal.\r\nThen keep swapping any two rows or columns to exhaustively enumerate all possible unique patterns of castle formation.\r\nNot a single castle in any of these formations should be under threat of any other castle,\r\nonly one castle watches over an otherwise empty row and column.\r\nFor each pattern, find the product of all numbers covered by the castles.\r\nIf this pattern was obtained after even number (0,2,4,...) of swaps,\r\nthen add the product to an initially empty accumulator,\r\notherwise subtract the product from the accumulator.\r\nGive the final expected value of the accumulator,\r\ndoes not matter whether by hook or by crook,\r\nbut please give a general solution,\r\nthe test suite may be modified soon.","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.4333px; min-height: 0px; white-space: normal; color: rgb(0, 0, 0); font-family: Menlo, Monaco, Consolas, monospace; font-style: normal; font-size: 14px; font-weight: 400; text-decoration: rgb(0, 0, 0); white-space: normal; \"\u003e\u003cdiv style=\"block-size: 306.5px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 153.25px; transform-origin: 407px 153.25px; vertical-align: baseline; \"\u003e\u003cul style=\"counter-reset: list-item 0; font-family: Helvetica, Arial, sans-serif; list-style-type: square; margin-block-end: 20px; margin-block-start: 10px; margin-bottom: 20px; margin-top: 10px; perspective-origin: 391px 153.25px; transform-origin: 391px 153.25px; margin-top: 10px; margin-bottom: 20px; \"\u003e\u003cli style=\"background-position-x: 0px; background-position-y: 50%; block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.2167px; text-align: left; transform-origin: 363px 10.2167px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"background-position-x: 0%; background-position-y: 0%; block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 142px 8px; transform-origin: 142px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eIt is an easy problem, if you know the answer.\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"background-position-x: 0px; background-position-y: 50%; block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.2167px; text-align: left; transform-origin: 363px 10.2167px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"background-position-x: 0%; background-position-y: 0%; block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 150.5px 8px; transform-origin: 150.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eGiven a square matrix of NxN ordinary numbers.\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"background-position-x: 0px; background-position-y: 50%; block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.2167px; text-align: left; transform-origin: 363px 10.2167px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"background-position-x: 0%; background-position-y: 0%; block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 299px 8px; transform-origin: 299px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eInitially place N identical indistinguishable castles or rooks (chess pieces) on the main diagonal.\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"background-position-x: 0px; background-position-y: 50%; block-size: 40.8667px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 20.4333px; text-align: left; transform-origin: 363px 20.4333px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"background-position-x: 0%; background-position-y: 0%; block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 348px 8px; transform-origin: 348px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThen keep swapping any two rows or columns to exhaustively enumerate all possible unique patterns of castle formation.\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"background-position-x: 0px; background-position-y: 50%; block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.2167px; text-align: left; transform-origin: 363px 10.2167px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"background-position-x: 0%; background-position-y: 0%; block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 277.5px 8px; transform-origin: 277.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eNot a single castle in any of these formations should be under threat of any other castle,\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"background-position-x: 0px; background-position-y: 50%; block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.2167px; text-align: left; transform-origin: 363px 10.2167px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"background-position-x: 0%; background-position-y: 0%; block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 207.5px 8px; transform-origin: 207.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eonly one castle watches over an otherwise empty row and column.\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"background-position-x: 0px; background-position-y: 50%; block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.2167px; text-align: left; transform-origin: 363px 10.2167px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"background-position-x: 0%; background-position-y: 0%; block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 228px 8px; transform-origin: 228px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eFor each pattern, find the product of all numbers covered by the castles.\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"background-position-x: 0px; background-position-y: 50%; block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.2167px; text-align: left; transform-origin: 363px 10.2167px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"background-position-x: 0%; background-position-y: 0%; block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 207px 8px; transform-origin: 207px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eIf this pattern was obtained after even number (0,2,4,...) of swaps,\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"background-position-x: 0px; background-position-y: 50%; block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.2167px; text-align: left; transform-origin: 363px 10.2167px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"background-position-x: 0%; background-position-y: 0%; block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 170px 8px; transform-origin: 170px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003ethen add the product to an initially empty accumulator,\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"background-position-x: 0px; background-position-y: 50%; block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.2167px; text-align: left; transform-origin: 363px 10.2167px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"background-position-x: 0%; background-position-y: 0%; block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 165.5px 8px; transform-origin: 165.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eotherwise subtract the product from the accumulator.\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"background-position-x: 0px; background-position-y: 50%; block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.2167px; text-align: left; transform-origin: 363px 10.2167px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"background-position-x: 0%; background-position-y: 0%; block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 153px 8px; transform-origin: 153px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eGive the final expected value of the accumulator,\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"background-position-x: 0px; background-position-y: 50%; block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.2167px; text-align: left; transform-origin: 363px 10.2167px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"background-position-x: 0%; background-position-y: 0%; block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 143px 8px; transform-origin: 143px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003edoes not matter whether by hook or by crook,\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"background-position-x: 0px; background-position-y: 50%; block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.2167px; text-align: left; transform-origin: 363px 10.2167px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"background-position-x: 0%; background-position-y: 0%; block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 108.5px 8px; transform-origin: 108.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003ebut please give a general solution,\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"background-position-x: 0px; background-position-y: 50%; block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.2167px; text-align: left; transform-origin: 363px 10.2167px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"background-position-x: 0%; background-position-y: 0%; block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 113.5px 8px; transform-origin: 113.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003ethe test suite may be modified soon.\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003c/ul\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function y = swapsignsum(x)\r\n  y = prod(diag(x));\r\nend","test_suite":"%%\r\nx = [3 4; 1 2];\r\ny = round(swapsignsum(x))\r\ny_correct = 2;\r\nassert(y==y_correct)\r\n\r\n%%\r\nx = [3 1 3 2; 5 5 8 9; 7 1 3 3; 9 1 8 2];\r\ny = round(swapsignsum(x))\r\ny_correct = 12;\r\nassert(y==y_correct)\r\n\r\n%%\r\nx = [1 2;3 4];\r\ny = round(swapsignsum(x));\r\ny_correct = -2;\r\nassert(y==y_correct)\r\n\r\n%%\r\nx = eye(randi(7));\r\ny = round(swapsignsum(x));\r\ny_correct = 1;\r\nassert(y==y_correct)","published":true,"deleted":false,"likes_count":4,"comments_count":4,"created_by":166,"edited_by":223089,"edited_at":"2023-04-18T18:14:35.000Z","deleted_by":null,"deleted_at":null,"solvers_count":227,"test_suite_updated_at":"2023-04-18T18:14:35.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2012-03-04T09:15:20.000Z","updated_at":"2026-03-16T14:57:26.000Z","published_at":"2012-03-05T20:08:13.000Z","restored_at":null,"restored_by":null,"spam":null,"simulink":false,"admin_reviewed":false,"description_opc":"{\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eIt is an easy problem, if you know the answer.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eGiven a square matrix of NxN ordinary numbers.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eInitially place N identical indistinguishable castles or rooks (chess pieces) on the main diagonal.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThen keep swapping any two rows or columns to exhaustively enumerate all possible unique patterns of castle formation.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eNot a single castle in any of these formations should be under threat of any other castle,\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eonly one castle watches over an otherwise empty row and column.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFor each pattern, find the product of all numbers covered by the castles.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eIf this pattern was obtained after even number (0,2,4,...) of swaps,\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ethen add the product to an initially empty accumulator,\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eotherwise subtract the product from the accumulator.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eGive the final expected value of the accumulator,\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003edoes not matter whether by hook or by crook,\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ebut please give a general solution,\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ethe test suite may be modified soon.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\",\"relationship\":null}],\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"target\":\"/matlab/document.xml\",\"relationshipId\":\"rId1\"}]}"},{"id":45418,"title":"En passant - 01","description":"This is white's turn. The player moves his pawn.\r\n\r\nThe pawn's previous and current positions are given.\r\n\r\nDetermine whether the move was valid.\r\n\r\n pawn's previous pos = 'b2'\r\n pawn's previous pos = 'c3'\r\n\r\nSo this is a valid move provided there was an opponent piece on c3.\r\n\r\nBut for now, just check the validity of the move. Opponent's pieces will be added in the next problem.\r\n\r\n\u003chttps://en.wikipedia.org/wiki/Chess#Movement\u003e\r\n","description_html":"\u003cp\u003eThis is white's turn. The player moves his pawn.\u003c/p\u003e\u003cp\u003eThe pawn's previous and current positions are given.\u003c/p\u003e\u003cp\u003eDetermine whether the move was valid.\u003c/p\u003e\u003cpre\u003e pawn's previous pos = 'b2'\r\n pawn's previous pos = 'c3'\u003c/pre\u003e\u003cp\u003eSo this is a valid move provided there was an opponent piece on c3.\u003c/p\u003e\u003cp\u003eBut for now, just check the validity of the move. Opponent's pieces will be added in the next problem.\u003c/p\u003e\u003cp\u003e\u003ca href = \"https://en.wikipedia.org/wiki/Chess#Movement\"\u003ehttps://en.wikipedia.org/wiki/Chess#Movement\u003c/a\u003e\u003c/p\u003e","function_template":"function tf = en_passant(w1,w2)","test_suite":"%%\r\nassert(isequal(en_passant('b2','c3'),1))\r\n%%\r\nassert(isequal(en_passant('a2','a3'),1))\r\n%%\r\nassert(isequal(en_passant('d3','d5'),0))\r\n%%\r\nassert(isequal(en_passant('e5','d4'),0))\r\n%%\r\nassert(isequal(en_passant('e5','c6'),0))\r\n%%\r\nassert(isequal(en_passant('e5','d6'),1))\r\n%%\r\nassert(isequal(en_passant('b2','b4'),1))\r\n%%\r\nassert(isequal(en_passant('b2','c2'),0))\r\n%%\r\nassert(isequal(en_passant('a1','a2'),0))\r\n%%\r\nassert(isequal(en_passant('g7','g8'),1))\r\n%%\r\nassert(isequal(en_passant('g7','g6'),0))\r\n%%\r\nassert(isequal(en_passant('f5','h6'),0))\r\n\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":363598,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":17,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2020-04-02T03:21:50.000Z","updated_at":"2026-01-23T14:14:44.000Z","published_at":"2020-04-02T03:23:17.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis is white's turn. The player moves his pawn.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe pawn's previous and current positions are given.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eDetermine whether the move was valid.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[ pawn's previous pos = 'b2'\\n pawn's previous pos = 'c3']]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eSo this is a valid move provided there was an opponent piece on c3.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eBut for now, just check the validity of the move. Opponent's pieces will be added in the next problem.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:hyperlink w:docLocation=\\\"https://en.wikipedia.org/wiki/Chess#Movement\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026lt;https://en.wikipedia.org/wiki/Chess#Movement\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026gt;\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":42674,"title":"Cody meets Xiangqi: foresee the unseen (Part 1)","description":"This is the first part of the Xiangqi series. The second part in this series is: \u003chttp://www.mathworks.com/matlabcentral/cody/problems/42685-cody-meets-xiangqi-foresee-the-unseen-part-2 Cody meets Xiangqi: foresee the unseen (Part 2)\u003e\r\n\r\n\u003chttps://en.wikipedia.org/wiki/Xiangqi Xiangqi\u003e, also known as *Chinese Chess* (and 象棋 in Chinese characters), is one of the most popular board games in China. The modern Xiangqi board contains a middle section which divides two players' sides and is marked the \"Chu River–Han border\", in reference to the Chu–Han Contention between \u003chttps://en.wikipedia.org/wiki/Xiang_Yu Xiang Yu\u003e and \u003chttps://de.wikipedia.org/wiki/Han_Gaozu Liu Bang\u003e, two prominent warlords and opponents who fought thousands of battles against each other for supremacy over China in the late Qin dynasty (206–202 BC). Those interested in the story of the Chu–Han Contention and its relation to Xiangqi are referred to \u003chttps://en.wikipedia.org/wiki/Chu%E2%80%93Han_Contention here\u003e.\r\n\r\nFresh to Xiangqi, Cody becomes interested in Xiangqi by raising a question: _Who is the stronger player of Xiangqi between Xiang Yu and Liu Bang_? To answer this question, Cody designs a match for Xiang Yu and Liu Bang, in which Cody serves as the referee. The smart Cody referee also sets an intelligent rule to determine the winner: \r\n\r\n_In a succession of Xiangqi games, once Xiang Yu wins Na games *consecutively*, whereas Liu Bang has not won Nb games *consecutively*, Cody immediately announces Xiang Yu as the winner. Contrarily, once Liu Bang defeats Xiang Yu Nb times *consecutively*, whereas Xiang Yu has not won Na times *consecutively*, Liu Bang becomes the winner._ \r\n\r\nCody suggests that Na \u003e 1 and Nb \u003e 1, in order to enhance, to some extent, the confidence of the result of the match. Suppose in each individual game, the probability Xiang Yu would win is p, and the probability Liu Bang would win is 1 - p, which implicitly assumes that the probability of a tie is 0 (because they both refuse to draw and will fight to death). Unfortunately, this well-designed match has never taken place. Regretfully, Cody requests us --- active Cody players --- to foresee the outcome of this unseen match using Monte Carlo simulations. Our task is to write a function\r\n\r\n                                sol = Xiangqi(p, Na, Nb)\r\n\r\nwith input: 0 \u003c= p \u003c= 1, Na \u003e 1, Nb \u003e 1, and output: sol --- the probability that Xiang Yu wins. Your solution will be tested against its true value Q (which is computed but hided in the P-file EvaluateSolution.p) according to a hybrid absolute and relative error tolerance criterion:\r\n\r\n                      abs(sol - Q) \u003c= max(AbsTol, RelTol*abs(sol))\r\n\r\nwhere AbsTol and RelTol are absolute and relative error tolerances, respectively, which will be specified in the test suite. You are encouraged to optimize the performance (rather than the usual Cody size) of your code as much as possible, as the score of your solution will be measured based on the *speed* of your code. \r\n\r\nHave fun!\r\n","description_html":"\u003cp\u003eThis is the first part of the Xiangqi series. The second part in this series is: \u003ca href = \"http://www.mathworks.com/matlabcentral/cody/problems/42685-cody-meets-xiangqi-foresee-the-unseen-part-2\"\u003eCody meets Xiangqi: foresee the unseen (Part 2)\u003c/a\u003e\u003c/p\u003e\u003cp\u003e\u003ca href = \"https://en.wikipedia.org/wiki/Xiangqi\"\u003eXiangqi\u003c/a\u003e, also known as \u003cb\u003eChinese Chess\u003c/b\u003e (and 象棋 in Chinese characters), is one of the most popular board games in China. The modern Xiangqi board contains a middle section which divides two players' sides and is marked the \"Chu River–Han border\", in reference to the Chu–Han Contention between \u003ca href = \"https://en.wikipedia.org/wiki/Xiang_Yu\"\u003eXiang Yu\u003c/a\u003e and \u003ca href = \"https://de.wikipedia.org/wiki/Han_Gaozu\"\u003eLiu Bang\u003c/a\u003e, two prominent warlords and opponents who fought thousands of battles against each other for supremacy over China in the late Qin dynasty (206–202 BC). Those interested in the story of the Chu–Han Contention and its relation to Xiangqi are referred to \u003ca href = \"https://en.wikipedia.org/wiki/Chu%E2%80%93Han_Contention\"\u003ehere\u003c/a\u003e.\u003c/p\u003e\u003cp\u003eFresh to Xiangqi, Cody becomes interested in Xiangqi by raising a question: \u003ci\u003eWho is the stronger player of Xiangqi between Xiang Yu and Liu Bang\u003c/i\u003e? To answer this question, Cody designs a match for Xiang Yu and Liu Bang, in which Cody serves as the referee. The smart Cody referee also sets an intelligent rule to determine the winner:\u003c/p\u003e\u003cp\u003e\u003ci\u003eIn a succession of Xiangqi games, once Xiang Yu wins Na games \u003cb\u003econsecutively\u003c/b\u003e, whereas Liu Bang has not won Nb games \u003cb\u003econsecutively\u003c/b\u003e, Cody immediately announces Xiang Yu as the winner. Contrarily, once Liu Bang defeats Xiang Yu Nb times \u003cb\u003econsecutively\u003c/b\u003e, whereas Xiang Yu has not won Na times \u003cb\u003econsecutively\u003c/b\u003e, Liu Bang becomes the winner.\u003c/i\u003e\u003c/p\u003e\u003cp\u003eCody suggests that Na \u0026gt; 1 and Nb \u0026gt; 1, in order to enhance, to some extent, the confidence of the result of the match. Suppose in each individual game, the probability Xiang Yu would win is p, and the probability Liu Bang would win is 1 - p, which implicitly assumes that the probability of a tie is 0 (because they both refuse to draw and will fight to death). Unfortunately, this well-designed match has never taken place. Regretfully, Cody requests us --- active Cody players --- to foresee the outcome of this unseen match using Monte Carlo simulations. Our task is to write a function\u003c/p\u003e\u003cpre\u003e                                sol = Xiangqi(p, Na, Nb)\u003c/pre\u003e\u003cp\u003ewith input: 0 \u0026lt;= p \u0026lt;= 1, Na \u0026gt; 1, Nb \u0026gt; 1, and output: sol --- the probability that Xiang Yu wins. Your solution will be tested against its true value Q (which is computed but hided in the P-file EvaluateSolution.p) according to a hybrid absolute and relative error tolerance criterion:\u003c/p\u003e\u003cpre\u003e                      abs(sol - Q) \u0026lt;= max(AbsTol, RelTol*abs(sol))\u003c/pre\u003e\u003cp\u003ewhere AbsTol and RelTol are absolute and relative error tolerances, respectively, which will be specified in the test suite. You are encouraged to optimize the performance (rather than the usual Cody size) of your code as much as possible, as the score of your solution will be measured based on the \u003cb\u003espeed\u003c/b\u003e of your code.\u003c/p\u003e\u003cp\u003eHave fun!\u003c/p\u003e","function_template":"function sol = Xiangqi(p, Na, Nb)\r\n  sol = p;\r\nend","test_suite":"%%\r\n% By courtesy of Alfonso Nieto-Castanon\r\nurlwrite('https://sites.google.com/a/alfnie.com/alfnie/software/SetSolutionScore.p?attredirects=0\u0026amp;d=1','SetSolutionScore.p');\r\nrehash path;\r\n\r\n%%\r\nfh = fopen('EvaluateSolution.p','wb');\r\nfwrite(fh, hex2dec(reshape('7630312E30307630302E3030000E601C0AF25FB100000056000000A4000000D6820EB5B30514117A9E6E5DB36898AFFFCC5086DFAF59C2910AEB07B88523DABE546868AC2BDAC3795467A7BCD91A89E2F578F2EDE92D63472A3B8FCA3F216CB3B66B010B5B924A5F514E19B90225B0978A54DA881119917D211CB055361918CAA0670F6D0E8ED17B319492619F4361BFB4C3C31D68E11F4BA084C6456783C358296B3E63E16C78EF2B0279074BCB707265EB4C044BFF7F25BA0A9678B75D36B9ACEE6853',2,[]).')); rehash path; fclose(fh); \r\n\r\n%%\r\np = 0; Na = 2; Nb = 3;\r\nAbsTol = 1e-6; RelTol = 1e-5;\r\nsol = Xiangqi(p, Na, Nb);\r\nassert(EvaluateSolution(p,Na,Nb,sol,AbsTol,RelTol));\r\n\r\n%%\r\np = 1; Na = 3; Nb = 2;\r\nAbsTol = 1e-6; RelTol = 1e-5;\r\nsol = Xiangqi(p, Na, Nb);\r\nassert(EvaluateSolution(p,Na,Nb,sol,AbsTol,RelTol));\r\n\r\n%%\r\np = 0.4; Na = 2; Nb = 3;\r\nAbsTol = 5e-4; RelTol = 5e-4;\r\nsol = Xiangqi(p, Na, Nb);\r\nassert(EvaluateSolution(p,Na,Nb,sol,AbsTol,RelTol));\r\n\r\n%%\r\np = 0.7; Na = 4; Nb = 2;\r\nAbsTol = 5e-4; RelTol = 5e-4;\r\nsol = Xiangqi(p, Na, Nb);\r\nassert(EvaluateSolution(p,Na,Nb,sol,AbsTol,RelTol));\r\n\r\n%%\r\np = 0.15; Na = 4; Nb = 2;\r\nAbsTol = 5e-5; RelTol = 1e-6;\r\nt = builtin('tic');\r\nsol = Xiangqi(p, Na, Nb);\r\nscore = builtin('toc',t);\r\nassert(EvaluateSolution(p,Na,Nb,sol,AbsTol,RelTol));\r\nSetSolutionScore(round(500*score));","published":true,"deleted":false,"likes_count":3,"comments_count":1,"created_by":12569,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":9,"test_suite_updated_at":"2015-10-30T08:18:09.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2015-10-30T05:02:43.000Z","updated_at":"2025-11-30T16:38:45.000Z","published_at":"2015-10-30T05:45:36.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis is the first part of the Xiangqi series. The second part in this series is:\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://www.mathworks.com/matlabcentral/cody/problems/42685-cody-meets-xiangqi-foresee-the-unseen-part-2\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eCody meets Xiangqi: foresee the unseen (Part 2)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:hyperlink w:docLocation=\\\"https://en.wikipedia.org/wiki/Xiangqi\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eXiangqi\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e, also known as\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eChinese Chess\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e (and 象棋 in Chinese characters), is one of the most popular board games in China. The modern Xiangqi board contains a middle section which divides two players' sides and is marked the \\\"Chu River–Han border\\\", in reference to the Chu–Han Contention between\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://en.wikipedia.org/wiki/Xiang_Yu\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eXiang Yu\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e and\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://de.wikipedia.org/wiki/Han_Gaozu\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eLiu Bang\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e, two prominent warlords and opponents who fought thousands of battles against each other for supremacy over China in the late Qin dynasty (206–202 BC). Those interested in the story of the Chu–Han Contention and its relation to Xiangqi are referred to\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://en.wikipedia.org/wiki/Chu%E2%80%93Han_Contention\\\"\u003e\u003cw:r\u003e\u003cw:t\u003ehere\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFresh to Xiangqi, Cody becomes interested in Xiangqi by raising a question:\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eWho is the stronger player of Xiangqi between Xiang Yu and Liu Bang\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e? To answer this question, Cody designs a match for Xiang Yu and Liu Bang, in which Cody serves as the referee. The smart Cody referee also sets an intelligent rule to determine the winner:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eIn a succession of Xiangqi games, once Xiang Yu wins Na games\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003econsecutively\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e, whereas Liu Bang has not won Nb games\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003econsecutively\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e, Cody immediately announces Xiang Yu as the winner. Contrarily, once Liu Bang defeats Xiang Yu Nb times\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003econsecutively\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e, whereas Xiang Yu has not won Na times\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003econsecutively\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e, Liu Bang becomes the winner.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eCody suggests that Na \u0026gt; 1 and Nb \u0026gt; 1, in order to enhance, to some extent, the confidence of the result of the match. Suppose in each individual game, the probability Xiang Yu would win is p, and the probability Liu Bang would win is 1 - p, which implicitly assumes that the probability of a tie is 0 (because they both refuse to draw and will fight to death). Unfortunately, this well-designed match has never taken place. Regretfully, Cody requests us --- active Cody players --- to foresee the outcome of this unseen match using Monte Carlo simulations. Our task is to write a function\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[                                sol = Xiangqi(p, Na, Nb)]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ewith input: 0 \u0026lt;= p \u0026lt;= 1, Na \u0026gt; 1, Nb \u0026gt; 1, and output: sol --- the probability that Xiang Yu wins. Your solution will be tested against its true value Q (which is computed but hided in the P-file EvaluateSolution.p) according to a hybrid absolute and relative error tolerance criterion:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[                      abs(sol - Q) \u003c= max(AbsTol, RelTol*abs(sol))]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ewhere AbsTol and RelTol are absolute and relative error tolerances, respectively, which will be specified in the test suite. You are encouraged to optimize the performance (rather than the usual Cody size) of your code as much as possible, as the score of your solution will be measured based on the\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003espeed\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e of your code.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eHave fun!\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":54780,"title":"Trap a knight","description":"Consider a knight on an infinite chessboard labeled with numbers spiraling outward. A knight starting on the square labeled 1 can reach 8 squares, marked in green below (i.e., squares 10, 12, 14, 16, 18, 20, 22, and 24). Take the smallest of these numbers, or 10. Repeating the step while avoiding squares already visited puts the knight at squares 3, 6, 9, 4, 7, 2, 5, etc. This tour continues until step 2016, when the knight reaches square 2084. At that point the knight is trapped: it has visited all eight possible squares. \r\nWrite a function that takes the starting square and returns the sequence of squares visited by the knight on the tour. \r\n","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.4333px; min-height: 0px; white-space: normal; color: rgb(0, 0, 0); font-family: Menlo, Monaco, Consolas, monospace; font-style: normal; font-size: 14px; font-weight: 400; text-decoration: rgb(0, 0, 0); white-space: normal; \"\u003e\u003cdiv style=\"block-size: 415.7px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 207.85px; transform-origin: 407px 207.85px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 105px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 52.5px; text-align: left; transform-origin: 384px 52.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 35.7917px 8px; transform-origin: 35.7917px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eConsider a \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://en.wikipedia.org/wiki/Knight_(chess)#Movement\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eknight\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 327.942px 8px; transform-origin: 327.942px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e on an infinite chessboard labeled with numbers spiraling outward. A knight starting on the square labeled 1 can reach 8 squares, marked in green below (i.e., squares 10, 12, 14, 16, 18, 20, 22, and 24). Take the smallest of these numbers, or 10. Repeating the step while avoiding squares already visited puts the knight at squares 3, 6, 9, 4, 7, 2, 5, etc. This tour continues until step 2016, when the knight reaches square 2084. At that point the knight is trapped: it has visited all eight possible squares. \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 358.867px 8px; transform-origin: 358.867px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eWrite a function that takes the starting square and returns the sequence of squares visited by the knight on the tour. \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 271.7px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 135.85px; text-align: left; transform-origin: 384px 135.85px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cimg class=\"imageNode\" style=\"vertical-align: baseline;width: 275px;height: 266px\" src=\"data:image/png;base64,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\" data-image-state=\"image-loaded\" width=\"275\" height=\"266\"\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function y = trappedKnight(n)\r\n  y = randi(n^2,1,2016);\r\nend","test_suite":"%%\r\nn = 1;\r\ny = trappedKnight(n);\r\ny_correct = [1 10 3 6 9 4 7 2 5 8 11 14 29 32 15 12 27 24 45 20 23 44 41 18 35 38 19 16 33 30 53 26 47 22 43 70 21 40 17 34 13 28 25 46 75 42 69 104 37 62 95 58 55 86 51 48 77 114 73 108 151 68 103 64 67 36 39 66 63 96 59 56 87 52 49 78 115 74 71 106 149 102 99 140 61 94 31 54 85 50 79 116 161 76 113 72 107 150 201 146 65 98 139 60 93 90 129 176 125 82 119 164 217 160 111 154 205 264 331 200 101 142 97 138 187 92 89 128 175 84 81 118 163 216 159 110 153 204 105 148 199 144 147 100 141 190 137 186 91 130 57 88 127 174 83 80 117 162 215 112 109 152 203 262 329 198 195 252 143 192 249 188 135 132 179 234 297 230 123 120 165 218 279 214 157 208 267 334 263 330 259 196 253 318 191 248 313 244 133 180 235 298 177 126 173 122 167 220 281 350 277 158 155 206 265 202 261 328 197 254 145 194 251 316 189 136 185 182 131 134 181 184 239 242 305 238 183 304 237 178 233 296 229 124 121 166 219 280 349 276 211 156 207 266 333 408 491 404 257 322 395 476 317 390 247 312 243 240 303 236 299 232 295 172 169 222 283 352 429 278 213 210 269 336 411 332 407 260 327 256 321 394 475 564 389 246 311 384 241 310 245 314 387 468 309 306 377 302 373 452 369 294 171 168 221 282 351 428 347 212 209 268 335 410 493 406 489 326 323 258 255 320 193 250 315 388 469 558 383 380 459 376 301 372 451 368 231 370 449 366 227 224 285 354 431 516 427 346 273 340 415 270 337 412 495 586 409 492 405 488 325 398 479 568 393 474 563 470 385 308 379 382 461 378 307 460 381 466 555 462 465 554 551 464 553 648 463 550 645 458 375 300 371 450 367 228 225 286 355 432 517 610 513 348 275 272 339 414 497 588 687 494 585 490 403 324 397 478 319 392 473 562 659 764 557 654 759 650 653 552 647 548 457 374 453 540 635 448 293 170 223 284 353 430 515 426 345 342 271 274 341 344 419 422 505 418 343 424 509 420 423 508 599 504 417 338 413 496 587 686 583 682 487 400 481 396 477 566 391 472 561 386 467 556 657 560 471 660 559 656 761 652 649 752 549 644 545 454 541 636 537 446 291 288 357 434 519 612 713 514 425 510 421 598 503 416 499 590 689 796 685 582 681 486 483 402 399 480 569 666 565 662 767 658 763 876 655 760 651 754 865 646 547 456 543 638 539 634 447 292 289 358 435 520 613 714 609 512 605 706 507 604 511 608 709 818 603 506 597 502 593 498 589 688 795 584 683 580 401 482 571 668 567 664 769 882 661 766 879 762 875 758 755 866 751 862 643 544 639 742 853 738 535 364 361 226 287 356 433 518 611 712 607 708 817 602 701 704 811 600 699 596 501 592 691 798 913 794 909 684 581 680 485 574 671 570 667 772 663 768 881 1002 765 878 999 874 757 868 753 864 749 546 455 542 637 538 633 534 363 360 437 522 615 716 825 942 711 606 707 816 601 700 807 696 803 594 693 500 591 690 797 912 793 908 789 578 575 672 777 572 669 774 665 770 883 1004 1133 880 1001 1130 877 998 873 756 867 986 863 748 641 744 855 740 851 632 445 290 359 436 521 614 715 824 941 710 819 936 705 702 809 698 595 694 801 916 1039 1170 911 792 907 788 577 484 573 670 775 888 771 884 1005 1134 1271 1000 1129 996 871 990 1117 1252 985 750 861 642 745 856 741 852 737 536 365 444 441 526 619 438 523 616 717 826 943 822 939 1064 935 814 929 810 703 928 813 934 1059 930 933 812 815 932 1055 1058 1189 1054 927 808 697 804 919 692 799 914 1037 910 791 906 679 576 579 678 675 780 893 776 889 1010 773 886 1007 1136 1003 1132 1269 1128 995 870 989 1116 1251 984 1111 860 979 746 857 640 743 854 739 850 631 532 529 362 439 524 617 718 827 944 823 940 1065 820 937 1062 1195 1336 1057 1188 931 1060 1193 1056 1187 1052 925 806 695 802 917 1040 1171 1036 1167 1032 905 786 783 674 779 892 1013 1142 887 1008 1137 1274 1419 1270 1415 1266 997 872 869 988 1115 1250 983 1110 859 978 1105 974 1101 970 735 628 443 440 525 618 719 828 945 1070 1203 1066 821 938 1063 1196 1337 1192 1331 1334 1481 1190 1329 1186 1051 924 805 920 1043 800 915 1038 1169 1034 1165 1030 787 676 781 894 673 778 891 1012 1141 1278 1009 1138 885 1006 1135 1272 1131 1268 1127 994 991 1118 987 1114 1249 982 747 858 977 1104 973 1100 849 630 531 528 621 722 831 948 1073 1206 1069 1202 1343 1198 1061 1194 1335 1332 1479 1328 1053 926 1049 922 1045 918 1041 1172 1311 1168 1033 790 1031 904 677 782 895 1016 1145 890 1011 1140 1277 1422 1273 1418 1571 1414 1265 1124 1121 1256 1399 1550 1253 1396 1113 1248 981 1108 1243 976 1103 972 1099 848 629 442 527 620 721 830 947 1072 1205 1068 1201 1342 1197 1338 1487 1644 1333 1480 1191 1330 1477 1326 1183 1048 921 1044 1175 1314 1461 1310 1035 1166 1305 1162 903 784 897 1018 1147 1014 1143 1280 1139 1276 1421 1574 1417 1570 1267 1126 993 1120 1255 1398 1549 1394 1247 980 1107 1242 975 1102 971 736 533 734 627 624 725 834 951 720 829 946 1071 1204 1067 1200 1341 1490 1647 1486 1643 1482 1485 1642 1639 1484 1641 1804 1483 1638 1801 1478 1327 1184 1323 1050 923 1046 1177 1042 1173 1312 1459 1308 1455 1164 1029 902 899 1020 1149 896 1017 1146 1283 1428 1279 1424 1275 1420 1573 1416 1569 1412 1125 992 1119 1254 1397 1548 1393 1112 1395 1546 1391 1244 1109 1390 1541 1386 1239 1382 1235 968 733 530 623 724 833 950 1075 1208 1349 1498 1345 1494 1199 1340 1489 1646 1811 1984 1807 1640 1803 1636 1799 1476 1185 1324 1181 1320 1047 1178 1317 1174 1313 1460 1309 1456 1611 1304 1161 1026 785 898 1019 1148 1015 1144 1281 1426 1579 1740 1423 1576 1737 1572 1733 1568 1411 1262 1259 1402 1553 1712 1879 1708 1545 1246 1389 1106 1241 1384 1237 1098 847 732 625 726 835 622 723 832 949 1074 1207 1348 1497 1344 1493 1650 1339 1488 1645 1810 1983 1806 1809 1982 1979 1808 1805 1976 1637 1800 1633 1474 1629 1322 1179 1318 1465 1176 1315 1462 1617 1458 1307 1454 1163 1028 901 1022 1151 1288 1433 1284 1429 1582 1425 1578 1739 1908 1575 1736 1905 1732 1413 1264 1123 1258 1401 1552 1711 1878 1547 1392 1245 1388 1539 1240 1383 1236 969 846 731 728 837 954 1079 1212 1353 1076 1209 1350 1499 1346 1495 1652 1491 1648 1813 1986 2167 2356 1981 2160 1977 1802 1635 1798 1475 1630 1325 1182 1321 1468 1623 1316 1463 1618 1781 1614 1777 1610 1303 1160 1025 900 1021 1150 1287 1432 1585 1282 1427 1580 1741 1910 1577 1738 1907 1734 1903 1730 1565 1408 1263 1122 1257 1400 1551 1710 1877 1706 1543 1702 1387 1538 1697 1534 1379 1096 845 626 727 836 953 1078 1211 1352 1501 1658 1347 1496 1653 1492 1649 1814 1987 2168 2357 2164 2161 1978 2157 1974 2153 1970 1631 1472 1627 1790 1467 1622 1785 1464 1619 1782 1615 1778 1457 1306 1453 1302 1027 1024 1153 1290 1435 1286 1431 1584 1745 1914 1581 1742 1911 2088 2273 1906 2083 1902 1567 1410 1261 1404 1555 1714 1881 2056 1709 1876 1705 1542 1701 1868 1537 1238 1381 1234 967 844 729 838 955 1080 1213 952 1077 1210 1351 1500 1657 1822 1995 1654 1819 1992 1651 1816 1989 1812 1985 2166 2355 2162 2165 1980 2159 2346 1975 2154 1971 1632 1473 1628 1469 1180 1319 1466 1621 1784 1955 1616 1779 1612 1775 1452 1301 1158 1155 1292 1023 1152 1289 1434 1285 1430 1583 1744 1913 2090 1909 2086 1735 1904 1731 1566 1409 1260 1403 1554 1713 1880 2055 2238 1875 1544 1703 1540 1385 1536 1695 1380 1097 966 843 840 957 1082 1215 1356 1505 1662 1827 1502 1659 1824 1655 1820 1993 2174 1815 1988 2169 2358 2555 2354 2351 2546 2347 2156 1973 1634 1797 1968 1793 1470 1625 1788 1959 1620 1783 1954 2133 1780 1613 1776 1609 1450 1159 1156 1293 1438 1591 1752 1587 1748 1917 2094 1743 1912 2089 2274 2085 2270 2081 1900 1727 1562 1559 1718 1405 1556 1715 1882 2057 2240 2053 1874 1707 2052 1873 2048 1869 1698 1535 1694 1531 1232 965 730 839 956 1081 1214 1355 1504 1661 1826 1999 1656 1821 1994 1817 1990 2171 2360 2557 2762 2553 2352 2547 2348 2543 2158 2345 2540 2155 1972 2151 1796 1967 1792 1471 1626 1789 1960 2139 1786 1957 2136 1953 2132 1949 1774 1451 1300 1157 1294 1439 1154 1291 1436 1589 1750 1919 1586 1747 1916 2093 2278 2471 2672 2275 2468 2087 2272 2465 2082 1901 1728 1563 1406 1557 1716 1883 2058 2241 2054 2237 2050 1871 1700 1867 1696 1533 1378 1095 964 841 958 1083 1216 1357 1506 1663 1354 1503 1660 1825 1998 2179 2368 2175 1818 1991 2172 2361 2558 2763 2554 2163 2350 2545 2748 2541 2342 2537 2150 1795 1966 1791 1624 1787 1958 2137 2324 2519 2134 1951 2130 1947 1608 1449 1298 1295 1440 1593 1754 1437 1590 1751 1920 2097 1746 1915 2092 2277 2470 2671 2466 2269 2080 1729 1564 1407 1558 1717 1884 2059 2242 2433 2632 2239 2430 2051 1704 2049 1870 1699 1866 2041 1862 1691 1376 1093 842 959 1084 1217 1358 1507 1664 1829 2002 2183 2372 1997 2178 2367 2564 2173 2362 2559 2170 2359 2556 2761 2552 2549 2752 2349 2544 2747 2344 2539 2152 1969 1794 1965 2144 1961 2140 2327 1956 2135 1952 2131 1948 1773 1606 1299 1296 1441 1594 1755 1924 2101 2286 1921 1588 1749 1918 2095 2280 2091 2276 2469 2670 2271 2464 2267 2078 1897 1724 1721 1888 2063 2246 1885 2060 2243 2434 2633 2840 2429 2234 2047 1872 2233 2046 2229 2042 1863 1532 1233 1094 963 960 1085 1218 1359 1508 1665 1830 2003 2184 2373 2000 1823 1996 2177 2366 2563 2768 2363 2560 2765 2978 3199 2760 2353 2548 2751 2962 3181 2746 2343 2538 2339 2148 2335 1964 2143 2330 2525 2138 2325 2520 2321 1950 2129 1946 1607 1448 1297 1442 1595 1756 1925 1592 1753 1922 2099 2284 2477 2096 2281 2474 2675 2884 3101 2880 2467 2084];\r\nlen_correct = 2016;\r\nyend_correct = 2084;\r\nassert(isequal(y,y_correct) \u0026\u0026 isequal(length(y),len_correct) \u0026\u0026 isequal(y(end),yend_correct))\r\n\r\n%%\r\nY = NaN(1,100); len = NaN(1,100);\r\nfor n = 1:100\r\n    y = trappedKnight(n);\r\n    Y(n) = y(end);\r\n    len(n) = length(y);\r\nend\r\nY_correct = [2084 711 3915 556 3915 556 3915 3380 2086 1339 1464 1572 4772 582 3959 682 2309 385 330 1142 706 2750 4256 4322 1413 1488 1685 6335 5214 906 2616 1038 582 1608 2675 6266 1120 3955 936 2773 1861 2213 2223 262 1147 4428 1126 3319 1040 1693 3614 1647 4122 2121 3496 2555 2508 5174 2961 1338 1607 4252 2826 1731 3915 2130 938 762 835 3437 708 1653 1133 4168 3918 150 1204 3087 1438 445 3104 969 906 822 3404 2922 125 329 3214 6185 3912 2181 1093 1379 4586 5335 790 3038 5262 3141];\r\nlen_correct = [2016 880 2741 857 2741 857 2741 3611 2590 1540 1846 2061 4892 1047 4139 753 3559 590 426 1205 1140 2759 3830 4687 1839 2101 2861 5892 5500 1295 2674 1213 890 1839 2749 6531 1118 3632 1496 2888 1995 2574 2713 495 1479 5509 1414 3926 1078 2344 4244 1932 4054 3382 4084 3410 4144 4079 2223 1151 1799 4863 3162 2292 2741 2271 840 1087 1397 2752 990 1664 1775 3915 5704 263 1658 2840 1510 486 3620 1146 1288 969 3688 3745 311 586 3146 5480 5116 2472 1473 1910 5128 5938 1128 4367 4412 5036];\r\nassert(isequal(len,len_correct) \u0026\u0026 isequal(Y,Y_correct))\r\n\r\n%%\r\nY = NaN(1,800); len = NaN(1,800);\r\nfor n = 200:1000\r\n    y = trappedKnight(n);\r\n    Y(n-199) = y(end);\r\n    len(n-199) = length(y);\r\nend\r\n[lensort,isortlen] = sort(len,'descend');\r\n[Ysort,isortY] = sort(Y,'descend');\r\nisortlen_correct = [396 662 246 49 125 462 267 336 683 797];\r\nlenmax10_correct = [12072 11058 10654 10553 10337 10031 9552 9469 9292 9259];\r\nisortY_correct = [662 683 267 246 396 497 49 443 541 462];\r\nYmax10_correct = [14176 12571 12303 11858 11802 11456 11168 10624 9594 8857];\r\nassert(isequal(lensort(1:10),lenmax10_correct) \u0026\u0026 isequal(Ysort(1:10),Ymax10_correct) \u0026\u0026 isequal(isortlen(1:10),isortlen_correct) \u0026\u0026 isequal(isortY(1:10),isortY_correct))\r\n\r\n%%\r\nn = 9999;\r\ny = trappedKnight(n);\r\nsum_correct = 77968774;\r\nassert(isequal(sum(y),sum_correct))\r\n\r\n%%\r\nn = 11509;\r\ny = trappedKnight(n);\r\nlen_correct = 21346;\r\nassert(isequal(length(y),len_correct))\r\n\r\n%%\r\nfiletext = fileread('trappedKnight.m');\r\nillegal = contains(filetext, 'assignin') || contains(filetext, 'assert') || contains(filetext,'switch') || contains(filetext,'regexp'); \r\nassert(~illegal)\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":2,"created_by":46909,"edited_by":46909,"edited_at":"2024-01-04T14:21:04.000Z","deleted_by":null,"deleted_at":null,"solvers_count":7,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2022-07-07T04:01:20.000Z","updated_at":"2026-02-03T16:00:59.000Z","published_at":"2022-07-07T04:03:44.000Z","restored_at":null,"restored_by":null,"spam":null,"simulink":false,"admin_reviewed":false,"description_opc":"{\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eConsider a \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://en.wikipedia.org/wiki/Knight_(chess)#Movement\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eknight\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e on an infinite chessboard labeled with numbers spiraling outward. A knight starting on the square labeled 1 can reach 8 squares, marked in green below (i.e., squares 10, 12, 14, 16, 18, 20, 22, and 24). Take the smallest of these numbers, or 10. Repeating the step while avoiding squares already visited puts the knight at squares 3, 6, 9, 4, 7, 2, 5, etc. This tour continues until step 2016, when the knight reaches square 2084. At that point the knight is trapped: it has visited all eight possible squares. \u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eWrite a function that takes the starting square and returns the sequence of squares visited by the knight on the tour. \u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"266\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"275\\\"/\u003e\u003cw:attr w:name=\\\"verticalAlign\\\" w:val=\\\"baseline\\\"/\u003e\u003cw:attr w:name=\\\"altText\\\" w:val=\\\"\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId1\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\",\"relationship\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"target\":\"/media/image1.png\",\"relationshipId\":\"rId1\"}]},{\"partUri\":\"/media/image1.png\",\"contentType\":\"image/png\",\"content\":\"data:image/png;base64,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\",\"relationship\":null}],\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"target\":\"/matlab/document.xml\",\"relationshipId\":\"rId1\"}]}"},{"id":45389,"title":"Knight's Watch","description":"  \"Night gathers, and now my watch begins\"\r\n\r\nA knight is placed on an n-by-n sized chessboard at the position x. Find the probability that after k steps, the knight will remain within the chessboard.\r\n\r\nAny knight's move that places him outside the board should be considered invalid.\r\n\r\n For simplicity, the knight's position on the chessboard is defined with the numeric\r\n notation instead of algebraic notation. so 'Ka1' is represented as (1,1).\r\n\r\nBrief explanation:\r\n\r\n  Say the knight is placed in pos-(1,1). A knight has 8 possible moves. So in the next move, \r\nthe Knight can go to 8 different positions in the chessboard. But among them, only 2\r\n positions are valid i.e. the knight remains within the chessboard and they are -\r\n(3,2) \u0026 (2,3). So the prob. is 2/8 after 1 move. What will be the probability after k moves?\r\n\r\n","description_html":"\u003cpre class=\"language-matlab\"\u003e\"Night gathers, and now my watch begins\"\r\n\u003c/pre\u003e\u003cp\u003eA knight is placed on an n-by-n sized chessboard at the position x. Find the probability that after k steps, the knight will remain within the chessboard.\u003c/p\u003e\u003cp\u003eAny knight's move that places him outside the board should be considered invalid.\u003c/p\u003e\u003cpre\u003e For simplicity, the knight's position on the chessboard is defined with the numeric\r\n notation instead of algebraic notation. so 'Ka1' is represented as (1,1).\u003c/pre\u003e\u003cp\u003eBrief explanation:\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003eSay the knight is placed in pos-(1,1). A knight has 8 possible moves. So in the next move, \r\nthe Knight can go to 8 different positions in the chessboard. But among them, only 2\r\npositions are valid i.e. the knight remains within the chessboard and they are -\r\n(3,2) \u0026 (2,3). So the prob. is 2/8 after 1 move. What will be the probability after k moves?\r\n\u003c/pre\u003e","function_template":"function prob = knights_watch(x,n,k)","test_suite":"%%\r\nx =[1,1];\r\nassert(isequal(knights_watch(x,3,2),0.0625))\r\n%%\r\nx =[1,1];\r\nassert(isequal(knights_watch(x,4,4),0.0176))\r\n%%\r\nx =[6,4];\r\nassert(isequal(knights_watch(x,6,9),0.012))\r\n%%\r\nx =[6,4];\r\nassert(isequal(knights_watch(x,8,25),0.0011))\r\n%%\r\nx =[8,8];\r\nassert(isequal(knights_watch(x,8,15),0.0042))\r\n%%\r\nx =[8,8];\r\nassert(isequal(knights_watch(x,16,15),0.4666))\r\n%%\r\nx =[3,1];\r\nassert(isequal(knights_watch(x,16,50),0.0037))","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":363598,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":13,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2020-03-25T18:55:22.000Z","updated_at":"2026-01-23T12:14:39.000Z","published_at":"2020-03-25T18:55:22.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[\\\"Night gathers, and now my watch begins\\\"]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eA knight is placed on an n-by-n sized chessboard at the position x. Find the probability that after k steps, the knight will remain within the chessboard.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eAny knight's move that places him outside the board should be considered invalid.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[ For simplicity, the knight's position on the chessboard is defined with the numeric\\n notation instead of algebraic notation. so 'Ka1' is represented as (1,1).]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eBrief explanation:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[Say the knight is placed in pos-(1,1). A knight has 8 possible moves. So in the next move, \\nthe Knight can go to 8 different positions in the chessboard. But among them, only 2\\npositions are valid i.e. the knight remains within the chessboard and they are -\\n(3,2) \u0026 (2,3). So the prob. is 2/8 after 1 move. What will be the probability after k moves?]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":45239,"title":"Checkmate-02","description":"This is an extension of the problem \u003chttps://www.mathworks.com/matlabcentral/cody/problems/45238-checkmate\u003e\r\n\r\nIf the king is in check, examine the next move of the king. List all those possible moves by which king can avoid the check by the next move.\r\n\r\nOtherwise 'checkmate'.\r\n\r\n* r = king's location\r\n* p = position of opponent's pieces\r\n\r\n* if the king is currently not in check, then he doesn't need to move. so return empty. \r\n\r\n* for simplicity, assume that the king cannot take out opponent's pieces.\r\n","description_html":"\u003cp\u003eThis is an extension of the problem \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/45238-checkmate\"\u003ehttps://www.mathworks.com/matlabcentral/cody/problems/45238-checkmate\u003c/a\u003e\u003c/p\u003e\u003cp\u003eIf the king is in check, examine the next move of the king. List all those possible moves by which king can avoid the check by the next move.\u003c/p\u003e\u003cp\u003eOtherwise 'checkmate'.\u003c/p\u003e\u003cul\u003e\u003cli\u003er = king's location\u003c/li\u003e\u003cli\u003ep = position of opponent's pieces\u003c/li\u003e\u003c/ul\u003e\u003cul\u003e\u003cli\u003eif the king is currently not in check, then he doesn't need to move. so return empty.\u003c/li\u003e\u003c/ul\u003e\u003cul\u003e\u003cli\u003efor simplicity, assume that the king cannot take out opponent's pieces.\u003c/li\u003e\u003c/ul\u003e","function_template":"function pos=checkmate_2(r,p)\r\n  y = x;\r\nend","test_suite":"%%\r\nr = 'Kd4';\r\np={'Qe3','Rh3','Nc1','c6'};\r\npos = {'Kd5','Kc4'};\r\nassert(isequal(checkmate_2(r,p),pos))\r\n\r\n%%\r\nr = 'Kg6';\r\np={'Qe3','Rh3','Nc1','c6','Ke7'};\r\npos = [];\r\nassert(isequal(checkmate_2(r,p),pos))\r\n\r\n%%\r\nr = 'Kc8';\r\np={'Qe3','Rh3','Nc1','c6','Ke7','h5','Ba6'};\r\npos = {'Kc7','Kb8'};\r\nassert(isequal(checkmate_2(r,p),pos))\r\n\r\n%%\r\nr = 'Kh1';\r\np={'Qa3','Rb3','Nf2','c6','Kf7','h5','Ba6'};\r\npos = {'Kh2','Kg2','Kg1'};\r\nassert(isequal(checkmate_2(r,p),pos))\r\n\r\n%%\r\nr = 'Kg6';\r\np={'Qe3','Rh3','Nc1','c6'};\r\npos = [];\r\nassert(isequal(checkmate_2(r,p),pos))\r\n\r\n%%\r\nr = 'Kd4';\r\np={'Rh2','Na1','d1'};\r\npos = [];\r\nassert(isequal(checkmate_2(r,p),pos))\r\n\r\n%%\r\nr = 'Kb2';\r\np={'Na2','Na1','Na3'};\r\npos = [];\r\nassert(isequal(checkmate_2(r,p),pos))\r\n\r\n%%\r\nr = 'Kb2';\r\np={'Na2','Na1','Na3','c1','c3'};\r\npos = [];\r\nassert(isequal(checkmate_2(r,p),pos))\r\n\r\n%%\r\nr = 'Kb2';\r\np={'Na2','Na1','Na3','Bg7' };\r\npos = 'checkmate';\r\nassert(isequal(checkmate_2(r,p),pos))\r\n\r\n%%\r\nr = 'Kg6';\r\np={'Nf5','Rg1','g4','Qe2','Bf1','Kc3' };\r\npos =  {'Kh7','Kf7','Kf6'};\r\nassert(isequal(checkmate_2(r,p),pos))\r\n\r\n%%\r\nr = 'Ka1';\r\np={'Qa3','Rb3','Nf2','c6','Kf7','h5','Ba6'};\r\npos =  'checkmate';\r\nassert(isequal(checkmate_2(r,p),pos))\r\n\r\n%%\r\nfiletext = fileread('checkmate_2.m');\r\nassert(isempty(strfind(filetext, 'regexp')),'regexp() forbidden')\r\nassert(isempty(strfind(filetext, 'regexprep')),'regexprep() forbidden')\r\nassert(isempty(strfind(filetext, 'strfind')),'strfind() forbidden')\r\nassert(isempty(strfind(filetext, 'strcmp')),'strcmp() forbidden')\r\n","published":true,"deleted":false,"likes_count":0,"comments_count":14,"created_by":363598,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":10,"test_suite_updated_at":"2019-12-29T04:16:28.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2019-12-21T01:40:07.000Z","updated_at":"2026-01-23T13:22:55.000Z","published_at":"2019-12-21T21:38:46.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis is an extension of the problem\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/45238-checkmate\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026lt;https://www.mathworks.com/matlabcentral/cody/problems/45238-checkmate\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026gt;\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eIf the king is in check, examine the next move of the king. List all those possible moves by which king can avoid the check by the next move.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eOtherwise 'checkmate'.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003er = king's location\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ep = position of opponent's pieces\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eif the king is currently not in check, then he doesn't need to move. so return empty.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003efor simplicity, assume that the king cannot take out opponent's pieces.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":96,"title":"Knight's Tour Checker","description":"Given a matrix a, determine whether or not a legal \u003chttp://en.wikipedia.org/wiki/Knight's_tour knight's tour\u003e is present. The knight's tour always follows the pattern 1, 2, 3, ... but it need not fill the entire matrix. Any unused squares contain zeros. Your function should return true if the counting sequence from 1 to n represents a knight's tour, and false if not.\r\n\r\nExample\r\n\r\nThe matrix a as given below is a legal knight's tour. The middle square is unreachable, but since it contains a zero, it satisfies the condition. The function should return TRUE.\r\n\r\n  7     2     5\r\n  4     0     8\r\n  1     6     3\r\n\r\nHere is another legal (if short) knight's tour. The test suite will always contain at least one move (i.e. the counting sequence [1 2]). Note the matrix is not required to be square.\r\n\r\n  1     0     0\r\n  0     0     2\r\n \r\nHere is an illegal knight's tour. Everything is fine up until the jump from 14 to 15, which is illegal because it jumps from row 4 to row 1.\r\n\r\n 15     5    12     3\r\n  0     2     9     6\r\n  8    11     4    13\r\n  1    14     7    10","description_html":"\u003cp\u003eGiven a matrix a, determine whether or not a legal \u003ca href=\"http://en.wikipedia.org/wiki/Knight's_tour\"\u003eknight's tour\u003c/a\u003e is present. The knight's tour always follows the pattern 1, 2, 3, ... but it need not fill the entire matrix. Any unused squares contain zeros. Your function should return true if the counting sequence from 1 to n represents a knight's tour, and false if not.\u003c/p\u003e\u003cp\u003eExample\u003c/p\u003e\u003cp\u003eThe matrix a as given below is a legal knight's tour. The middle square is unreachable, but since it contains a zero, it satisfies the condition. The function should return TRUE.\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003e7     2     5\r\n4     0     8\r\n1     6     3\r\n\u003c/pre\u003e\u003cp\u003eHere is another legal (if short) knight's tour. The test suite will always contain at least one move (i.e. the counting sequence [1 2]). Note the matrix is not required to be square.\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003e1     0     0\r\n0     0     2\r\n\u003c/pre\u003e\u003cp\u003eHere is an illegal knight's tour. Everything is fine up until the jump from 14 to 15, which is illegal because it jumps from row 4 to row 1.\u003c/p\u003e\u003cpre\u003e 15     5    12     3\r\n  0     2     9     6\r\n  8    11     4    13\r\n  1    14     7    10\u003c/pre\u003e","function_template":"function tf = knights_tour(a)\r\n  tf = true;\r\nend","test_suite":"%%\r\n\r\na = ...\r\n[ 7     2     5\r\n  4     0     8\r\n  1     6     3];\r\ntf_correct = true;\r\nassert(isequal(knights_tour(a),tf_correct))\r\n\r\n%%\r\n\r\na = ...\r\n[ 1     0   0\r\n  0     0   2];\r\ntf_correct = true;\r\nassert(isequal(knights_tour(a),tf_correct))\r\n\r\n%%\r\n\r\na = ...\r\n[ 15     5    12     3\r\n   0     2     9     6\r\n   8    11     4    13\r\n   1    14     7    10];\r\ntf_correct = false;\r\nassert(isequal(knights_tour(a),tf_correct))\r\n\r\n%%\r\n\r\na = ...\r\n[  0     5    12     3\r\n  15     2     9     6\r\n   8    11     4    13\r\n   1    14     7    10];\r\ntf_correct = true;\r\nassert(isequal(knights_tour(a),tf_correct))\r\n\r\n%%\r\n\r\na = [22 29 4 31 16 35;3 32 23 34 5 14;28 21 30 15 36 17;9 2 33 24 13 6;20 27 8 11 18 25;1 10 19 26 7 12];\r\ntf_correct = true;\r\nassert(isequal(knights_tour(a),tf_correct))\r\n\r\n%%\r\n\r\na = [22 29 4 31 16 35;3 32 23 34 5 14;28 21 30 15 0 17;2 9 33 24 13 6;20 27 8 11 18 25;1 10 19 26 7 12];\r\ntf_correct = false;\r\nassert(isequal(knights_tour(a),tf_correct))\r\n\r\n%%\r\n\r\na = [1 0 0;0 0 0;2 0 0];\r\ntf_correct = false;\r\nassert(isequal(knights_tour(a),tf_correct))","published":true,"deleted":false,"likes_count":24,"comments_count":4,"created_by":1,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":1472,"test_suite_updated_at":"2016-01-13T18:56:25.000Z","rescore_all_solutions":false,"group_id":2,"created_at":"2012-01-18T01:00:30.000Z","updated_at":"2026-04-05T02:15:43.000Z","published_at":"2012-01-18T01:00:30.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eGiven a matrix a, determine whether or not a legal\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://en.wikipedia.org/wiki/Knight's_tour\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eknight's tour\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e is present. The knight's tour always follows the pattern 1, 2, 3, ... but it need not fill the entire matrix. Any unused squares contain zeros. Your function should return true if the counting sequence from 1 to n represents a knight's tour, and false if not.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eExample\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe matrix a as given below is a legal knight's tour. The middle square is unreachable, but since it contains a zero, it satisfies the condition. The function should return TRUE.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[7     2     5\\n4     0     8\\n1     6     3]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eHere is another legal (if short) knight's tour. The test suite will always contain at least one move (i.e. the counting sequence [1 2]). Note the matrix is not required to be square.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[1     0     0\\n0     0     2]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eHere is an illegal knight's tour. Everything is fine up until the jump from 14 to 15, which is illegal because it jumps from row 4 to row 1.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[ 15     5    12     3\\n  0     2     9     6\\n  8    11     4    13\\n  1    14     7    10]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":42685,"title":"Cody meets Xiangqi: foresee the unseen (Part 2)","description":"This is the second part of the Xiangqi series. The first part in this series is: \u003chttp://www.mathworks.com/matlabcentral/cody/problems/42674-cody-meets-xiangqi-foresee-the-unseen Cody meets Xiangqi: foresee the unseen (Part 1)\u003e\r\n\r\nBeing increasingly interested in \u003chttps://en.wikipedia.org/wiki/Xiangqi Xiangqi\u003e (a.k.a., *Chinese Chess*), Mr. Cody has designed a new Xiangqi match for \u003chttps://en.wikipedia.org/wiki/Xiang_Yu Xiang Yu\u003e and \u003chttps://de.wikipedia.org/wiki/Han_Gaozu Liu Bang\u003e by taking into account the likelihood of tie games. The new rule is described as follows:\r\n\r\nOnce\r\n\r\n   1) Xiang Yu wins Na games consecutively,\r\n   2) Liu Bang wins Nb games consecutively, \r\n   3) No ties occur consecutively, \r\n\r\n*whichever comes first*, Mr. Cody announces the outcome accordingly as follows:\r\n\r\n   1) Xiang Yu is the final winner,\r\n   2) Liu Bang is the final winner, \r\n   3) They end up with a final draw.\r\n\r\nAgain, Cody asks us --- active Cody players --- to foresee the outcome of this unseen match using Monte Carlo simulations. Our task is to write the following function\r\n\r\n                         [Pa, Pb, Pc] = Xiangqi2(a, b, Na, Nb, Nc)\r\n\r\nwhere \r\n\r\n* a: the probability that Xiang Yu wins one individual game\r\n* b: the probability that Liu Bang wins one individual game\r\n* Na: # of consecutive wins required for Xiang Yu to become the final winner\r\n* Nb: # of consecutive wins required for Liu Bang to become the final winner\r\n* Nc: # of consecutive ties required to result in a final draw\r\n* Pa: the probability that Xiang Yu wins the match\r\n* Pb: the probability that Liu Bang wins the match\r\n* Pc: the probability of a final draw\r\n\r\nThe main focus of this problem is on *Monte Carlo simulations*, rather than analytical approaches. Your provided solution Xiangqi2.m will be checked by a P-file EvaluateSolution.p, which mainly does 3 things as follows:\r\n\r\n1) Call your function [Pa, Pb, Pc] = Xiangqi2(a, b, Na, Nb, Nc) and then Check if the result P = [Pa, Pb, Pc] is within tolerance of its expected value Q. That is, If norm(P - Q) \u003c tol holds, it means that your solution is accurate enough. If this does not hold, your solution will be rejected. \r\n\r\n2) Check if your solution is based on *pure Monte Carlo simulations* or *analytical approaches*. If it is based on analytical approaches (i.e., using analytical expressions to directly compute the probabilities), then your solution will be rejected. EvaluateSolution.p accomplishes this goal by exploiting a combination of distinct features possessed by analytical solutions, but are generally not shared by Monte Carlo simulations. \r\n\r\n3) If your solution passes the above two checks, then the score of your solution will be determined based on the speed of your code. The faster your solution is, the smaller score you get. \r\n\r\nIf you have any concerns or suggestions on this problem, please feel free to leave me a comment. Thanks. \r\n\r\n ","description_html":"\u003cp\u003eThis is the second part of the Xiangqi series. The first part in this series is: \u003ca href = \"http://www.mathworks.com/matlabcentral/cody/problems/42674-cody-meets-xiangqi-foresee-the-unseen\"\u003eCody meets Xiangqi: foresee the unseen (Part 1)\u003c/a\u003e\u003c/p\u003e\u003cp\u003eBeing increasingly interested in \u003ca href = \"https://en.wikipedia.org/wiki/Xiangqi\"\u003eXiangqi\u003c/a\u003e (a.k.a., \u003cb\u003eChinese Chess\u003c/b\u003e), Mr. Cody has designed a new Xiangqi match for \u003ca href = \"https://en.wikipedia.org/wiki/Xiang_Yu\"\u003eXiang Yu\u003c/a\u003e and \u003ca href = \"https://de.wikipedia.org/wiki/Han_Gaozu\"\u003eLiu Bang\u003c/a\u003e by taking into account the likelihood of tie games. The new rule is described as follows:\u003c/p\u003e\u003cp\u003eOnce\u003c/p\u003e\u003cpre\u003e   1) Xiang Yu wins Na games consecutively,\r\n   2) Liu Bang wins Nb games consecutively, \r\n   3) No ties occur consecutively, \u003c/pre\u003e\u003cp\u003e\u003cb\u003ewhichever comes first\u003c/b\u003e, Mr. Cody announces the outcome accordingly as follows:\u003c/p\u003e\u003cpre\u003e   1) Xiang Yu is the final winner,\r\n   2) Liu Bang is the final winner, \r\n   3) They end up with a final draw.\u003c/pre\u003e\u003cp\u003eAgain, Cody asks us --- active Cody players --- to foresee the outcome of this unseen match using Monte Carlo simulations. Our task is to write the following function\u003c/p\u003e\u003cpre\u003e                         [Pa, Pb, Pc] = Xiangqi2(a, b, Na, Nb, Nc)\u003c/pre\u003e\u003cp\u003ewhere\u003c/p\u003e\u003cul\u003e\u003cli\u003ea: the probability that Xiang Yu wins one individual game\u003c/li\u003e\u003cli\u003eb: the probability that Liu Bang wins one individual game\u003c/li\u003e\u003cli\u003eNa: # of consecutive wins required for Xiang Yu to become the final winner\u003c/li\u003e\u003cli\u003eNb: # of consecutive wins required for Liu Bang to become the final winner\u003c/li\u003e\u003cli\u003eNc: # of consecutive ties required to result in a final draw\u003c/li\u003e\u003cli\u003ePa: the probability that Xiang Yu wins the match\u003c/li\u003e\u003cli\u003ePb: the probability that Liu Bang wins the match\u003c/li\u003e\u003cli\u003ePc: the probability of a final draw\u003c/li\u003e\u003c/ul\u003e\u003cp\u003eThe main focus of this problem is on \u003cb\u003eMonte Carlo simulations\u003c/b\u003e, rather than analytical approaches. Your provided solution Xiangqi2.m will be checked by a P-file EvaluateSolution.p, which mainly does 3 things as follows:\u003c/p\u003e\u003cp\u003e1) Call your function [Pa, Pb, Pc] = Xiangqi2(a, b, Na, Nb, Nc) and then Check if the result P = [Pa, Pb, Pc] is within tolerance of its expected value Q. That is, If norm(P - Q) \u0026lt; tol holds, it means that your solution is accurate enough. If this does not hold, your solution will be rejected.\u003c/p\u003e\u003cp\u003e2) Check if your solution is based on \u003cb\u003epure Monte Carlo simulations\u003c/b\u003e or \u003cb\u003eanalytical approaches\u003c/b\u003e. If it is based on analytical approaches (i.e., using analytical expressions to directly compute the probabilities), then your solution will be rejected. EvaluateSolution.p accomplishes this goal by exploiting a combination of distinct features possessed by analytical solutions, but are generally not shared by Monte Carlo simulations.\u003c/p\u003e\u003cp\u003e3) If your solution passes the above two checks, then the score of your solution will be determined based on the speed of your code. The faster your solution is, the smaller score you get.\u003c/p\u003e\u003cp\u003eIf you have any concerns or suggestions on this problem, please feel free to leave me a comment. Thanks.\u003c/p\u003e","function_template":"function [Pa, Pb, Pc] = Xiangqi2(a, b, Na, Nb, Nc)\r\n% a: the probability that Xiang Yu wins one individual game\r\n% b: the probability that Liu Bang wins one individual game\r\n% Na: # of consecutive wins required for Xiang Yu to become the final winner\r\n% Nb: # of consecutive wins required for Liu Bang to become the final winner\r\n% Nc: # of consecutive ties required to result in a final draw\r\n% Pa: the probability that Xiang Yu wins the match\r\n% Pb: the probability that Liu Bang wins the match\r\n% Pc: the probability of a final draw\r\n    Pa = ;\r\n    Pb = ;\r\n    Pc = ;\r\nend","test_suite":"%%\r\n% Thanks to Alfonso Nieto-Castanon\r\nurlwrite('https://sites.google.com/a/alfnie.com/alfnie/software/SetSolutionScore.p?attredirects=0\u0026amp;d=1','SetSolutionScore.p');\r\nrehash path;\r\n\r\n%%\r\nfh = fopen('EvaluateSolution.p','wb');\r\nfwrite(fh, hex2dec(reshape('7630312E30307630302E3030000C701C97F61FB1000002D5000001CF000004E73DD68930A391F7C60A534B45A03EAF72EB08941F39EE01BF25BAE04DF43CF342FC1A763DF6B8F26BBED0BD4F2ABBB5927B1EEBAE8795E487F6E4EF2737CBB6646BC4DF145E14664B3A4DACCD7CB01C4EC2328AD76F196231D2CA02CDC2B15466FBA5BDDF9E6C0E5DE12CF07B2AAA50BD2F04FFB92E9BECBE232E01031340A8EDCA5C10DAC01BBE43685ED0AB79D9C6F2A090FB4E0E75CAA236D3D73AD659E0705C42792BC77D85951B2FC49DE856FB97AFD74C1DB66C874EDF5517BCFA14C6706CA5E61DE60F2771B64F6D634B858A1A30AD7C49778534CCCE7551C637DC53846B02140046F729C5EB2DC9C65F16C2FC4F34EA9F03A2056B8218ACAB9A9A8BC5DC8F2F3312740F86626ABA38E00903CE76846DEE175BEE04DC0815E050E4CD95BA8E5BD27A0B57F2413B71A0E4837FB0F86328AA82732C584F1F55C6CCD79CBC69D052011BA93357AAE3568E0086F159C083D665645A38584955283925F900254A6562F0C755323C40805328D04F27FD863E8B774B52E27FC3AA30CE689AC57DEFEE274DBBC2A4D9D320CF19AD873AA0AE806721EE78496F7ADA99EA48060F26FDEE7ED5E9F85B27F79AE176A6E8EAC4DD5127299122FF88139BC4B56A2ED3C5338A72676C4C99AD6DEBCD8BB5EB09',2,[]).')); rehash path; fclose(fh);\r\n\r\n%%\r\nfid = fopen('Xiangqi2.m');\r\ndelim = {' ', '\\n', ',', '.', ';', '''', '@', '+', '-', '*', '/', '\\', '^', '\u003e', '\u003c', '=', '\u0026', '|', '~', '{', '}', '[', ']', '(', ')'};\r\nfile = textscan(fid, '%s', 'CommentStyle', '%', 'MultipleDelimsAsOne', 1, 'Delimiter', delim); fclose(fid); \r\nassert(~any(ismember({'rng','RandStream','seed','state','twister','shufle','default'},file{1})));\r\n\r\n%%\r\na = 0; b = 0; Na = 2; Nb = 3; Nc = 2; tol = 1e-6;\r\nEvaluateSolution(a, b, Na, Nb, Nc, tol); \r\n\r\n%%\r\na = 0; b = 1; Na = 1; Nb = 2; Nc = 1; tol = 1e-6;\r\nEvaluateSolution(a, b, Na, Nb, Nc, tol); \r\n\r\n%%\r\na = 1; b = 0; Na = 3; Nb = 2; Nc = 1; tol = 1e-6;\r\nEvaluateSolution(a, b, Na, Nb, Nc, tol); \r\n\r\n%%\r\na = 0.15; b = 0.85; Na = 4; Nb = 2; Nc = 1; tol = 1e-4;\r\nEvaluateSolution(a, b, Na, Nb, Nc, tol);\r\n\r\n%%\r\na = 0.9; b = 0; Na = 3; Nb = 1; Nc = 2; tol = 1e-3;\r\nEvaluateSolution(a, b, Na, Nb, Nc, tol);\r\n\r\n%%\r\na = 0.65; b = 0.3; Na = 3; Nb = 2; Nc = 2; tol = 1e-3;\r\nEvaluateSolution(a, b, Na, Nb, Nc, tol);\r\n\r\n%%\r\nNa = 3; Nb = 2; Nc = 1; tol = 2e-3; \r\np = sort(rand(2,30)); \r\np = sort([p(1,:);diff(p);1-p(2,:)]);\r\nfor k = size(p,2):-1:1\r\n    a = p(3,k); b = p(2,k);\r\n    score(k) = EvaluateSolution(a, b, Na, Nb, Nc, tol);    \r\nend\r\nSetSolutionScore(round(mean(score)));","published":true,"deleted":false,"likes_count":0,"comments_count":0,"created_by":12569,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":5,"test_suite_updated_at":"2015-11-12T00:41:35.000Z","rescore_all_solutions":true,"group_id":1,"created_at":"2015-11-08T20:51:55.000Z","updated_at":"2015-11-12T03:39:15.000Z","published_at":"2015-11-10T00:22:37.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis is the second part of the Xiangqi series. The first part in this series is:\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://www.mathworks.com/matlabcentral/cody/problems/42674-cody-meets-xiangqi-foresee-the-unseen\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eCody meets Xiangqi: foresee the unseen (Part 1)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eBeing increasingly interested in\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://en.wikipedia.org/wiki/Xiangqi\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eXiangqi\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e (a.k.a.,\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eChinese Chess\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e), Mr. Cody has designed a new Xiangqi match for\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://en.wikipedia.org/wiki/Xiang_Yu\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eXiang Yu\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e and\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://de.wikipedia.org/wiki/Han_Gaozu\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eLiu Bang\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e by taking into account the likelihood of tie games. The new rule is described as follows:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eOnce\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[   1) Xiang Yu wins Na games consecutively,\\n   2) Liu Bang wins Nb games consecutively, \\n   3) No ties occur consecutively,]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ewhichever comes first\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e, Mr. Cody announces the outcome accordingly as follows:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[   1) Xiang Yu is the final winner,\\n   2) Liu Bang is the final winner, \\n   3) They end up with a final draw.]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eAgain, Cody asks us --- active Cody players --- to foresee the outcome of this unseen match using Monte Carlo simulations. Our task is to write the following function\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[                         [Pa, Pb, Pc] = Xiangqi2(a, b, Na, Nb, Nc)]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ewhere\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ea: the probability that Xiang Yu wins one individual game\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eb: the probability that Liu Bang wins one individual game\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eNa: # of consecutive wins required for Xiang Yu to become the final winner\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eNb: # of consecutive wins required for Liu Bang to become the final winner\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eNc: # of consecutive ties required to result in a final draw\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ePa: the probability that Xiang Yu wins the match\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ePb: the probability that Liu Bang wins the match\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ePc: the probability of a final draw\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe main focus of this problem is on\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eMonte Carlo simulations\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e, rather than analytical approaches. Your provided solution Xiangqi2.m will be checked by a P-file EvaluateSolution.p, which mainly does 3 things as follows:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e1) Call your function [Pa, Pb, Pc] = Xiangqi2(a, b, Na, Nb, Nc) and then Check if the result P = [Pa, Pb, Pc] is within tolerance of its expected value Q. That is, If norm(P - Q) \u0026lt; tol holds, it means that your solution is accurate enough. If this does not hold, your solution will be rejected.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e2) Check if your solution is based on\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003epure Monte Carlo simulations\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e or\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eanalytical approaches\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e. If it is based on analytical approaches (i.e., using analytical expressions to directly compute the probabilities), then your solution will be rejected. EvaluateSolution.p accomplishes this goal by exploiting a combination of distinct features possessed by analytical solutions, but are generally not shared by Monte Carlo simulations.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e3) If your solution passes the above two checks, then the score of your solution will be determined based on the speed of your code. The faster your solution is, the smaller score you get.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eIf you have any concerns or suggestions on this problem, please feel free to leave me a comment. Thanks.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"}],"problem_search":{"errors":[],"problems":[{"id":54770,"title":"Count the peaceful queens","description":"In a 5x5 chessboard with a queen of one color (white, say) on the perimeter, one can place 12 black queens on the board such that none of the black queens can attack the white one (or vice versa). \r\nWrite a function that returns the number of queens that cannot attack a queen of the other color placed anywhere on the perimeter of an x chessboard.  \r\n","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.4333px; min-height: 0px; white-space: normal; color: rgb(0, 0, 0); font-family: Menlo, Monaco, Consolas, monospace; font-style: normal; font-size: 14px; font-weight: 400; text-decoration: rgb(0, 0, 0); white-space: normal; \"\u003e\u003cdiv style=\"block-size: 328.7px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 164.35px; transform-origin: 407px 164.35px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 85.1833px 8px; transform-origin: 85.1833px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eIn a 5x5 chessboard with a \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://en.wikipedia.org/wiki/Queen_(chess)#Placement_and_movement\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003equeen\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 272.283px 8px; transform-origin: 272.283px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e of one color (white, say) on the perimeter, one can place 12 black queens on the board such that none of the black queens can attack the white one (or vice versa). \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 372.883px 8px; transform-origin: 372.883px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eWrite a function that returns the number of queens that cannot attack a queen of the other color placed anywhere on the perimeter of an \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"font-family: \u0026quot;STIXGeneral\u0026quot;, \u0026quot;STIXGeneral-webfont\u0026quot;, serif; font-style: italic; font-weight: 400; color: rgb(0, 0, 0);\"\u003en\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 3.5px 8px; transform-origin: 3.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003ex\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"font-family: \u0026quot;STIXGeneral\u0026quot;, \u0026quot;STIXGeneral-webfont\u0026quot;, serif; font-style: italic; font-weight: 400; color: rgb(0, 0, 0);\"\u003en\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 42.0083px 8px; transform-origin: 42.0083px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e chessboard. \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 1.94167px 8px; transform-origin: 1.94167px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 226.7px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 113.35px; text-align: left; transform-origin: 384px 113.35px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cimg class=\"imageNode\" style=\"vertical-align: baseline;width: 764px;height: 221px\" src=\"data:image/png;base64,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\" data-image-state=\"image-loaded\" width=\"764\" height=\"221\"\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function y = peacefulQueens(n)\r\n  y = f(n);\r\nend","test_suite":"%%\r\nn = 5;\r\nassert(isequal(peacefulQueens(n),12))\r\n\r\n%%\r\nn = 8;\r\nassert(isequal(peacefulQueens(n),42))\r\n\r\n%%\r\nn = 64;\r\nassert(isequal(peacefulQueens(n),3906))\r\n\r\n%%\r\nn = 4096;\r\nassert(isequal(peacefulQueens(n),16764930))\r\n\r\n%%\r\nn = 262144;\r\nassert(isequal(peacefulQueens(n),68718690306))\r\n\r\n%%\r\nn = 2097152;\r\nassert(isequal(peacefulQueens(n),4398040219650))\r\n\r\n%%\r\nn = 16777216;\r\nassert(isequal(peacefulQueens(n),281474926379010))\r\n\r\n%%\r\nm = randi(1000)+4;\r\ny = sum(arrayfun(@peacefulQueens,3:m));\r\nassert(isequal(y,polyval([1 3 2 0],m-2)/3))\r\n\r\n%%\r\nfiletext = fileread('peacefulQueens.m');\r\nillegal = contains(filetext, 'assignin') || contains(filetext, 'assert') || contains(filetext,'switch') || contains(filetext,'regexp'); \r\nassert(~illegal)\r\n","published":true,"deleted":false,"likes_count":2,"comments_count":0,"created_by":46909,"edited_by":46909,"edited_at":"2022-07-02T17:52:57.000Z","deleted_by":null,"deleted_at":null,"solvers_count":76,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2022-07-02T02:16:14.000Z","updated_at":"2026-01-26T15:48:57.000Z","published_at":"2022-07-02T02:17:02.000Z","restored_at":null,"restored_by":null,"spam":null,"simulink":false,"admin_reviewed":false,"description_opc":"{\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eIn a 5x5 chessboard with a \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://en.wikipedia.org/wiki/Queen_(chess)#Placement_and_movement\\\"\u003e\u003cw:r\u003e\u003cw:t\u003equeen\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e of one color (white, say) on the perimeter, one can place 12 black queens on the board such that none of the black queens can attack the white one (or vice versa). \u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eWrite a function that returns the number of queens that cannot attack a queen of the other color placed anywhere on the perimeter of an \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:customXml w:element=\\\"equation\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"displayStyle\\\" w:val=\\\"false\\\"/\u003e\u003cw:attr w:name=\\\"altTextString\\\" w:val=\\\"n\\\"/\u003e\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003en\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003ex\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:customXml w:element=\\\"equation\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"displayStyle\\\" w:val=\\\"false\\\"/\u003e\u003cw:attr w:name=\\\"altTextString\\\" w:val=\\\"n\\\"/\u003e\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003en\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e chessboard. \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"221\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"764\\\"/\u003e\u003cw:attr w:name=\\\"verticalAlign\\\" w:val=\\\"baseline\\\"/\u003e\u003cw:attr w:name=\\\"altText\\\" w:val=\\\"\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId1\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\",\"relationship\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"target\":\"/media/image1.png\",\"relationshipId\":\"rId1\"}]},{\"partUri\":\"/media/image1.png\",\"contentType\":\"image/png\",\"content\":\"data:image/png;base64,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\",\"relationship\":null}],\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"target\":\"/matlab/document.xml\",\"relationshipId\":\"rId1\"}]}"},{"id":1172,"title":"Wheat on a chessboard pt 1","description":"If a chessboard were to have wheat placed upon each square such that one grain were placed on the first square and each successive square after had double the amount of grains as the square before. How many grains of wheat would be on the chessboard at the finish?\r\n\r\nAssume the chess board is n by n squares.","description_html":"\u003cp\u003eIf a chessboard were to have wheat placed upon each square such that one grain were placed on the first square and each successive square after had double the amount of grains as the square before. How many grains of wheat would be on the chessboard at the finish?\u003c/p\u003e\u003cp\u003eAssume the chess board is n by n squares.\u003c/p\u003e","function_template":"function y = wheat_chess(n)\r\n  y = n;\r\nend","test_suite":"%%\r\nn = 1;\r\ny_correct = 1;\r\nassert(isequal(wheat_chess(n),y_correct))\r\n\r\n%%\r\nn = 0;\r\ny_correct = 0;\r\nassert(isequal(wheat_chess(n),y_correct))\r\n\r\n%%\r\nn = -1;\r\ny_correct = 'NaN';\r\nassert(isequal(wheat_chess(n),y_correct))\r\n\r\n%%\r\nn = 4;\r\ny_correct = 65535;\r\nassert(isequal(wheat_chess(n),y_correct))\r\n\r\n%%\r\nn = 8;\r\ny_correct = 18446744073709551615;\r\nassert(isequal(wheat_chess(n),y_correct))\r\n\r\n%%\r\nn = 10;\r\ny_correct = 1267650600228229401496703205375;\r\nassert(isequal(wheat_chess(n),y_correct))","published":true,"deleted":false,"likes_count":0,"comments_count":7,"created_by":9554,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":192,"test_suite_updated_at":"2013-01-08T15:42:28.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2013-01-04T15:52:05.000Z","updated_at":"2026-03-31T14:13:16.000Z","published_at":"2013-01-04T15:52:05.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eIf a chessboard were to have wheat placed upon each square such that one grain were placed on the first square and each successive square after had double the amount of grains as the square before. How many grains of wheat would be on the chessboard at the finish?\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eAssume the chess board is n by n squares.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":3054,"title":"Chess ELO rating system","description":"The Elo rating system is a method for calculating the relative chess skill levels of players in competitor-versus-competitor games. ( \u003chttp://en.wikipedia.org/wiki/Elo_rating_system\u003e )\r\n\r\nThe difference in the ratings (rating=ELO) between two players serves as a predictor of the outcome of a match. Two players with equal ratings who play against each other are expected to score an equal number of wins. A player whose rating is 100 points greater than their opponent's is expected to score 64%; if the difference is 200 points, then the expected score for the stronger player is 76%.\r\n\r\nSome chess organizations use the \"algorithm of 400\" to calculate performance rating. According to this algorithm, performance rating for an event is calculated by taking (1) the rating of each player beaten and adding 400, (2) the rating of each player lost to and subtracting 400, (3) the rating of each player drawn, and (4) summing these figures and dividing by the number of games played.\r\n\r\nFind the performance with this algorithm with ELO players and results (0=loss,0.5=draw,1=win) in input.","description_html":"\u003cp\u003eThe Elo rating system is a method for calculating the relative chess skill levels of players in competitor-versus-competitor games. ( \u003ca href = \"http://en.wikipedia.org/wiki/Elo_rating_system\"\u003ehttp://en.wikipedia.org/wiki/Elo_rating_system\u003c/a\u003e )\u003c/p\u003e\u003cp\u003eThe difference in the ratings (rating=ELO) between two players serves as a predictor of the outcome of a match. Two players with equal ratings who play against each other are expected to score an equal number of wins. A player whose rating is 100 points greater than their opponent's is expected to score 64%; if the difference is 200 points, then the expected score for the stronger player is 76%.\u003c/p\u003e\u003cp\u003eSome chess organizations use the \"algorithm of 400\" to calculate performance rating. According to this algorithm, performance rating for an event is calculated by taking (1) the rating of each player beaten and adding 400, (2) the rating of each player lost to and subtracting 400, (3) the rating of each player drawn, and (4) summing these figures and dividing by the number of games played.\u003c/p\u003e\u003cp\u003eFind the performance with this algorithm with ELO players and results (0=loss,0.5=draw,1=win) in input.\u003c/p\u003e","function_template":"function y = algo400(players,result)\r\n  y = x;\r\nend","test_suite":"%%\r\nplayers = 1000;\r\nresult = 1;\r\nassert(isequal(algo400(players,result),1400))\r\n%%\r\nplayers = 1000;\r\nresult = 0.5;\r\nassert(isequal(algo400(players,result),1000))\r\n%%\r\nassert(isequal(algo400([2000 2000],[0.5 0.5]),2000))\r\n%%\r\nplayers = [2000 2000];\r\nresult = [1 1];\r\nassert(isequal(algo400(players,result),2400))\r\n%%\r\nplayers = [2000 2000];\r\nresult = [0.5 1];\r\nassert(isequal(algo400(players,result),2200))\r\n%%\r\nplayers = [2000 2100 2200 2300];\r\nresult = [1 0.5 1 0.5];\r\nassert(isequal(algo400(players,result),2350))\r\n%%\r\nplayers = 1000;\r\nresult = 1;\r\nassert(isequal(algo400(players,result),1400))\r\n%% My last performance (my ELO is 1800)\r\nplayers = [1399 1280 2166 1534 1768 1791 1540];\r\nresult = [1 1 0 1 1 0 1];\r\nassert(isequal(round(algo400(players,result)),1811))\r\n%%\r\nplayers = [2000 2100 2200 2300];\r\nresult = [0.5 0.5 0.5 0.5];\r\nassert(isequal(algo400(players,result),2150))\r\n%% Caruana perfomance in 2014 Sinquefield Cup\r\nplayers = [2772 2768 2877 2805 2787  2772 2768 2877 2787 2805];\r\nresult = [1 1 1 1 1 1 1 0.5 0.5 0.5];\r\nassert(isequal(round(algo400(players,result)),3082))\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":1,"created_by":5390,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":96,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2015-02-28T18:02:19.000Z","updated_at":"2026-02-15T07:29:20.000Z","published_at":"2015-02-28T18:03:21.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe Elo rating system is a method for calculating the relative chess skill levels of players in competitor-versus-competitor games. (\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://en.wikipedia.org/wiki/Elo_rating_system\\\"\u003e\u003cw:r\u003e\u003cw:t\u003ehttp://en.wikipedia.org/wiki/Elo_rating_system\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e )\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe difference in the ratings (rating=ELO) between two players serves as a predictor of the outcome of a match. Two players with equal ratings who play against each other are expected to score an equal number of wins. A player whose rating is 100 points greater than their opponent's is expected to score 64%; if the difference is 200 points, then the expected score for the stronger player is 76%.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eSome chess organizations use the \\\"algorithm of 400\\\" to calculate performance rating. According to this algorithm, performance rating for an event is calculated by taking (1) the rating of each player beaten and adding 400, (2) the rating of each player lost to and subtracting 400, (3) the rating of each player drawn, and (4) summing these figures and dividing by the number of games played.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFind the performance with this algorithm with ELO players and results (0=loss,0.5=draw,1=win) in input.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":61144,"title":"FEN Chess Notation","description":"Note: This problem is the reverse, or complement, of Problem 61155 - FEN to Chess Board.\r\nGiven an 8-by-8 character matrix representing a chess board, convert it to FEN (Forsyth-Edwards Notation) board position format.\r\nThe input matrix uses:\r\nDots (\".\") for empty squares\r\nLetters for pieces: \"rnbqkp\" (black pieces) and \"RNBQKP\" (white pieces)\r\nFEN notation encodes each row from top to bottom, separated by slashes (\"/\"). Consecutive empty squares are replaced by their count (1-8).\r\n\r\nExample 1\r\nStarting position:\r\ninput = [ ...\r\n    'rnbqkbnr'\r\n    'pppppppp'\r\n    '........'\r\n    '........'\r\n    '........'\r\n    '........'\r\n    'PPPPPPPP'\r\n    'RNBQKBNR']\r\noutput =\r\n  'rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR'\r\nExample 2\r\nAfter white plays e4:\r\ninput = [ ...\r\n    'rnbqkbnr'\r\n    'pppppppp'\r\n    '........'\r\n    '........'\r\n    '....P...'\r\n    '........'\r\n    'PPPP.PPP'\r\n    'RNBQKBNR']\r\noutput =\r\n  'rnbqkbnr/pppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBNR'\r\n\r\nNote: Empty squares before the P are \"4\", the P itself, then \"3\" empty squares after.","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.44px; min-height: 0px; white-space: normal; color: rgb(33, 33, 33); font-family: Menlo, Monaco, Consolas, monospace; font-style: normal; font-size: 14px; font-weight: 400; text-decoration: none; white-space: normal; \"\u003e\u003cdiv style=\"block-size: 1352.21px; display: block; min-width: 0px; padding-block-start: 0px; padding-inline-start: 2px; padding-left: 2px; padding-top: 0px; perspective-origin: 333.5px 676.104px; transform-origin: 333.5px 676.104px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.5px; text-align: left; transform-origin: 309.5px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eNote: This problem is the reverse, or complement, of\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://www.mathworks.com/matlabcentral/cody/problems/61155-fen-to-chess-board\"\u003e\u003cspan style=\"border-block-end-color: rgb(0, 91, 130); border-block-start-color: rgb(0, 91, 130); border-bottom-color: rgb(0, 91, 130); border-inline-end-color: rgb(0, 91, 130); border-inline-start-color: rgb(0, 91, 130); border-left-color: rgb(0, 91, 130); border-right-color: rgb(0, 91, 130); border-top-color: rgb(0, 91, 130); caret-color: rgb(0, 91, 130); color: rgb(0, 91, 130); column-rule-color: rgb(0, 91, 130); outline-color: rgb(0, 91, 130); text-decoration-color: rgb(0, 91, 130); text-emphasis-color: rgb(0, 91, 130); \"\u003e\u003cspan style=\"\"\u003eProblem 61155 - FEN to Chess Board\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 21px; text-align: left; transform-origin: 309.5px 21px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eGiven an 8-by-8 character matrix representing a chess board, convert it to FEN (\u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://en.wikipedia.org/wiki/Forsyth%E2%80%93Edwards_Notation\"\u003e\u003cspan style=\"border-block-end-color: rgb(0, 91, 130); border-block-start-color: rgb(0, 91, 130); border-bottom-color: rgb(0, 91, 130); border-inline-end-color: rgb(0, 91, 130); border-inline-start-color: rgb(0, 91, 130); border-left-color: rgb(0, 91, 130); border-right-color: rgb(0, 91, 130); border-top-color: rgb(0, 91, 130); caret-color: rgb(0, 91, 130); color: rgb(0, 91, 130); column-rule-color: rgb(0, 91, 130); outline-color: rgb(0, 91, 130); text-decoration-color: rgb(0, 91, 130); text-emphasis-color: rgb(0, 91, 130); \"\u003e\u003cspan style=\"\"\u003eForsyth-Edwards Notation\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e) board position format.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.5px; text-align: left; transform-origin: 309.5px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe input matrix uses:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cul style=\"block-size: 40.875px; font-family: Helvetica, Arial, sans-serif; list-style-type: square; margin-block-end: 20px; margin-block-start: 10px; margin-bottom: 20px; margin-top: 10px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 316.5px 20.4375px; transform-origin: 316.5px 20.4375px; margin-top: 10px; margin-bottom: 20px; \"\u003e\u003cli style=\"block-size: 20.4375px; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 288.5px 10.2188px; text-align: left; transform-origin: 288.5px 10.2188px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eDots (\".\") for empty squares\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4375px; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 288.5px 10.2188px; text-align: left; transform-origin: 288.5px 10.2188px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eLetters for pieces: \"rnbqkp\" (black pieces) and \"RNBQKP\" (white pieces)\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003c/ul\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 21px; text-align: left; transform-origin: 309.5px 21px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eFEN notation encodes each row from top to bottom, separated by slashes (\"/\"). Consecutive empty squares are replaced by their count (1-8).\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 273.667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 136.833px; text-align: left; transform-origin: 309.5px 136.833px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cimg class=\"imageNode\" width=\"266\" height=\"268\" style=\"vertical-align: baseline;width: 266px;height: 268px\" src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQoAAAEMCAYAAAA8kvjUAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAB3RJTUUH6QwYFAMYjqyyogAAIABJREFUeJzsnXtc1FX+/58I4lCIQ2jOpBVjFx3TckhdmTJz/LqtQ1ZCdmHSNiE3ha6iuymrvwxtM7AyabXELgZZBpUJXVzHTB00DTSN0SwHFWUsjFEzRkT5/QEql4GZz2cGp+I8Hw8eOp/b+7zP55zX59xPQG1tbS0CgUDQCh38HQCBQPD7RwiFQCBwixAKgUDgFiEUAoHALUIoBAKBW4RQCAQCtwT5OwDNqeTnb7ZR7Tf7KsJu1NLZb/aF/8L/35//roWi+I22D0+LlOFYu5Eqv9m/kg4dhvgxoQj/hf9+9v/Gxc38F1UPgUDgFolC0RnHaSX2c38ROM+WSYIiJJxT4pQb4tBIZh28iRMRLs5FRPpZ+TpjK3VS8HNX+f55QkR/TqlvpGNYw4MqznRQcNvTn3PD09t4rsMwghueDutHgHogta7izYfYv/6IuK+VbWukRSI5EabH2lXfdungx2+Je68GW6CLc4Gd2/a9E0mteiCnzv01SAP179ezc/0lx4/ENopKkgZNJOfc7z6kb5jGlIuAY9+gv3k2Vo/O3U1+kRGjxMACUGPno5cW8xHdueu5yTwbZOEMgOomXpw6k4/6pvLxvVtQHpPzcG9QUpA+gZgcR92v+NewpQTh6ywT3P06HpqQzqYaQHUvy19woLUD3XvyzPi3sANwmOVTNjDibRh8mHNx86YdCBrEnKV9uf2w3cchq6Pq5++x+kWu+2PdsoT73q+P/3tm8+WgjQT42kx1GXnPv0Te8ypiF2aSrT+KAiCghsTbxpLb7wUs8yPQ1vjaMEAP/vPATJaf+92bOcsiuf0YcFEt9z4wp0Eea+3cnSx/AbQSLP/xqh4dFPX/OcxHT89i5MYhnAnrh/WTubxpB4c5jUd+1Df+ml4ITv9IRr1IADhycsg97d0jg3sMY/XBSFaHnf9Cbv9sfp1IANjf4z/f6+v+3yGAo43u/pWT9Ted+D63TiQAarYw47Or6n9EciLserIPXs/e7pHeBfbHrajvmI5+zi6scx5Bfcd0Un707pGSUCtY/H6D+H//f2xQt4GdwJD6/9jJS45DM+c49qAICl54jCw7OP43lbjc0DYw7F+87PXYRcrNE0iRfM4LulzDcGBt/U/7R88w/NgtqM3nC33WebPQKruj6tWP8WOGE3PFHpQ/tc0X9ByduqBqdKAr6k6A3C+LahCT46ef8/Odf8/lrbB1hF2kAFcF3PIq/jGuO2uXHa67fdz/YSjfyCkXj1ZcVPfaq45tQj91e/3RG5izTMXtcqOp921YP/w/rO9NJ4FUzPd2RtnpiHz/pXIimO6NDoTT9UQbVASuuh4DYK7/ac99HO3RW1H/r0H6e+YeAl5WobrqehJM92MyhKI9c9z3YWE3M8btZgYAn0s4J50/XomivCNDezf43See1LuuaXZZ7IK1ZCcOYWduGsMefIv7vtW7btfwFTVBZK6cXF+c68OUlfEYvcgkp/Z/dU4kALblVVAF9BiWyuP1/iuin+Llnpb6K3aivf5vFExUwriZrL3+vEhc3DOWOdH1JbHeCbw7bB2gZ03+9gYWtrPibOlEDjVHUAY6UHUBuoSiCjyC4kKJBMCxjfxrSUJ9/Pfm8SXXoG2L6mfglRj6NPjdJ57UO65qdlnsAjPZCYMofnsSfQeMpe9Cp+t2jT8IMkoU0Ux5PwX5ScpC+j37ZN9dqyhiwe76HwPT2bs+AcfrJlKbXFduB/2TaRgmpeHclUfymDj07w5i2mvDMB3ZIdt+iwSFkrsgp74euIusrAOkPNsZlczM0lF9DUq+4mxhWhndlS5AtX09ExJvI7r4c+6rUXLpMRr0ufdk7y4HcIYT10PHs4ePHePSCCfEz2a7biN1DRkWdAOVUHTOAn+5ci9UdpIXYDrjKNvNnA9KsZFL5g33ktTzJ5nPkkGYng05L9bH/27e+ug+/j4aOvhYLBzW90nfVf9DYvrr9fZfmLHyn6SpHE0fKwFf5L8fJN8lUSg6EhJUSEGhgtR5RpRSZabGQcFTKRQG3YzC/dXNUQ3hX+OeOZd52JpC3/AUnC5KmIXT+hIyXUv8/CwyJ8WyxFpJwkwj+glL2P9KIk87fSgWgWFkPHw3KZvPH3J8/DjaE2lYMi5DK6et4kgNa19O4KlX11DKDUwfvo7qQw3O1wDvb2LD7fUNlgBczI6vAecefhjdoLGqu4L8VcA9jU30uCWJ+3Z8wPZfuvPXyX/jkcp1VHOljMCCw/oe2llnSJmZTfavFtLHP4AlcynZWm8yhYdEDGPVounM+LpBeFY9w/DfprLygW/pcsRHdgKOYzJ94F36M07Ali03Xjqg8En+G8w0if0zEqsetSz5ehGGT2II7xhAQIDEv47hxHxqIP/rOzBIMwzAie8/4jMAVBjnrWFvcRra1vytsZLzmJ7wy2PI3KkgeraFknkalj+6mlXdVa3cKIFTx4m7rbFInMXxv1T63vYROafkDN+x06G6jJcSe/PcDR8zde0wFw20BeQcGHj+52UVbHYC7OLHy84fPv3jF3zU7F4VB7/MZPnlJpYnhjChel3rowE7hGL+upSUhWtJXLiW1C9rKK4+W5e7hKznNpDwbi4JOgWKoalY8kzkPbcNGwCdcVZfRMGX35J47v4ArB28H9YU3GMIs6Y3FomzOMwvcMv0QL7u4Zt3bfvsDQoAb9Nfjmk2Gcfk+L6ef741k1tWepH/Cm5i+VsKekm0LKONIpiFeavIHR8JQdGkbamitra21b+qLWlEB4Fm/KuU592EEXkNO/t3bweUxK+0kj9Vj3V+KsWe3GgvILm/nowfQDvVTP64fcx4zIm1u/tbW8NRupFef3mcvIYNgAoVqobFJftKTH+ZSnKp/I7SyKt741jyGm9ENE/waz+u5lyB5Zcf2QbAdnZUnL1Wj/nTLc3uC45QkLTEgfZqd5+lztiLPkI94B5M7/2Ao8dfMA68AvuW5Zj+dicBd7xNiqUIy65wQkJtZD0UQ8xDWdjUajS7tpFn2cqIO8YScuvTZGw5DoHBEBhcX3d/lJj18nsIasO6YYx/ho9ajf8CHo5fx6th/WXbOYt1xzZ8k/5KSblrJQUy2iyqD21m8rS5vB0fKT3/xT9D8bSf0R6S3mItr9ej5idin3iB3JNjSZqfhXZM6/1Q5R8upDDuVWqfUHjRCq6nrPRzGJ1J1lAnNruN4pbekiqehU85SZ2Wd76YSDEpE7MwmRMwvppN/IoYnt4yl4Ir3HxJW6L6CHGxWfVfzPNoZ1vIJ4Ze06wNjpaSGbsIffF9xMtYeLBL9+uAPOYtjCX2fjshDU9+vYLlyb0xHQbHgV3nDm8/2Au62aH7ITKbfW2HkbdwOjbgvu67aS0CHNb30CYeIGVHFTP6KeBXB/ZfnejvT0WlVJyrf+fVQPnqEPLGR5OLiZDVsVhrCklZmMCSD8vJH6iCCjuOGlAoVSgVS3BsSsUQPRGTnKK4ahBPjkvzOP4X/6OYgcuCGCy786srth/xafpLXhbD3vjfpAfl2Dpu0A3j7ZNvMc3T/HfnM1h1Fqplttl40T16HEUg2HOSiXvXg8vjveuJDY6oT/DKhcSNSqJgUysJq2cUxklqCqbl1RcV61mbTNraBBYON5IxLxr1Y5+xZlkIQ2UkHtvqrHNdZACoookf3Ze+/UIIwUTCwyWUfJJD4blnf0HaqsnEx/wi2VZ1526oAHvRfP6fKYXnzzRsXyllRdFETD12s+/H891g1h1n6GiAiqLPm2Wm2g5rmFEE0J0rOtuhpTp8YA1JCasw5pUzo2cxqUMNzNnQoKzdM5b0d7NYYq0kdryGmPkLqSzMJltRzkJdIcpx+djeNlC5IhXD6IwGcQGqMQsx56RhzrOhjs+hYLMRo4S2nCrrika9Qu7jfw3zrXNZHr7OcyMN+clMxmZ8nP4WkXX3eBJkDfqxExwI9nc9zH/3BHg10eyP0T0apufdjMV1Cd5R2PpLAjSjjGi2WBpnZACcZE7PxA6oJqUSz1dkfDNMRoCUmNfsanREdX8aGbPTSBqqQjU0ibTZGaTd37iqYN20T94Q3+Bu5xomP5uxp1mVybaohL1hvdm5scHBYjuHwoaSvai08cXdb+I/M9bU/+jNFa0l0u2rySGB5DFKCmc2EQmAsjxShoYT9UI5xqUW0kLnkLpWjfrTNOaEpmFZaqT8BT297mksEgD2D5OJmWtFOSaZBD4ge6eUOvtAtm7Y3eiIR/FffPJ8T5AUgkKZk/JSG6S/L5nzYVjzB/wO+QMIhYqfd77B7O88vFwRT/pTanJezHSdKTdlk1sGBBlJmKSoz2RSw9QBR0XjI/YXR6BWq9H/14btv3rUajUjXmyaO45QLtUUQHnw+b4I58c88tWwxl8H5wd85jzGtw3N2a1sc+zirUaRUMvPW5ay/NyxcLq2EiDbvh1wtQYVNiyFLUtc8TQ9yZu0zFiQRMG7WWS9W0DSghmoPzWhn9ZyLd5WagNUaK6G4r1SsvDFHG1SCvIo/g8fR3pfQ2eK3/4nqTs9vFxq+nv5U8y/w8UemvK7F4rg8NPc/Uqp5zc4C8mKj8L0SUsXFJL3aV0CMoxNQOH8gM8kNyr9gjbK9ZnKPYUU7ql0ffK6nmikmgIgiGuuO//LseQtnmsknE4Wz1rEl43u+YqUGe80Tqzf5fBow7i87ioiW7Gq6dUPKipxoEE3qLUObQeZUzOxD09gypZkkrdMIWG4lfTHclrNmMqu4YCDygrQ9ZJSJVvHVTe4PtNq/PdRcrEEKwCUfYYhvWnlrRUkp79s8kqlBurC8zsXimG88ew7Er4C3fnbdAO1n7b+Ys2fmOsy0FADsTj5eLv06ofxrgSXY0Hsr5swve6q0UNB0l3hku3UsY6rrmv4ezfWpiUsh6P5F6xpw/F3u2nYxEefLnRpzey1f8FgzyF3Kxjm5hLfWsfNpjzy7Tr0I4GRenSlBRSUtnK9KoHsmdGwM5cc+x3E9GstIM25YdgDkuP/H8OkTj4JI/WxLAnpT4Xx2VEgMf3lfnWRxHBdeH7fQhGxj7f3ASiJXVrCmidb6A8P6s3fn5tL0dIBPN9HQam7535irqs/BumIGgj27b+5nBPRKpEx5I5vEJ4gLcaHE0g492dE26BIqRq/gLRI+eP9u3b3si/XBarLOrbewBUYSdqkSuZMSqUQI9m2/FbEohzHr3X/UyjDwWptuetw4Aws1iUYKST1oTmQEk+8xEFp1cdUvBnfIE7cxX/8dCYdk9hq/dMGskrBffrrQ8LC5ZRvn0v+0M7NGo+b0TT9bT1AG89E8hqva0eKAbGYBrX+pazckk2enIdXOeoicFw2uSMtjJjYPDpVd/2LvDuKufjIOjgCRw/mN/5quqQIaykYIzVo+wNvNBnJ6BEOjE+8wt5bVxIzcRnK+WbyH22ckOz99aifqiThtTksHHBU3mjUepSX9QbqhmAqVDoMow0YhurRdNWg06kbd5k2oory4mJsFTYs682YPzFTbK8re2gvO+HG6nGiJ73Gkj0T0WutLFmfTbYtH81kM+Gj9Oh0evp2BVCgVClR1ICtvxYNKhi1hNrahTjsdSWdqrIiiq1WLJ9WYng1DV1ZJjEjk7H0ewHL+N9kdJvvQKu7C8tABwnT3msl/n/h7/PimXJ6Y91yBFJwHHGf/uKexzKzG5rTv8FpsH76voz09y1FDJe17EKb5r8GyBYKh7UAU46ONGsuU/q4uXiXlijtNEwxEvvLlT0YAGwrzMQ01oK5Rkn80jScE5PJq4EBj87lzSvWEVDfsBWsvp5ZUz2ZKec8lzC1Wi1QToU6BOktjcfRDDRgCFpG5kwd6ml27GfL/woVKqUDgkzEDzzq9QSpjkF/Y851X7HqH+VYHm3+ZXM67Dia1j0USlRKFapRGnRA7LgpADheH0H4ywN4Lmire8M1v5Iw/x3C0xOJu0ZDYZ6VJUv12H8owmI1k11oxvorQDlFnxZRXmHHjp6o9TFE1QdTeY0BfaQK7UgThrEq+DQRTWwWIZMWYZsUjFJ23JRy8cVDuSXoPRa3GP93c+fFFs7IGT9wZV28FbeQ/nQp72COr0Z5tjTkPETy8560ZzRNfwcoPw1IaCurVSh45H0p+S+N54bKn7ogSygc1gI0pg9wKFSkj1ST7slNCgfFpgkgZXDNoQ4kjYKHPy0g5wdgbC6ZI8vrZmVGPcWiK9adX5hEdRPPJM9s3LfeIlaKrMDVZ38f5mhtpGdhaoJz84dkokJ1dRQxusYDX8qL8ylyZJG5+Q4MN3o74WAdsU8+wAvJCST/rMS6wkxJaYOM4Q6FClVkXwxjdThfKeIf6ZcT0kKbXzNqfiL2iVeovPV91LHhZLm9wU7xJ1kNqh5ZZDQODPFLV5E94Cevp6F3PG5hcavx/w5vHZ/CM3jabdGATgNIiQFTvov0d+NMcuOrzy9MFFCDyZjqokvUFU3Tnx3HScDDpopahYJbH/1Yev57dAnInOckXSjsW9GYfiRlSzkJPSXeW5aFcdAEUgrmk+7R8PsdDI6fyzTHbOYVOmGFCc0nThwo+cfkI+cTev0KTssvwPyjxnQla8kXJBVUsXB4C5dsTUWdvAP7jZfhkcutUF3Zl3uZTuZzSlQD9MRMMmCI1qDoqkWvdV38rLRasFZA+Y4CLBssFDxnxhH0AAWVUmvFx1H2H4yeFZiD6u0PlWF/vRVHzRAM/X0xs1RPwfvPuY//pGpOj5X0wa7HQXzaO5Q4EpmzsXH6S5rVH83ZqQgBNSSOmkjOhUh/ET25dUKRF/kvnaVL/8IEid8t6UJR+ROOPkYMUgMJ0NOAsU8qtkrwONfY12GKvZe/P6IgIKAbT895ndJhjzKpcn3dedVQXv1/qedXcJLFbnY4Irld6m0OMxmb1WhejEI93oa9rHFKUfZUodH1JWSzjYWOf5Pm9bp4J+g/GOKfqCR7TOMzzvrh0Y1RoBkeW9f2MjaWJIAPTQS8FMml/CzdfKAarQJUOV7ajw+hry/WZuh+iMyvPYj/r/eeG+Yumdpq0l5ZRmoHUDhKiXskA9vI50jreVYkAkgeO5Esr9LfLor24Vkj2YkKr/Pfj+6aplwgr41i1xz06jmybgWIl3yHnVM/AZTyTOIAoF4k6M/XOaksvpBLrjVEeT0lxTdjWbuBnA5VZJWFEz2gnGJ0qLcVorgxFtOoQRhnh6Kt9cUKR2WEdQPzG8mkrLBSsL4EW5ndo9GedZnGhB4zdOvNxbQ6xaMFQtFcDbne2r96otelKwAOl7Jy2cP8ULqPj2t/482m8T8ghrtv1jD0nmvoYi/1wtBxFGeAsAhyc+YCZyfsKMlJjSVT+vIO3uFl/rtPxj0eC4X9ZyeWg8C3B+omvSyIQ/qShOXkPpaMbYuTvJNAj57Edqtwe1dLBIfbmfqp7Ns9p0Mo5qJyiou3Yj3RGe3gfmg13Ym6JABl4Gn0UdeS8+py4ldaiXs3nLigVIpmZ6N96jiaJy9BW1uN47SSyl8qKLaVYfnahuNiDYab+mLoE4jK42XS6oZp24OslI+KJml+EupWiv1nqSv+l1O02kLhp3aoOcTBIdBNajwE7sO8E+wOL+2XbaIwMBKNh12iwZfq2XXkDCW7drGnKpRr+l3BVZfC1R2P06l8N72v7AVvHm0e/0/+yuX3VNLNDifVA/ntVCd++MnBNzsPcjSkBzfd0JUbQ3cTKHeZxLJ8kvLl3SqV01317KwErKu8zn97rXq2Xw2Eww0VFrd3gQShKHprMnFnl9/uNxbj2FgZowxt2GZDzkuTiQOIf43aFLkdLyq2f/GWjCG5UlBi/fh5+j7TZLGJpa6uVaCarK2fch6Hdq0SR5mduFuXtfj0rFfq/o2e9QHmO4+57z5VVfCJXUv6njVMufr8YZc9HmdDFapCW1/8jx2bBD9E0fea19msipS+PubO9RSgJX2tt/ZTyN/5MPFadwJ5DUd/3swtU2d5EDjX8T9+fMt3vFn/75Bpc1nSbR3ShnJ0pmC5lMFY3vH9p7MY/379j373epf/Xp3FJoB7ZrN9kGd3ysulO1PoFeDzZXMl0pu1K+Xeq6Vv82U2XeBAo70WJZs9SBBO7GV2lJPeID/oaUa84mkuVNJX29GjMRan9m/FihLbhynEvJ9N0U4JvR5KFVqdAeMoNZqg3fxv/93cHuxB92gDCjesAnQ+sA95G056UCffQ9cre6Fki+fxn5jGux1eYcxrnsd/nyuPcFrybO+TFMgenOBp+msBP+S/P8B0lJao4ajsRZatpA1XszAIqGg9QSmuHUNmzDISdt9K7C2XE8Jhir74tm68QEP7QSpiZ6WTFVONklexXLqI2H9/0XjEnUKFqquKqL/2R00Vtq9WUXTjXNKv9awJutPlI3j8ljdYPC1D+ixUhx3r2hysa0EZdS/PXn7y7PgtD+mM8obb0Sk+IHNaoVTrjewTpCL2iiCcVLsVyFO/Xc4Lo+DR72/hLr0aBRVsM+/EfuRwk/jvzl3THuf/ha8jgHEUTC9mwtw1TeK/O6oIFQMMfVDhZJ/lc4oHPMkTv3lW/G7Mb1RegPT3eyGgtra2+VIqLvYePddG4UtctlGUsWeNJ3sv6vk5EA65vc4zLutmoZsd4Eq6jRjSuP4X1BlqXBSTgyJwnDyNk0CUnVysOh2oxF4NtHSezhB0vMlYAk/8j6RWfSW2n05RUbGfjQd+BZzs+3pT/eAngLMZAoi4AsMVXYi89De6nviGU60OPnLhf5MwO2sDsGw/WNdms3cH+dvPJ3ZHmR0nClQ9z3fxhF99M/pePdHd3Be9tivaTo5WBMKF/2Eqgo/Zmze+hvUj4GIF1dRykSu/IvpzKrgTtHQeFcFh9iaLubjz/yxdKd5W5n64todo+irQBUNL7/9cG4UvcdlGcSXdUhY389/jEoWqm4JYya1f7pDfkAkWup2W0SDXEq0JuyuRgPol6s/+38X50w5UrZ2nqUh4SikB5aX0AnqFw+CzbYnXD2hyneP8v6eBcqTPaWnGcRQBYBjQGcOA4UBLAxhaQkat3pVIABzbSe2xutXGXfp1ZMe59Sdc+91UJKRQgW6AAp3c2yUSWGGhhQmz8pGQ/X7fk8IEAsHvAhclikp+3r/Pq2WzvOMMHSJ6tTLJqa0JpXr/Pnxdy/Ic4b/w35/+h7vcjtOFUJTg2LPJgzaCtsLTOmJbUVdHPOr+wjZC+C/896f/rhFVD4FA4BYfC4WKjuqBnFL3u/C7iQN1LfJK7LVtucloawj/hf9/Tv99N45CNZSlaam8fHZx5N4JfJhaRq8L1U0cEEDK/WPJOLs4dp/JrHl3IAYZ+2jIQvgv/P8T+++jEsUwVr3YIJIAdmcx5sXrLlBbxyVkJD50PpIAdr3KiMRSn/Vzt47wX/j/5/bfN0JxWQUrilwcL1rDmstcHPc1J4vI/sbF8W9W1k0+a2uE/8L/P7n/ojFTIBC4xTdCcagLibe4OH7LaEb5aox1a3QaSNKtLo7fasLU6QLYF/4L///k/vtGKCKgT8y9Taa9RvL3mIvgQjRAB0LUfeOa2U+473I5659JR/gv/P+T++9iUthG9qQ/63EjTG1EJI9MXMymluYsBA1i2mvDMB3xdEFPaQNOHPZvMd7xEoUt2v8LM1b+kzSVp3MMPJ2UVofwX/j/5/If0D3U7JB3JQrVEP41oZVIAqjZwrwJxXztk7XPmhBwHJOxlUgCqNnMHOMicgJauUYuwn/hfzvx3yuhOPrNW3zm0ZVrmCtr1/DWsS5/qfG28i3yBanLfb9rtPBf+N9e/PdKKA4dKvX4WtshLzdwcPXMA573EtsOSNkE1zOE/6We2xf++9z+hfTfu6qHlHGdbbGWlrAv7Av7F8S+V0JxffSdHu6nKWcnafcYbrvbY/vydxJvGeG/8L+9+O+VUJxyXsOb97jf1UZ5j4ydpD1AoY0nt+Xttc/bj/duJ/GWEP4L/9uL/16Oo9iBdtDjfDgussUrNOPSWD9oI23R6AwOjCnvsGZCywuXaya8gS0lCK836XKJ8F/43z7890oogi8bxqovFjFmWWmL19iWpTLyi+s4eFlb9A8Fk/F0IiOWttyoY1v6ENqnSymks++tC/+F/+3Ef9lCEdz9Oh56cDozVrtf892+ej7GB0tY1d2HkXWsFP3gB0j53H2Rzv75bPSD08k45rvEIvwX/rcn/+UJheo67h8/v/WBJk2p2cKM8TbW+yKufisl6tbZrQ80aWZ/Mym3ZpLli8VAhf/C/3bmvwyhGMaqF+ezTZa5r0h+fZDErduacgkZj8+mWNa9X5L4ryOtrszvHuG/8L/9+S9ZKILDSnjW1dx7T/kqncVhXshq6Sekupp77ylf/pu0UvlFMOG/8L89+i9RKFRsX/OO9O3sGuFk8ZqrZK4p2JmCD7K8tp/5gdwtl4T/wv/26b9EofBmY+AGfHVQ5r4J3mwM2wBzicyim/Bf+O8D+39A/yUKhTcbAzfAbpe5maA3G8M2tF9Guawbhf/Cf1/Y/+P5L5bCEwgEbpEsFJ6NLXf3kM7InfTqk63WFF2QO/Jd+O8L+8L/P5r/EoXiKDeNkmjBFcOvIlLWjd0xxPjA/ojrZe5CLfwX/vvA/h/Qf8lL4XXsPpStFd71BHfueoxeh3e2cLb1pcCcxwIo2OvdbgnKXj0whB1p4WzrS6EJ/4X/f27/cbkUnuRZ6qcOr+cGqTc1xf2o1xZRhNUSO8DbAmArkeQG4b/wvz36LxozBQKBW1yUKFR0iuh14UNyjlCq9++T2c/sC87QIaKXbxqNZCH8F/770/9QwnQ0m2vqQiiu4ooBgy5IkFxTV0c86jf70pZL9z3Cf+G/f/3vQHOhEFUPgUDgFiEUAoHALUIoBAKBW4RQCAQCtwihEAgEbhFCIRAI3CKEQiAQuEUIhUAgcIsQCoFA4BYhFAKBwC1CKAQCgVuEUAgEArcIoRAIBG4RQiEQCNynuJt7AAAgAElEQVQihEIgELhFCIVAIHCLEAqBQOAWIRQCgcAtQigEAoFbhFAIBAK3CKEQCARuEUIhEAjcIoRCIBC4RQiFQCBwixAKgUDgFiEUAoHALUIoBAKBW4RQCAQCtwihEAgEbhFCIRAI3BLU/FAlP+/fR/WFD0s9Z+gQ0YsQv9kPpXr/Pg76zb7wX/jvT//DCXZx1IVQlODYs4mqNg9QS1xJtxFDUPvNfhl71mzkqN/sC/+F//703zWi6iEQCNwihEIgELhFCIVAIHCLEAqBQOAWIRQCgcAtQigEAoFbhFAIBAK3CKEQCARuEUIhEAjcIoRCIBC4RQiFQCBwixAKgUDgFiEUAoHALUIoBAKBW4RQCAQCtwihEAgEbhFCIRAI3CKEQiAQuEUIhUAgcIsQCoFA4BYhFAKBwC1CKAQCgVuEUAgEArcIoRAIBG4RQiEQCNwihEIgELhFCIVAIHCLEAqBQOAWIRQCgcAtQigEAoFbgpofUtEpoteFD8k5Qqnev4+DfrN/hg4RvQjxm33hv/Dfn/6HEqaDzk2OuhCKq7hiwKALEiTXlLFnzUaO+s3+lXQbMQS13+wL/4X//vW/A82FQlQ9BAKBW4RQCHxIZ5y1Suy1Ef4OiMDHCKEQ+IaAAFLixxJy02R0N91JQPxWzAH+DpTAVwihEPiAS8hIfAjz+BKqqsopr6qiZHwhIxJLsfk7aAKfIIRC4D0ni8j+LonMp7UoAFCgfTqTpO9WknfSz2ET+AQhFAKBwC1CKATe02kgSUMySXrBeu6Q9YUkMoeYMHXyY7gEPkMIhcB7AiHqvnE4pqVRAEABadMqSbjvcgj0c9gEPkEIhcArHPZv0d94B8b3ThO7IBk9AHqSF8RR9c4TqG9cTKpd6edQCrxFCIVAPgHHMRnfRJNXSbk5m/RHo6mTBCXRj6aTvb6cyvevItO4iBzRVfqHRgiFQDbW5S9hnpRL9uiWSwzKMdnkTvqK1OVhFzBkAl8jhEIgG9sBG7EjDW6vM4yMxXbglwsQIkFbIYRCIJ8gsFfY3V5mr7C7nH4o+OMghEIgG8Ntd2OZu5DimlYuqilm4VwLSXeFX7BwCXyPEAqBbBTaeHL1mUT1TySvzMUFZXkk9o8iU7+AtMjjFzx8At8hhELgBQ6MKe+wRm8mbkxGk3kdNjLGxGHWv4EtJQjRQfrHRgiFwAuCyXg6kRE5EDvRiKbROQ3GibGQ8xDap0spbLYUiuCPhBAKgTyOlaIfnEzBiDwqj+8l92Fts0u0D+ey93gleSM2YBycTsYxIRZ/VIRQCKTzWylRty5Ak2djzdRolK31aAQpiZ66BlveVaTdmklW9QULpcCHCKEQSOQSMh6fDfMsrQ60aopydDaWeUdJ/NcR3HeoCn5vCKEQSKP0E1KPzCB7avOqhju0T2Yxo/TfpJWKKsgfDSEUAgl0puCDLPTTk5EuE0CQjuSndGR+UOnrgAnaGCEUAgmcpCBPi3G4SvYTVCNj0JpLKPZhqARtjxAKgQR+o9KpQ3u1F4/oo0NnL6PcZ2ESXAiEUAgEArcIoRBIIgQr1lIvHlBqxarogpj58cdCzOkTSKA7hphiUicmYo2U+YhSM8UjnkDny2AJ2hwhFAIJHCF26hso9lbJf0T0jcT36oGCI74LlqDNEUIhkIQirJbYAQovnyJE4o+GaKMQCARucVGiqOTn/fvw35D8M3SI6EWI3+yHUr1/Hwf9Zl/4L/z3p//hBLs46kIoSnDs2YQXtVAvuZJuI4ag9pv9Mvas2chRv9kX/gv//em/a0TVQyAQuEUIhUAgcIsQCoFA4BYhFAKBwC1CKAQCgVuEUAgEArcIoRAIBG4RQiEQCNwihEIgELhFCIVAIHCLEAqBQOAWIRQCgcAtQigEAoFbhFAIBAK3CKEQCARuEUIhEAjcIoRCIBC4RQiFQCBwixAKgUDgFiEUAoHALUIoBAKBW4RQCAQCtwihEAgEbhFCIRAI3CKEQiAQuEUIhUAgcIsQCoFA4BYhFAKBwC1CKAQCgVuEUAgEArcENT+kolNErwsfknOEUr1/Hwf9Zv8MHSJ6EeI3+8J/4b8//Q8lTAedmxx1IRRXccWAQRckSK4pY8+ajRz1m/0r6TZiCGq/2Rf+C//9638HmguFqHoIBAK3+FgoOuOsVWKvjfDtYz1GRUf1QE6p+xHsF/vt3X9/42///7zv33dCERBASvxYQm6ajO6mOwmI34o5wGdPd49qKEuXvEXfxCxuT8xAu6Qne1UX0H5799/f+Nv/P/n795FQXEJG4kOYx5dQVVVOeVUVJeMLGZFYis03BtwwjFUvpvLVgw3sP1jEmBevo+qC2G/v/vsbf/v/53//vhGKk0Vkf5dE5tNaFAAo0D6dSdJ3K8k76RMLrXNZBStKXNgvWcOayy6A/fbuv7/xt//t4P2LxkyBQOAW3whFp4EkDckk6QXruUPWF5LIHGLC1MknFlrnUBcSB7uwP3g0ow5dAPvt3X9/42//28H7941QBELUfeNwTEujAIAC0qZVknDf5RDoEwutEwF9Yu5tZv/vMRfBhWiAbu/++xt/+98O3r/XQuGwf4v+xjswvnea2AXJ6AHQk7wgjqp3nkB942JS7UqvA9oStRGR/GPiLB74LLCZ/epPFhA18ReyI/q3mf327r+/8bf/7eX9B9TW1tY2O1r8hod3HydGNwvlShvZo11HhuNDE5rYCjKL7yO+uSUX1I1M86i1VjWEf457mUvc2j/MC8uCGGz35KESRua1d//bhD+Q/3/W95+yuJn/XpUorMtfwjwpt8VAAijHZJM76StSl4d5Y8olR795iy89sr+Rud8M87n99u6/v/G3/+3p/XslFLYDNmJHGtxeZxgZi+3AL96YcsmhQ6We2z9U43P77d1/f+Nv/9vT+/eujSII7BXuyzP2CrvL6WdeI+z7176/8bf/7ci+V0JhuO1uLHMXUtyaWNUUs3CuhaS7wr0x5ZLro+/02P4/hv3oc/vt3X9/42//29P790ooFNp4cvWZRPVPJK/MxQVleST2jyJTv4C0yOPemHLJKec1vDnYA/uDpzPpmEctOZJo7/77G3/7357ev5fdow6MKe+wRm8mbkxGk3HtNjLGxGHWv4EtJYi26SDagXbQ43w4aE3L9gelsX7QRtpmfk5799/f+Nv/9vP+vRSKYDKeTmREDsRONKJpdE6DcWIs5DyE9ulSCpstheE9wZcNY9UXixizIqBl+ytSGfnFdRy8rC2mErZ3//2L//1vP+9fvlAcK0U/OJmCEXlUHt9L7sPaZpdoH85l7/FK8kZswDg4nYxjvous4O7X8dCD81gz8kP39kduI/7BElZ192Fiae/++xm/+9/O3r+8ttDfSom6dQHaVgZ6nLegJHrqGmx9TGhuzUS5aTwJ3q6qobqO+8ctpa9U+3fY6LIshKHeVlfbu//+xt/+t8P3L6NEcQkZj8+GeRb3gWyAcnQ2lnlHSfzXEbx7T8NY9eJ8AmTZP07y64M47ZX99u6/v/G3/+3z/UsXitJPSD0yg+ypzYs67tA+mcWM0n+TViq/CBYcVsKzv3hhf386i8O8KIK2d//9jN/9b6fvX6JQdKbggyz005ORHkwgSEfyUzoyP6iUczegYvuad7y2v3jNVTLXFGzv/vsbf/vfft+/RKE4SUGeFuNw+YqsGhmD1lxCsay7e7N2pQ/sf3VQ5r4J7d1/f+Nv/9vv+5coFL9R6dShvVqilYb00aGzl1Eu6+YajvrEvp0KWTe3d//9jb/9b7/vXyyFJxAI3CJZKEKwYi31wmKpFauiC3JHvit8Yr8zcif9tnf//Y2//W+v71/iOIruGGKKSZ2YiDVSoqWzlJopHvEEOlk3H+WmUcXM9db+8PFE8jOnJN/c3v33N/72v/2+f8krXDmPBVCw17vdApS9emAIO9LC2dZX+OnYfShbK7zrCe/c9Ri9Du9s4WzrKxy1d//bnt+3/+3i/btY4UryyExFWC2xAxTSQ9eIliLJPacOr+cGL61zWP6t7d1/f+Nv/9vr+xeNmQKBwC0uShSV/Lx/H9UXPiz1nKFDRC9C/GY/lOr9+/w4zkD4L/z3p//hLgdjuRCKEhx7Nvlxz8rfRx35qN/sC/+F//703zWi6iEQCNwiUSgiqVUP5NS5vxvpeLZDNqwfAR6f6y9foX78lrj3arC52oEpsDNOuc/1CZGcCNNj7apvWwUOVGI/HYGzUXmwM/aiAtSDJxAweDqmoksb3xMUgeO0Ekcb71x16kwgs84MbFsjLdIZW6mTgp+7tl06CI1k1sGbOOFqB66IyDb+8nbGcVqJ/dxfgzRQ/349O6eUHD8Sez168J8HZvJZTxUKwFHWhX8vi+T2Y8BFtdz7wBzKe6pQ4MRe1p05jc5lUNlTCTixlw1j+QvIm9hSXUZexkvkPa8idmEm2fqjdTs4B9SQeNtYcvu9gGV+BNoLvjp9f6xblnCfRYOOYmz62XzZFkuwHStF/3+zKQ4Cp3Ic+Z8Ox1gLBJaRlPgdyTuqmEIGUf1fI2f7XcSfpi5u/nonWQ4F1NxA+v9SmBLm+zUcAWqO/shubkb2iCLZKClIn0DMV/Xxf8trbbMEXY2djxYu5qOa7tz13GSeDbJwBkB1Ey9OnclHfVP5+N4tKI/52jBAJUmDJlJwLv8pSdswjSkXAce+QX/z7Ab5T0V6o3PzGuS//yO/yIhRgmUZAhhP9oFyyg9YSOvX0rls4pue6peGpaVzUggMgQHplOzJJPylODRzjmMPiqDghccwj1tCimMqcbmh3liQh1rB4veN5NqKKLLlYnz/f2zwtqJ5KpjM974ls7TLuS9AwdLZML+cqqpaLONWk/pZl7oT1TU40KCJVKDoo0XHMarqW6Rtn71K/jgLtVVVlM/vQMrSs7MXO2MrPUTqe4cwn/By9aXQntz20jbumr8b6/yXue2lbSy9kK/h9I9k5DSI/5wcctti4Y0Oivr09yoRWbMYuXEIZ8L6Yf1kLuvGLSHlWBqP/Khvw9m5/sl/Xq72v5sZ43YzA4DPoVEQmpzrl+6dqbNcdT2GrUXYIqewxFpOzj1atE8NQL0hgSXHEzDYneRffg8BL6tQXXU9Cab7MRlC0Z5pmy/oOU4E051iLOtt6LBQTDh3nPCiAFx9hBE3Z1A1Nobw3DiyEj6i6LZfCL9Ygf2ADWeNgvIyB1xSf33gtUyZkEFMNzVTsMOE18hqUM1wlJXjqHFiO2BHcfFFQDW2z+fQ6+UQ4keHkzj8A5K+fKzuCySHDkq+eD6Rss0fMIUHWfaXX7noxDcXbvRnpy6oGsV/17qdxH1dsuxyDcObpL/h712P2tIw/SWjVXZH1asf48cMJ+aKPSh/aotlxXaRcvMEUs79jm/5nJf5z4sqlYYpO2qprW34l11fnDGSXdvk3I4pTRb/lEnglRj65FGwHhzrF7Kw0IHjf19iHWPAEAT0TCB5NMQuMJOdMIjityfRd8BY+i50um7X8BXHNvKvJXoKDL3oZVjFX5dcg9aL4qd9cz7m+7Ow5Cwhf348xdlF2IDoif8l9hM9IR3DMe2fRnbM2fb5IxiTX8HysBN7/CLKk4M4OyxIEzOdtP0mwjuGoP9kFPkTq4Eu5H2wjfjXLGS/ls/C+7eRvb6LF/7vpLZ8K5d0BjpDx/JvONUmxe8WqAkic+Xw+vjPx7gyHmNbVD/LOzK0d5P0Z/7KRfpbS3biEHbmpjHswbe471u963YN2VzY/CejRGHDvCLPi8YiS5NlxaXhsL5P+i4njldySJ0eReraKgzkkVV+dms1BUolKJRaDOPSMExKw7krj+QxcfR6+y/MWPlP0lQOL0LQAmF6NuS8SPm4JSwhhZSPLubvo6GDzMyiuqYvyllZZKxwwrsFKIcuREM11NaSnrMUw0sTiKnp2aQtJpCSHQ7gOHYiOLdqQU0n1F2dMP41ap8IglqAo+j1StLeyCDPCdmfKNGPPeNFBKjoEH4pi5atw8Z2Vj82hJjKTRduPE5QKLkLcs7Hf9YBUp7tjMrHYlGrKGLBbnnpT//uIKa9NgzTkR1ehMA/+U+iUHRAEVRIxj0JWMbF0VfqSFZnCbnLCnEE3cs0Oa4GHMdk+oakQgshrxZRNTCpXkHjSepz/jLjq5UYGoRN0SeWJdZKEmYa0RsnYMteSrbWh2IRMYxVi6bzQu9cbEtjURJH+AQNw997mJUPfEsXOSN2VcOxLliLaeYUbPwfmf9ukuVqgJxV5PyzvsESgN8o3gQ4v6WI4ecbqwL3kvsxNK2cRt8/C+PUxaTOVGFc8A7pPX+SEdA6ahUORv7nOCkzs8n+1UJ6ystsfTaRp53eZAoPCQwj4+G7Sbu2cfxrn0rBknEZWl+1VaiG8K9xb3uX/iYsYf8rcuOlIyE+yX/jkHqrRKFYzz/fmkmnmbNZvLqS5C25xPf08NaKPBL7Z+G46gGWzw6k1yGJIQVsn72BedxCcodEo7gaMmL7Yh6ZT/6kJoWqUKWLiFASPdtCSeco+ppmE/XlDJ+0/Af3GMLTT83m8MMWbLOj61vZlcS+bUM93YB+uprX53dj8EGpddTjqPoNZE3OQArSJ2B6/S7iH24sFgrFF2R9+Xfih9aL3snvsUTGEx+0A+vJ4Rg71R22f76cAkXTGOlM4bKnyLlyHrWvBAGti0TwpXp22Y/y5c6DHAUuvfY6/trrKD0O7aSaYeQvWkDCu+VMGQgQS2wfJyGPnuGJv0MIKjpe1ptv9+7js+/rwnrptf19U3c/dZw442TKW4j/vrddTvbH44jv6P27PvH9R3w5biEfepv+Hl1N/7cHcPthqb7XsuTrRSjueYRMufnv6gTy3/8bBqTFh+Q2iupDm5k8bS5vG4owXR6C+nK1R3/h6jjMhmconvYz2kPyEod1xzZixxhRlOUQd42elA+1JDwkrealnWomf1wpKXetpMDLNovasG4Yxy+mw3wblrOJ1OnA4QRQEj23iPL5Cv49fh2vhvWXbUer7YPjv/8m9afGPROxU6dgyyk5v6rz3hKKB5kwDdpG0Z6z13YlN3cfU56MbfzQnzZi+q8DrbbJeItmqDjTIZDhD85i0md2fo0cyujoqzlS8iWPJmWgfamKpTUVbNkdTkjDXg61Gs3uXayp6ckTL71F36QVvL2/hh7Rd9Cvayg7P05n2IOf8c9q+T0EjtKN9LrpOWg1/oOYctNUkku97yjdv3u7j9LfPmY85sTaXU4oglmYt4rcv8rIf399lfK8mzBKFAmQ2+txbB036Ibx9sm3mBacSuaY1vsByz9MIrn6GQp1FqplN3B1xfYjEOSkYLqJPFSoRhrQuSpD2QuY8244U56MdqnsxleziV8RQ/KyGPbG/yYvOKpBPDluIdFN9lawvaInhnxKptYlINX9uVhDTWjuKGbgsiAGy9BIzZX9QbWezBk7SHg98nyj1CAT8ctiWOj4N2lKsH6/E21/LdogHcU/1kI/wGEm43AC+dE25uw7e+MlZMx4ifJQiL2y9X6JWoWD4Y+Wk7Kjihn9zsdm7KS6f8/Wvz+qgcOr7czoU9cyYl+dj7WmkBlvJZD7vyrMfRq+iXimsATnzjno+6fzjJyiePUR4mJzJcT/IvTF9xHffFEFD9FTVvq5T9Pf01vmUnDFOuntODU/EfvEC+SeHEtSBw/z35lXqXxCIbsXyIvuUTvBgRCuMxI7tnVVtZWmwtYA7xq2fjKTsTuJ7FEKtJo1lCwwoG3pI/GrleylEP9ktOuW3lAjGfOiUT+2iKy75W3IUmVdQeGkXKrOJlKnA7vDib0SwI7dHoJCqUKpqNtTIXdSCMnWmSwPXyfd2KU9UA1KJuXXVJKL8siPOtu+oiVhsoIRn4eRdm8t1l270Jk0aIKisGaW47yzM7bPP0YxeQ1aUs89zlH0KikB6aSNTqfq0la+Lt1v4j8T52LMK28kEg05W/+OHa8hZv5CrI+moa0pZuH8QjSPrqFogaHFQU+KfjMw55Wgjt/DXa+BVsL0Z9vqLCxS43/VZOJjfvHcSAOCIw6R+b2v099nrJG9IdFxFIEQPsDD/LfNu5EQf4y5HkGhzEl5E0NOOtFBoOzXyksC7J/mYtVpW+0OUk1KJZ4vmfOhnEXRBrJ1w25iRxrOH9qWjmGQjtgXrVhfjEU3yED6tvOnDSNjsRafpKMMa0T0oO+WKvTzZmBNzmlUZdLcn4Tq5U8xB52maJ2OqP6AVovuGxvWoAAyX1aRdH+DmAisISl5DzP+a4TiPmha6bILrtzGchJIHuOu2K7EuNRCWugcUt914lyRxpyu6eTPb1kkzt05JpkEPuajo1JWllZiXrNLevxv2ievtyBMz7sZ77VB+vuKjG+GyQnRBecPIBSdKX77n6Trskkf5UFbraOAKTOtJE10M0A1yEjCJAW2lz/FLFlsL+boERqXx4akUXKgHMtsLdrZFsoPlJA2pKE94PBxZPW1BHZBYy/G1ieN7If/h2lR8PkE3zOOhOhs8rbto9gehTYSiNQSZd+GxbKBrAEm4s41eNVQvOw5Cu5fSOoAKyW7uqJupZ3m6OHv4GoNHmXhIC0zFiRR8G4WWe8WkDRvClqP4lWF5mrYXt7bk4vr6YCjAunxbz8iY/VrFT/vfIMFUW2U/haVsPcPsIDp718oyj7DsDCarAVGt18n5w95JA6KIccRh/Fm9482jE1A4cwmr1RqoNZx1Q1QvKt5j7Q6OoGE6OZ1RtuuYuij5GKppgC4FG2/Ikp2QfTsTPT/TSP1W8Bpw7yihKj7DWQ+9hzmgQqsE6OIesqBZviXJCdnYZgYh8LuwFkDfLsAU7qWzPlGFD9YKe7Xt9X5NiHqPlBR6bm4DU9gypZkkrdMIWG4pzc5qKyAG9RSqmS/oI2SEf/X9ZQ86Cg4/DR3v65vw/T3AZ+18UQ9X/A7F4owUh/LxpiTSazCWZfYXeDYlkWKQU3INUmUPzgZIxasP3jw+KEGYnGS+5X0ccs3DHsA29xUCprkIsXNU5hyc5Mvj6OA1Lk2/jHsR8l26vgF7fV2iosdoIxn4fwQrDshb3xfRoyPIWpyATgcOLdmkrIjiqj1JlLXAjUKiqarCb88HPWEAti5C8X8hcQrwbmjCOt1qtYzTnh/httzyN3qaTh16EcCo/SeLx67NZccu5EREgeFGu9KkBz/SXdJnak2jDee/UBC+pvMwXsSGCUx/X28/fdf/fh9C8VPG8hyTiFltJUUTQhx7zZJFTV2cu5REz4oHUfcS5Rvn0v+0M7Y0KGJ9OD5QTqiBoJ96wHJG8dWH1PxpnENMYMSydvlBJw47Hbs5/4cOKnrFUgcFIPZOJ1Jx+SPGVBfpqJgYjghajX6eVYAlKOzKD9eRdWONeS+n0uueS9VhUtYUlhJUcFCZjyZRkbOXqqqSkjt4wAUUDgHk0FNyD15qC6/pHWj5QeYmljJnEmpFHpYrNBotWi1Hs4LdphJvn8OPHozN0tdxzEyhtw7zJ7H/x0LSIuU2C0YsY+3T3qS/l7gyF8fo2jpAJ7vo6BUavrb/tvvfkV0LyeFAZV1LcytYZe71aLjCHZdPzSrs8gYlE3VuAaFvxorGdF9Sb/yefZ+0w3N6d/gNFg/fR/r8BnoPfJMg7Y/8EaTkYwesQOt7i4sAx0k9A8hrgZAgapnXRgdZfa6doSg3vx93jOsPr0RbwZIqyP7QKSJ3BUGnDYF2pF6tMr6L2cfA7ENRgYSpEQ3KgndqPOHphTWkrTLTMEOB6AjxJaMLTIYaK172E6PQU+ycO+L6LVWss8O8PnVgW2XhWKbjaLVxXUiay8iv7gcKuzY0aNeAGpdDFEqIFSLIVqDSqsnKlKFMhQoyyFukAlz31Q+7rdORre5A+MTr7D31pXEtBr/fUh4LRfbgKOSRyNS5cCuG9R6+uv5LyyvFXPxkXVwBI4ezMc6PFVi+tvDD6NlLrvQlvmvAbKFolah4JH3FSh6xqJb5v56Rdl8nhsqsb/8Sg26YivWkQupGq5AgZOCaRmEz0uicoKB7FvfwRpfjfLsEF3nIZKfryShwORZAxzUf/0OUH4akFxXLOXii4dyS+gpUg/kEt90WvWvOcRd/il3XmzhjJcTpFT6J0gPvYuMwgRyh5djfjeNjGIbtvVmSn4FahzY7Y3b9BUqFcogILQvhqEaNDojhqEG+m4xERc6k716D4oJxywMvfdx3l63CNPlIUxROrE7FKh6aokaFYVapcPYXw0YMY5z/YjyHQWYV5speioJa5kdp1KFwmFHnTiT9YM2exE3x9EMNGAIPdFK/JuJH3gUhZzxA8oeDGgl/b0TPZfPrlhHQP0Q/WD19cyaullG+iunQh2ClJZWh7UAU46U/DcNU4z8qQuyhKJWoeDWJ38i1VrFlD7urwdgVwb6/mk896IEseg0gJQbYzE9ZaBovhHn6hSS12tZsyGV2JKJWJ6sPt/AFFCDyZhKyUP55HrSOt0IO46TgIwp1h2PW1g8OoH//GrHtquIYltdZlVodET1NGAcbuKt41N4hpb2UfCUX5gyN4G0O/qiVukwjDZgGBqHcUwKOp261cVYK60WrBXlFK3OZc6CBMy7IGnlQ2g8HaF3bBM36P7GjoHHGbQgipLKGdK+fmMbjgq1Mkcbxc6Zs5h1epMXA/DqcG7+kMzRD5LWSvxnbr4Dw40yJtwc6kCSLt11+vsuno/uX3d+YSLVTTyTPBPrQ/nkSU5/hzlaG+nx1Q5rAZoHD8rIfxMwvSVPLKQLRURPbp2QheLmBKzzE0mUcGvfIQqyHl1C96V/YYJH781BfNo7lCTHEd7RCSiZYraQ92QacbNeOZ/QA2pIHDWRwnFrsLYywMf36Cl4fxZ8XUD4ChWqrk1OV9ixO4GDHZg5VkaBpSk9h2NSWNCsL2LK2Y1qf3Vg/7W+JOEsp2iLDSeg1OrpWx+ecJ2RWKWC2LFJ8EMGfftbMWYk2nUAAAixSURBVPWUOozXzplLBxFdWoK1hvNdn/UDnVpDEVpf3QDARsmuwdx86Saq5e3U24CuZC1ZCZtXth7/h3Zgv/Eyj7/y59nB4Pi5jH21afp7ljsn/42Qs0X6+tWtNl+I9Gffisb0gfz8Z5qAumA+6RIjQ7pQnKjAodARK6dCpdWj25rH4RMS7qmtJu2VZaR2AIWjlLhHDJhHPof5bEIPCCB57GOUTCth75OyannALor2Ib2S2P0QmV+D6uYkUiYaMQyNQn32Y1JRgqW4GPNr6WRuWMHy5N6YvN545yJ0Q6zMGTeCrFILVruThvXyljhbX1eoVGiVIViHTJa3NkH5RVyryCMtPoa0QgvFZXVfpnNVHFf8asde/wFTqLTodQosiut4oPxnOSFojMNMxmZP4j/r3DB3ydjXYYq9l78/oiAgoBtPTxrOmmGP8mbl+rrzqqG8+v/S2O1V+tvNDkckt3tyaeVPXue/8kqQqpry2iiuNpH+mpyFMGxkFObhcW/bOY6jOAOERZCbM5f6BRUAJTmpsZgnlFAi+yV5weFSVi6byw+l+/j4/adIGV9N9IByitGh3laI4vYEHhidzFf/OEAXe6kPDJ4mvDsQnETuh7louipRePoGa5w4KmyYp8UQV32xjK9rHVdc5WTP1Umkz8tCo6obIu0RTgd2u42i11Iw77+US/CBUCivp6T4AyxrN5CTO4WU8Scbx/+dk0l44DlKXglFW+vN7FE7p34CKOWZxAFAvUjQn69zUvkq4QKnPy/zX5EMkx4LxemuenZWAtZVUFFEwYo8GXsPlFNUAaVWPduvBsLhhgqL5KecoyyfpO9mYP6obV9S8KV6dh05Q8muXeypCuWafldw1aVwdcfjdCrfTe8re8GbR4lfacW0IpyYoFSKZmejffJXLr+nkm52OKkeyG+nOvHDTw6+2XmQoyE9uOmGrtwYuptAj6dan6ZonYr4T2LRBNmwrjZjKy2ioLjh/eUUrXeiHao5126h0hmJitSg02kwPhaPavT3FP/zeukb5XY/yfrvjCRsMqKtseP4wUye1VGXHopd+6C8xoA+UlFXFeqpxTg9AeNzS9nRPYjBnpawOoRiLiqnuHgr1hOd0Q7uh1bTnahLAlAGnkYfdS05ry5vHv9PHUfz5CVoa6txnFZS+UsFxbYyLF/bcFyswXBTXwx9AlHJXCYxONzOVOsMzCvbXiTsPzuxHAS+PQAVwV7lP9sWJ3kngR49ie1W4dGdHgvF95/OYvwXKlShoAo6QNpTZsnBrLOogpX/Zdqvdux/nc32QfIeA/+/vbONbaoKA/BTGKOEbLlzq7sVCBZlowZ0HU6lcUZrAOmCbiVBw7KhfGiw/HBSMYQFE5kkGsYPoESUCZgtwURn+GqAxAoWi2bSAVu8GEyqcbgLSLgDMsoYmT+6j65r6e0+GD/u87M9vT3v23Pe3vfjvicNz74azO+3Yhl6kjcO02m78ivzqo/g3ODC+sbrLDO04vd58dR7eK8xiNyiIDy9hKo9Es6ZHoocAG48Ww4j7XHjrKik/DcFYbKIyVKEfYGdV9daMV7xI5334/zwG7rKN7DLcIKE/VXaf6delpHm6Piks9uVKCgiXxQwF1oxdf+72+d2jw8F8fskZJ+byk0BpJaeINYMvO1PYkkyeJvadoYjePnFoKM07MsgZhnD2Y84n1Eu1FG1NUBrT7xAL6BHIb1tKc8krF4RkPZ/Sv7OMWH9l8yltFv/9du/ZHmk/nfH0P9uN86KpSyK0r+9YlWv/h2vuOGdWryvXU8yfSpy9tjeEV5/fQT2vssiT8/++3to++/bj3HukZHtX9DlUjf5pERc8nUrdQsHNb2BHCxFVzuUC9zGUy9iqxjsTbQaLpA1dRrC5AKWl9mgwUsgZMFa4sK+qopdESNDsofVBaX436zi+zHbKClYzWHfZuoanNT1jUKRFa61BGjEjK3MTPCrWpqnXuWuiqfd5dM/IaXMYf2xOioLTarcDkdkyrIzRNDnZvViF57TAmsKk4t+B88eBdGGa2sVyxdYEJPtsn1TQWqooWqZi/qzuazLTWQoFEzmHITJT6nX/8rd/JCyjpdV678OyTwu+RoLcvnxgIjtg5Fcf/0Z9v23T/3wpAzFqW0rWHEw2RnF4a9TkKE2txOLdq6FZGoWGqkZikX/796L9U77FDYaXOTnHaDYakTPDtZ7m5GvXkLWhy08N2Xkm9kUr93E8YwT6CjDk9XIMuMEZCFiTCgbMVMkzzYDkRDbVx6lMW8dx9vVuV9C/mLWPP8Z1bZpVItmrC9ZMT3eU8cQRm+yYEbqTRNCiOApL9KfAQ77GpEVEGaXsTnpPjoiE6fPJ0/ZT2V5gO/mFmErtGF9VMBUEBFEjOJWSzhl2drkwX/Sj8cnoZBNsRHGQcKKRH1OCdXZDvIth3C8MIUJ7KTy2LnwHUo//Ys4PqolWNSBwA78D3+OY4D+RcQskfx5szByC/fbhwjM3kIwZzC9CjtpC8nsHeH1F8mw7z/Di6qH67q6uqJaefzMhc0bB5w92hujGE5ixijUnr2YReOZliE16o3E9IQeSyr0nD3ZT/50kdTr8sB+Gukz0U3U00FXuDV9dE1A5izupI6HeO8jkpouR9USqJE/DeWujkDTZeSLzXiDN4BbBP0nw8VX3dcObwjAkIs9dxLmWQ9hGn81QfFRDPmj5jzOmMsfl2+HYzb/nOfIub7Frly8RAg94qS+hzcyHnuOZ6eKzLRMIi/7Otn/Nt2jSjWG/Clp0BkjjpCSiXL7LiHGIsSSa6yA3AHEe580SLkR1cwlkfw9WLkyFgbR0TEmjxj8GGSI9/v3xiiGk3gxCstbA15SbSjuH6N9SKvahTJSaPJr8o/yIcUxDMWD/VCYhobGA0EM70pkfOa0+z+TXjJG8Dg2NUzU5NfkH8XvH235YxPD9dDQ0NDoj+Z6aGhoJEQzFBoaGgnRDIWGhkZC/gea+MFCu/b7NwAAAABJRU5ErkJggg==\" data-image-state=\"image-loaded\"\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.5px; text-align: left; transform-origin: 309.5px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eExample 1\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.5px; text-align: left; transform-origin: 309.5px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eStarting position:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003einput = [ ...\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e    \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e'rnbqkbnr'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e    \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e'pppppppp'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e    \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e'........'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e    \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e'........'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e    \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e'........'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e    \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e'........'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e    \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e'PPPPPPPP'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e    \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e'RNBQKBNR']\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003eoutput =\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e  'rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.5px; text-align: left; transform-origin: 309.5px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eExample 2\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.5px; text-align: left; transform-origin: 309.5px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eAfter white plays e4:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003einput = [ ...\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e    \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e'rnbqkbnr'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e    \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e'pppppppp'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e    \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e'........'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e    \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e'........'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e    \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e'....P...'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e    \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e'........'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e    \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e'PPPP.PPP'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e    \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e'RNBQKBNR']\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003eoutput =\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e  'rnbqkbnr/pppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBNR'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.5px; text-align: left; transform-origin: 309.5px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.5px; text-align: left; transform-origin: 309.5px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eNote: Empty squares before the P are \"4\", the P itself, then \"3\" empty squares after.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function fen = fenNotation(board)\r\n  fen = '';\r\nend\r\n","test_suite":"%% Test 1: Starting position\r\nboard = ['rnbqkbnr';\r\n         'pppppppp';\r\n         '........';\r\n         '........';\r\n         '........';\r\n         '........';\r\n         'PPPPPPPP';\r\n         'RNBQKBNR'];\r\nassert(isequal(fenNotation(board), 'rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR'))\r\n\r\n%% Test 2: After 1.e4\r\nboard = ['rnbqkbnr';\r\n         'pppppppp';\r\n         '........';\r\n         '........';\r\n         '....P...';\r\n         '........';\r\n         'PPPP.PPP';\r\n         'RNBQKBNR'];\r\nassert(isequal(fenNotation(board), 'rnbqkbnr/pppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBNR'))\r\n\r\n%% Test 3: After 1.e4 c5\r\nboard = ['rnbqkbnr';\r\n         'pp.ppppp';\r\n         '........';\r\n         '..p.....';\r\n         '....P...';\r\n         '........';\r\n         'PPPP.PPP';\r\n         'RNBQKBNR'];\r\nassert(isequal(fenNotation(board), 'rnbqkbnr/pp1ppppp/8/2p5/4P3/8/PPPP1PPP/RNBQKBNR'))\r\n\r\n%% Test 4: After 1.e4 c5 2.Nf3\r\nboard = ['rnbqkbnr';\r\n         'pp.ppppp';\r\n         '........';\r\n         '..p.....';\r\n         '....P...';\r\n         '.....N..';\r\n         'PPPP.PPP';\r\n         'RNBQKB.R'];\r\nassert(isequal(fenNotation(board), 'rnbqkbnr/pp1ppppp/8/2p5/4P3/5N2/PPPP1PPP/RNBQKB1R'))\r\n\r\n%% Test 5: Complex middle game position\r\nboard = ['r.bk...r';\r\n         'p..pBpNp';\r\n         'n....n..';\r\n         '.p.NP..P';\r\n         '......P.';\r\n         '...P....';\r\n         'P.P.K...';\r\n         'q.....b.'];\r\nassert(isequal(fenNotation(board), 'r1bk3r/p2pBpNp/n4n2/1p1NP2P/6P1/3P4/P1P1K3/q5b1'))\r\n\r\n%% Test 6: Empty board\r\nboard = ['........';\r\n         '........';\r\n         '........';\r\n         '........';\r\n         '........';\r\n         '........';\r\n         '........';\r\n         '........'];\r\nassert(isequal(fenNotation(board), '8/8/8/8/8/8/8/8'))\r\n\r\n%% Test 7: Only kings\r\nboard = ['....k...';\r\n         '........';\r\n         '........';\r\n         '........';\r\n         '........';\r\n         '........';\r\n         '........';\r\n         '....K...'];\r\nassert(isequal(fenNotation(board), '4k3/8/8/8/8/8/8/4K3'))\r\n\r\n%% Test 8: Single piece per row\r\nboard = ['r.......';\r\n         '.n......';\r\n         '..b.....';\r\n         '...q....';\r\n         '....k...';\r\n         '.....B..';\r\n         '......N.';\r\n         '.......R'];\r\nassert(isequal(fenNotation(board), 'r7/1n6/2b5/3q4/4k3/5B2/6N1/7R'))\r\n\r\n%% Test 9: Alternating pieces and spaces\r\nboard = ['r.r.r.r.';\r\n         '.p.p.p.p';\r\n         'n.n.n.n.';\r\n         '.b.b.b.b';\r\n         'B.B.B.B.';\r\n         '.N.N.N.N';\r\n         'P.P.P.P.';\r\n         '.R.R.R.R'];\r\nassert(isequal(fenNotation(board), 'r1r1r1r1/1p1p1p1p/n1n1n1n1/1b1b1b1b/B1B1B1B1/1N1N1N1N/P1P1P1P1/1R1R1R1R'))\r\n\r\n%% Test 10: All pawns\r\nboard = ['pppppppp';\r\n         'pppppppp';\r\n         'pppppppp';\r\n         'pppppppp';\r\n         'PPPPPPPP';\r\n         'PPPPPPPP';\r\n         'PPPPPPPP';\r\n         'PPPPPPPP'];\r\nassert(isequal(fenNotation(board), 'pppppppp/pppppppp/pppppppp/pppppppp/PPPPPPPP/PPPPPPPP/PPPPPPPP/PPPPPPPP'))\r\n\r\n%% Test 11: After 1.d4 Nf6 2.c4 e6\r\nboard = ['rnbqkb.r';\r\n         'pppp.ppp';\r\n         '....pn..';\r\n         '........';\r\n         '..PP....';\r\n         '........';\r\n         'PP..PPPP';\r\n         'RNBQKBNR'];\r\nassert(isequal(fenNotation(board), 'rnbqkb1r/pppp1ppp/4pn2/8/2PP4/8/PP2PPPP/RNBQKBNR'))\r\n\r\n%% Test 12: After 1.e4 e5 2.Nf3 Nc6 3.Bb5\r\nboard = ['r.bqkbnr';\r\n         'pppp.ppp';\r\n         '..n.....';\r\n         '.B..p...';\r\n         '....P...';\r\n         '.....N..';\r\n         'PPPP.PPP';\r\n         'RNBQK..R'];\r\nassert(isequal(fenNotation(board), 'r1bqkbnr/pppp1ppp/2n5/1B2p3/4P3/5N2/PPPP1PPP/RNBQK2R'))\r\n\r\n%% Test 13: Endgame - King and pawns\r\nboard = ['........';\r\n         '...k....';\r\n         '..p.p...';\r\n         '........';\r\n         '........';\r\n         '..P.P...';\r\n         '...K....';\r\n         '........'];\r\nassert(isequal(fenNotation(board), '8/3k4/2p1p3/8/8/2P1P3/3K4/8'))\r\n\r\n%% Test 14: All pieces on first rank\r\nboard = ['rnbqkbnr';\r\n         '........';\r\n         '........';\r\n         '........';\r\n         '........';\r\n         '........';\r\n         '........';\r\n         'RNBQKBNR'];\r\nassert(isequal(fenNotation(board), 'rnbqkbnr/8/8/8/8/8/8/RNBQKBNR'))\r\n\r\n%% Test 15: Pieces at edges\r\nboard = ['r......r';\r\n         'p......p';\r\n         '........';\r\n         '........';\r\n         '........';\r\n         '........';\r\n         'P......P';\r\n         'R......R'];\r\nassert(isequal(fenNotation(board), 'r6r/p6p/8/8/8/8/P6P/R6R'))\r\n\r\n%% Test 16: After 1.Nf3 Nf6 2.g3 g6\r\nboard = ['rnbqkb.r';\r\n         'pppppp.p';\r\n         '.....np.';\r\n         '........';\r\n         '........';\r\n         '.....NP.';\r\n         'PPPPPP.P';\r\n         'RNBQKB.R'];\r\nassert(isequal(fenNotation(board), 'rnbqkb1r/pppppp1p/5np1/8/8/5NP1/PPPPPP1P/RNBQKB1R'))\r\n\r\n%% Test 17: Queen's Gambit Declined\r\nboard = ['rnbqkb.r';\r\n         'ppp..ppp';\r\n         '....pn..';\r\n         '...p....';\r\n         '..PP....';\r\n         '..N.....';\r\n         'PP..PPPP';\r\n         'R.BQKBNR'];\r\nassert(isequal(fenNotation(board), 'rnbqkb1r/ppp2ppp/4pn2/3p4/2PP4/2N5/PP2PPPP/R1BQKBNR'))\r\n\r\n%% Test 18: Scattered position\r\nboard = ['...q....';\r\n         '........';\r\n         '.k....n.';\r\n         '........';\r\n         '.....P..';\r\n         '..N.....';\r\n         '........';\r\n         '...Q.K..'];\r\nassert(isequal(fenNotation(board), '3q4/8/1k4n1/8/5P2/2N5/8/3Q1K2'))\r\n\r\n%% Test 19: Dense position\r\nboard = ['rnbqkbnr';\r\n         'pppppppp';\r\n         '..N.....';\r\n         '........';\r\n         '........';\r\n         '........';\r\n         'PPPPPPPP';\r\n         'R.BQKBNR'];\r\nassert(isequal(fenNotation(board), 'rnbqkbnr/pppppppp/2N5/8/8/8/PPPPPPPP/R1BQKBNR'))\r\n\r\n%% Test 20: Single empty squares between pieces\r\nboard = ['r.b.k.b.';\r\n         'p.p.p.p.';\r\n         '.n.q.n.r';\r\n         '........';\r\n         '........';\r\n         '.N.Q.N.R';\r\n         'P.P.P.P.';\r\n         'R.B.K.B.'];\r\nassert(isequal(fenNotation(board), 'r1b1k1b1/p1p1p1p1/1n1q1n1r/8/8/1N1Q1N1R/P1P1P1P1/R1B1K1B1'))\r\n","published":true,"deleted":false,"likes_count":0,"comments_count":0,"created_by":7,"edited_by":7,"edited_at":"2026-01-08T15:31:59.000Z","deleted_by":null,"deleted_at":null,"solvers_count":8,"test_suite_updated_at":"2025-12-24T20:06:01.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2025-12-24T19:24:48.000Z","updated_at":"2026-02-26T10:51:57.000Z","published_at":"2025-12-24T20:06:01.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eNote: This problem is the reverse, or complement, of\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/61155-fen-to-chess-board\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eProblem 61155 - FEN to Chess Board\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eGiven an 8-by-8 character matrix representing a chess board, convert it to FEN (\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://en.wikipedia.org/wiki/Forsyth%E2%80%93Edwards_Notation\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eForsyth-Edwards Notation\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e) board position format.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe input matrix uses:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eDots (\\\".\\\") for empty squares\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eLetters for pieces: \\\"rnbqkp\\\" (black pieces) and \\\"RNBQKP\\\" (white pieces)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFEN notation encodes each row from top to bottom, separated by slashes (\\\"/\\\"). Consecutive empty squares are replaced by their count (1-8).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"268\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"266\\\"/\u003e\u003cw:attr w:name=\\\"verticalAlign\\\" w:val=\\\"baseline\\\"/\u003e\u003cw:attr w:name=\\\"altText\\\" w:val=\\\"\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId1\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eExample 1\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eStarting position:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003einput = [ ...\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e    \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e'rnbqkbnr'\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e    \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e'pppppppp'\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e    \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e'........'\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e    \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e'........'\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e    \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e'........'\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e    \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e'........'\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e    \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e'PPPPPPPP'\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e    \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e'RNBQKBNR']\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eoutput =\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e  'rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR'\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eExample 2\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eAfter white plays e4:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003einput = [ ...\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e    \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e'rnbqkbnr'\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e    \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e'pppppppp'\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e    \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e'........'\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e    \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e'........'\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e    \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e'....P...'\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e    \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e'........'\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e    \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e'PPPP.PPP'\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e    \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e'RNBQKBNR']\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eoutput =\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e  'rnbqkbnr/pppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBNR'\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eNote: Empty squares before the P are \\\"4\\\", the P itself, then \\\"3\\\" empty squares after.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\",\"relationship\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"target\":\"/media/image1.png\",\"relationshipId\":\"rId1\"}]},{\"partUri\":\"/media/image1.png\",\"contentType\":\"image/png\",\"content\":\"data:image/png;base64,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\",\"relationship\":null}],\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"target\":\"/matlab/document.xml\",\"relationshipId\":\"rId1\"}]}"},{"id":45240,"title":"Can the knight take out the pawn?","description":"* position of knight = k\r\n* position of pawns  = p\r\n\r\ncan the knight take out those pawns?\r\n\r\n* k='Nf4'\r\n* p={'g6','g7'}\r\n\r\nthen output should be [1,0]\r\n\r\n","description_html":"\u003cul\u003e\u003cli\u003eposition of knight = k\u003c/li\u003e\u003cli\u003eposition of pawns  = p\u003c/li\u003e\u003c/ul\u003e\u003cp\u003ecan the knight take out those pawns?\u003c/p\u003e\u003cul\u003e\u003cli\u003ek='Nf4'\u003c/li\u003e\u003cli\u003ep={'g6','g7'}\u003c/li\u003e\u003c/ul\u003e\u003cp\u003ethen output should be [1,0]\u003c/p\u003e","function_template":"function y = knight_move(k,p)\r\n  y = x;\r\nend","test_suite":"%%\r\nk = 'Nd5';\r\np={'c3','c4','d3','e3','f4','f5','f6','g2','a5'}\r\ny_correct =  [1     0     0     1     1     0     1     0     0];\r\nassert(isequal(knight_move(k,p),y_correct))\r\n\r\n%%\r\nk = 'Ne3';\r\np={'c3','c4','d3','f4','f5','f6','g2','a5'}\r\ny_correct =  [0     1     0      0     1     0     1     0];\r\nassert(isequal(knight_move(k,p),y_correct))\r\n\r\n%%\r\nk = 'Na8';\r\np={'c3','a7','a6','b6','c6','b2','f6'}\r\ny_correct = [ 0     0     0     1     0     0     0];\r\nassert(isequal(knight_move(k,p),y_correct))\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":363598,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":14,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2019-12-21T22:12:27.000Z","updated_at":"2026-01-23T13:26:38.000Z","published_at":"2019-12-21T22:18:45.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eposition of knight = k\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eposition of pawns = p\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ecan the knight take out those pawns?\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ek='Nf4'\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ep={'g6','g7'}\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ethen output should be [1,0]\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":45427,"title":"King's Cage","description":"Given the position of the king on the chessboard, determine the minimum number of steps it'll require to reach the destination.\r\n\r\n\u003chttps://en.wikipedia.org/wiki/Chess#Movement\u003e\r\n\r\nFor simplicity, numerical notation is used to represent the positions.","description_html":"\u003cp\u003eGiven the position of the king on the chessboard, determine the minimum number of steps it'll require to reach the destination.\u003c/p\u003e\u003cp\u003e\u003ca href = \"https://en.wikipedia.org/wiki/Chess#Movement\"\u003ehttps://en.wikipedia.org/wiki/Chess#Movement\u003c/a\u003e\u003c/p\u003e\u003cp\u003eFor simplicity, numerical notation is used to represent the positions.\u003c/p\u003e","function_template":"function i = king(x,y)","test_suite":"%%\r\nx=[1,1];\r\ny=[5,5];\r\nassert(isequal( king(x,y),4))\r\n\r\n%%\r\nx=[6,6];\r\ny=[2,3];\r\nassert(isequal( king(x,y),4))\r\n\r\n%%\r\nx=[5,1];\r\ny=[5,5];\r\nassert(isequal( king(x,y),4))\r\n\r\n%%\r\nx=[2,3];\r\ny=[8,8];\r\nassert(isequal( king(x,y),6))\r\n\r\n%%\r\nx=[2,8];\r\ny=[7,1];\r\nassert(isequal( king(x,y),7))\r\n\r\n%%\r\nx=[1,4];\r\ny=[8,3];\r\nassert(isequal( king(x,y),7))\r\n\r\n\r\n%%\r\nx=[5,8];\r\ny=[5,8];\r\nassert(isequal( king(x,y),0))\r\n\r\n\r\n%%\r\nx=[1,4];\r\ny=[3,4];\r\nassert(isequal( king(x,y),2))\r\n","published":true,"deleted":false,"likes_count":2,"comments_count":0,"created_by":363598,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":57,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2020-04-07T06:55:52.000Z","updated_at":"2026-03-16T10:45:46.000Z","published_at":"2020-04-07T06:55:52.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eGiven the position of the king on the chessboard, determine the minimum number of steps it'll require to reach the destination.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:hyperlink w:docLocation=\\\"https://en.wikipedia.org/wiki/Chess#Movement\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026lt;https://en.wikipedia.org/wiki/Chess#Movement\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026gt;\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFor simplicity, numerical notation is used to represent the positions.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":1174,"title":"Wheat on a chessboard pt 2","description":"If a chessboard were to have wheat placed upon each square such that x grains were placed on the first square and each successive square after had y times the amount of grains as the square before. How many grains of wheat would be on the chessboard at the finish?\r\n\r\nAssume the chess board is n by n squares.","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.4333px; min-height: 0px; white-space: normal; color: rgb(0, 0, 0); font-family: Menlo, Monaco, Consolas, monospace; font-style: normal; font-size: 14px; font-weight: 400; text-decoration: rgb(0, 0, 0); white-space: normal; \"\u003e\u003cdiv style=\"block-size: 93px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 46.5px; transform-origin: 407px 46.5px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 63px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 31.5px; text-align: left; transform-origin: 384px 31.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 384px 8px; transform-origin: 384px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eIf a chessboard were to have wheat placed upon each square such that x grains were placed on the first square and each successive square after had y times the amount of grains as the square before. How many grains of wheat would be on the chessboard at the finish?\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 136px 8px; transform-origin: 136px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eAssume the chess board is n by n squares.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function A = wheat_chess(x,y,n)\r\n  A = x + y + n;\r\nend","test_suite":"%%\r\nx = 56;\r\ny = 1;\r\nn = 1;\r\nA_correct = 56;\r\nassert(isequal(wheat_chess(x,y,n),A_correct))\r\n\r\n%%\r\nx = 1;\r\ny = 2;\r\nn = 8;\r\nA_correct = 18446744073709551615;\r\nassert(isequal(wheat_chess(x,y,n),A_correct))\r\n\r\n\r\n%%\r\nx = 5;\r\ny = 3;\r\nn = 2;\r\nA_correct = 200;\r\nassert(isequal(wheat_chess(x,y,n),A_correct))\r\n\r\n%%\r\nx = 10;\r\ny = 5;\r\nn = 3;\r\nA_correct = 4882810;\r\nassert(isequal(wheat_chess(x,y,n),A_correct))\r\n\r\n%%\r\nx = 1;\r\ny = 0;\r\nn = 1;\r\nA_correct = 1;\r\nassert(isequal(wheat_chess(x,y,n),A_correct))\r\n\r\n\r\n%%\r\nx = 12;\r\ny = 1;\r\nn = 3;\r\nA_correct = 108;\r\nassert(isequal(wheat_chess(x,y,n),A_correct))\r\n\r\n\r\n%%\r\nx = 0;\r\ny = 1e5;\r\nn = 7;\r\nA_correct = 0;\r\nassert(isequal(wheat_chess(x,y,n),A_correct))\r\n\r\n%%\r\nx = 6;\r\ny = 2;\r\nn = 4;\r\nA_correct = 393210;\r\nassert(isequal(wheat_chess(x,y,n),A_correct))","published":true,"deleted":false,"likes_count":0,"comments_count":6,"created_by":9554,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":130,"test_suite_updated_at":"2021-05-05T10:17:41.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2013-01-04T18:21:52.000Z","updated_at":"2026-02-15T07:12:03.000Z","published_at":"2013-01-04T18:21:52.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eIf a chessboard were to have wheat placed upon each square such that x grains were placed on the first square and each successive square after had y times the amount of grains as the square before. How many grains of wheat would be on the chessboard at the finish?\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eAssume the chess board is n by n squares.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\",\"relationship\":null}],\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"target\":\"/matlab/document.xml\",\"relationshipId\":\"rId1\"}]}"},{"id":45329,"title":"Castling-01","description":"Given the position of only one player's chess pieces(some of them) on the chessboard, figure out whether castling is valid or not.\r\n\r\n\u003chttps://en.wikipedia.org/wiki/Castling\u003e","description_html":"\u003cp\u003eGiven the position of only one player's chess pieces(some of them) on the chessboard, figure out whether castling is valid or not.\u003c/p\u003e\u003cp\u003e\u003ca href = \"https://en.wikipedia.org/wiki/Castling\"\u003ehttps://en.wikipedia.org/wiki/Castling\u003c/a\u003e\u003c/p\u003e","function_template":"function y = castling_01(a)\r\n  y = x;\r\nend","test_suite":"%%\r\na={'Ra1','Ka7'}\r\nassert(isequal(castling_01(a),0))\r\n%%\r\na={'Ra1','Rh1'}\r\nassert(isequal(castling_01(a),0))\r\n%%\r\na={'Ra1','Rh1','Kh8'}\r\nassert(isequal(castling_01(a),0))\r\n%%\r\na={'Ra1','Rc1','Kh5'}\r\nassert(isequal(castling_01(a),0))\r\n%%\r\na={'Ra1','Rh1','Ke1'}\r\nassert(isequal(castling_01(a),1))\r\n%%\r\na={'Ra1','Rh1','Ke1'}\r\nassert(isequal(castling_01(a),1))\r\n%%\r\na={'Rh1','Ke1'}\r\nassert(isequal(castling_01(a),1))\r\n%%\r\na={'Rh5','Ke5'}\r\nassert(isequal(castling_01(a),0))\r\n%%\r\na={'Ra8','Ke8'}\r\nassert(isequal(castling_01(a),1))\r\n%%\r\na={'Rd8','Rh8','Ke8'}\r\nassert(isequal(castling_01(a),1))\r\n%%\r\na={'Rh8','Kd8'}\r\nassert(isequal(castling_01(a),0))","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":363598,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":16,"test_suite_updated_at":"2020-02-15T23:25:16.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2020-02-15T12:59:18.000Z","updated_at":"2026-01-23T13:34:49.000Z","published_at":"2020-02-15T23:08:34.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eGiven the position of only one player's chess pieces(some of them) on the chessboard, figure out whether castling is valid or not.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:hyperlink w:docLocation=\\\"https://en.wikipedia.org/wiki/Castling\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026lt;https://en.wikipedia.org/wiki/Castling\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026gt;\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":45336,"title":"chess position","description":"given the position of a chess piece in algebric notation, convert it into 8 by 8 matrix format. For example,\r\n\r\n* 'Qd5' \u003e\u003e [3,4]\r\n\r\nNb. invalid ones should be represented by nan.\r\n","description_html":"\u003cp\u003egiven the position of a chess piece in algebric notation, convert it into 8 by 8 matrix format. For example,\u003c/p\u003e\u003cul\u003e\u003cli\u003e'Qd5' \u0026gt;\u0026gt; [3,4]\u003c/li\u003e\u003c/ul\u003e\u003cp\u003eNb. invalid ones should be represented by nan.\u003c/p\u003e","function_template":"function a = chess_pos(pos)\r\n  y = x;\r\nend","test_suite":"%%\r\npos={'Qe5','Rb2'}\r\na=[4,1;4,1]\r\nassert(isequal(chess_pos(pos),a))\r\n\r\n%%\r\npos={'a5','Nb8'}\r\na=[0,1;4,7]\r\nassert(isequal(chess_pos(pos),a))\r\n\r\n%%\r\npos={'Ng8'}\r\na=[6;7]\r\nassert(isequal(chess_pos(pos),a))\r\n\r\n%%\r\npos={'f1','Qb1','Bd9','c3','Rg7'}\r\na=[  5     1   NaN     2     6;\r\n     0     0   NaN     2     6]\r\nassert(isequaln(chess_pos(pos),a))\r\n\r\n%%\r\npos={'k1','Kc3','Rh9'}\r\na= [NaN     2   NaN\r\n   NaN     2   NaN]\r\nassert(isequaln(chess_pos(pos),a))","published":true,"deleted":false,"likes_count":0,"comments_count":0,"created_by":363598,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":16,"test_suite_updated_at":"2020-02-17T05:55:18.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2020-02-16T23:12:04.000Z","updated_at":"2026-01-23T14:06:55.000Z","published_at":"2020-02-17T05:55:18.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003egiven the position of a chess piece in algebric notation, convert it into 8 by 8 matrix format. For example,\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e'Qd5' \u0026gt;\u0026gt; [3,4]\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eNb. invalid ones should be represented by nan.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":57660,"title":"Knight Moves?","description":"One of my favorite games are chess. Let’s do something with chess. If you don’t know chess, that’s completely fine. You can still solve this problem.\r\nA chess board has 8 rows and 8 columns. You can think of it as an 8-by-8 matrix. Now your board contains only one piece, a knight. It is placed at (x,y) position. For the picture below, the knight is at (5,5).\r\nA knight has 8 possible valid moves that are marked as cross in the picture. For example, a knight can move – ‘two steps right and one step up’; which brings it to position (4,7).\r\nWrite a code to find out those 8 valid positions from any input value of (x,y).\r\n\r\nOutput: (4,7), (6,7), (4,3), (6,3), (3,4), (3,6), (7,4), (7,6). \r\nUse an 8 by 2 matrix to represent the answer.\r\nUse sortrows() function to match the output","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.44px; min-height: 0px; white-space: normal; color: rgb(0, 0, 0); font-family: Menlo, Monaco, Consolas, monospace; font-style: normal; font-size: 14px; font-weight: 400; text-decoration: none solid rgb(0, 0, 0); white-space: normal; \"\u003e\u003cdiv style=\"block-size: 924.46px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 406.989px 462.23px; transform-origin: 406.996px 462.23px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 42.017px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 383.991px 21.0085px; text-align: left; transform-origin: 383.999px 21.0085px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eOne of my favorite games are chess. Let’s do something with chess. If you don’t know chess, that’s completely fine. You can still solve this problem.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42.017px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 383.991px 21.0085px; text-align: left; transform-origin: 383.999px 21.0085px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eA chess board has 8 rows and 8 columns. You can think of it as an 8-by-8 matrix. Now your board contains only one piece, a knight. It is placed at (x,y) position. For the picture below, the knight is at (5,5).\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42.017px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 383.991px 21.0085px; text-align: left; transform-origin: 383.999px 21.0085px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eA knight has 8 possible valid moves that are marked as cross in the picture. For example, a knight can move – ‘two steps right and one step up’; which brings it to position (4,7).\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.0085px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 383.991px 10.4972px; text-align: left; transform-origin: 383.999px 10.5043px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eWrite a code to find out those 8 valid positions from any input value of (x,y).\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 660.554px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 383.991px 330.27px; text-align: left; transform-origin: 383.999px 330.277px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cimg class=\"imageNode\" width=\"701\" height=\"655\" style=\"vertical-align: baseline;width: 701px;height: 655px\" src=\"data:image/png;base64,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\" data-image-state=\"image-loaded\"\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.0085px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 383.991px 10.4972px; text-align: left; transform-origin: 383.999px 10.5043px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eOutput: (4,7), (6,7), (4,3), (6,3), (3,4), (3,6), (7,4), (7,6). \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cul style=\"block-size: 40.8807px; font-family: Helvetica, Arial, sans-serif; list-style-type: square; margin-block-end: 20px; margin-block-start: 10px; margin-bottom: 20px; margin-top: 10px; perspective-origin: 390.994px 20.4403px; transform-origin: 390.994px 20.4403px; margin-top: 10px; margin-bottom: 20px; \"\u003e\u003cli style=\"background-position: 0px 50%; block-size: 20.4403px; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 362.997px 10.2131px; text-align: left; transform-origin: 362.997px 10.2202px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"background-position: 0% 0%; block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eUse an 8 by 2 matrix to represent the answer.\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"background-position: 0px 50%; block-size: 20.4403px; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 362.997px 10.2131px; text-align: left; transform-origin: 362.997px 10.2202px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"background-position: 0% 0%; block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eUse \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://www.mathworks.com/help/matlab/ref/double.sortrows.html\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003esortrows()\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"background-position: 0% 0%; block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e function to match the output\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003c/ul\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function out = knightmoves(x,y)\r\n  y = x;\r\nend","test_suite":"%%\r\nx = 1;\r\ny= 1;\r\nout_correct=[2 3;3 2]\r\nassert(isequal(knightmoves(x,y),out_correct))\r\n%%\r\nx = 1;\r\ny= 8;\r\nout_correct=[2 6;3 7]\r\nassert(isequal(knightmoves(x,y),out_correct))\r\n%%\r\nx = 8;\r\ny= 1;\r\nout_correct=[6 2;7 3]\r\nassert(isequal(knightmoves(x,y),out_correct))\r\n%%\r\nx = 8;\r\ny= 8;\r\nout_correct=[6 7;7 6]\r\nassert(isequal(knightmoves(x,y),out_correct))\r\n%%\r\nx = 5;\r\ny= 5;\r\nout_correct=[3     4;\r\n     3     6;\r\n     4     3;\r\n     4     7;\r\n     6     3;\r\n     6     7;\r\n     7     4;\r\n     7     6]\r\nassert(isequal(knightmoves(x,y),out_correct))\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":2294940,"edited_by":2294940,"edited_at":"2023-02-07T16:06:00.000Z","deleted_by":null,"deleted_at":null,"solvers_count":14,"test_suite_updated_at":"2023-02-07T16:06:00.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2023-02-07T15:49:55.000Z","updated_at":"2025-08-31T10:14:33.000Z","published_at":"2023-02-07T16:02:32.000Z","restored_at":null,"restored_by":null,"spam":null,"simulink":false,"admin_reviewed":false,"description_opc":"{\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eOne of my favorite games are chess. Let’s do something with chess. If you don’t know chess, that’s completely fine. You can still solve this problem.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eA chess board has 8 rows and 8 columns. You can think of it as an 8-by-8 matrix. Now your board contains only one piece, a knight. It is placed at (x,y) position. For the picture below, the knight is at (5,5).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eA knight has 8 possible valid moves that are marked as cross in the picture. For example, a knight can move – ‘two steps right and one step up’; which brings it to position (4,7).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eWrite a code to find out those 8 valid positions from any input value of (x,y).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"655\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"701\\\"/\u003e\u003cw:attr w:name=\\\"verticalAlign\\\" w:val=\\\"baseline\\\"/\u003e\u003cw:attr w:name=\\\"altText\\\" w:val=\\\"\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId1\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eOutput: (4,7), (6,7), (4,3), (6,3), (3,4), (3,6), (7,4), (7,6). \u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eUse an 8 by 2 matrix to represent the answer.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eUse \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/help/matlab/ref/double.sortrows.html\\\"\u003e\u003cw:r\u003e\u003cw:t\u003esortrows()\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e function to match the output\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\",\"relationship\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"target\":\"/media/image1.png\",\"relationshipId\":\"rId1\"}]},{\"partUri\":\"/media/image1.png\",\"contentType\":\"image/png\",\"content\":\"data:image/png;base64,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\",\"relationship\":null}],\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"target\":\"/matlab/document.xml\",\"relationshipId\":\"rId1\"}]}"},{"id":3057,"title":"Chess performance","description":"After Problems \u003chttp://www.mathworks.com/matlabcentral/cody/problems/3054-chess-elo-rating-system/ 3054\u003e and \u003chttp://www.mathworks.com/matlabcentral/cody/problems/3056-chess-probability/ 3056\u003e\r\n\r\n\r\nIn \u003chttp://en.wikipedia.org/wiki/Elo_rating_system Chess\u003e, performance isn't measured absolutely; it is inferred from wins (1), losses (0), and draws (0.5) against other players. A player's rating depends on the ratings of their opponents, and the results scored against them. The difference in rating between two players determines an estimate for the expected score between them.\r\n\r\nSupposing Player A was expected to score Ea points (but actually scored Sa).\r\n\r\nThe formula for updating his rating is :\r\n\r\n\u003c\u003chttp://upload.wikimedia.org/math/2/3/f/23fbcb658ac1e2565003c2190f28a21e.png\u003e\u003e\r\n\r\n* \r\n* \r\n\r\n\r\nThis update can be performed after each game or each tournament, or after any suitable rating period. \r\n\r\nSuppose Player A has a rating *Ra* of 1613, and plays in a five-round tournament. He (or she) loses to a player rated 1609, draws with a player rated 1477, defeats a player rated 1388, defeats a player rated 1586, and loses to a player rated 1720. The player's actual score *Sa* is (0 + 0.5 + 1 + 1 + 0) = 2.5. The expected score *Ea* , calculated according to the formula see in Problem 3056, was (0.506 + 0.686 + 0.785 + 0.539 + 0.351) = 2.867. Therefore the player's new rating *R'a* is (1613 + 32×(2.5 − 2.867)) = 1601. We assume that the *K* factor is always 32.\r\n\r\nI give you rating of Player A, ratings of their opponents and results. \r\n\r\nCompute the new rating (K = 32).\r\n\r\n\r\n","description_html":"\u003cp\u003eAfter Problems \u003ca href = \"http://www.mathworks.com/matlabcentral/cody/problems/3054-chess-elo-rating-system/\"\u003e3054\u003c/a\u003e and \u003ca href = \"http://www.mathworks.com/matlabcentral/cody/problems/3056-chess-probability/\"\u003e3056\u003c/a\u003e\u003c/p\u003e\u003cp\u003eIn \u003ca href = \"http://en.wikipedia.org/wiki/Elo_rating_system\"\u003eChess\u003c/a\u003e, performance isn't measured absolutely; it is inferred from wins (1), losses (0), and draws (0.5) against other players. A player's rating depends on the ratings of their opponents, and the results scored against them. The difference in rating between two players determines an estimate for the expected score between them.\u003c/p\u003e\u003cp\u003eSupposing Player A was expected to score Ea points (but actually scored Sa).\u003c/p\u003e\u003cp\u003eThe formula for updating his rating is :\u003c/p\u003e\u003cimg src = \"http://upload.wikimedia.org/math/2/3/f/23fbcb658ac1e2565003c2190f28a21e.png\"\u003e\u003cul\u003e\u003cli\u003e\u003c/li\u003e\u003cli\u003e\u003c/li\u003e\u003c/ul\u003e\u003cp\u003eThis update can be performed after each game or each tournament, or after any suitable rating period.\u003c/p\u003e\u003cp\u003eSuppose Player A has a rating \u003cb\u003eRa\u003c/b\u003e of 1613, and plays in a five-round tournament. He (or she) loses to a player rated 1609, draws with a player rated 1477, defeats a player rated 1388, defeats a player rated 1586, and loses to a player rated 1720. The player's actual score \u003cb\u003eSa\u003c/b\u003e is (0 + 0.5 + 1 + 1 + 0) = 2.5. The expected score \u003cb\u003eEa\u003c/b\u003e , calculated according to the formula see in Problem 3056, was (0.506 + 0.686 + 0.785 + 0.539 + 0.351) = 2.867. Therefore the player's new rating \u003cb\u003eR'a\u003c/b\u003e is (1613 + 32×(2.5 − 2.867)) = 1601. We assume that the \u003cb\u003eK\u003c/b\u003e factor is always 32.\u003c/p\u003e\u003cp\u003eI give you rating of Player A, ratings of their opponents and results.\u003c/p\u003e\u003cp\u003eCompute the new rating (K = 32).\u003c/p\u003e","function_template":"function y = new_elo(opponents_elo,res,elo_playerA)\r\n  y = x;\r\nend","test_suite":"%%\r\nplayera=1613;\r\nelos=[1609 1477 1388 1586 1720];\r\nres=[0 0.5 1 1 0];\r\nassert(isequal(new_elo(elos,res,playera),1601))\r\n%%\r\nplayera=1613;\r\nelos=[1609 1477 1586 1720];\r\nres=[0 1 1 1];\r\nassert(isequal(new_elo(elos,res,playera),1642))\r\n%%\r\nplayera=1613;\r\nelos=[1613 1613 1613 1613 1613];\r\nres=[0.5 0.5 0.5 0.5 0.5];\r\nassert(isequal(new_elo(elos,res,playera),1613))\r\n%%\r\nassert(isequal(new_elo([1800 1900 2000 2100 2200],[1 0 1 0 1],1900),1935))\r\n%% My new ELO\r\nplayera=1800;\r\nelos=[1399 1280 2166 1534 1768 1791 1540];\r\nres=[1 1 0 1 1 0 1];\r\nassert(isequal(new_elo(elos,res,playera),1811))\r\n%% The last game was critical (-32 points if I lost)\r\nplayera=1800;\r\nelos=[1399 1280 2166 1534 1768 1791 1540];\r\nres=[1 1 0 1 1 0 0];\r\nassert(isequal(new_elo(elos,res,playera),1779))\r\n%% Perfect tournament ?\r\nplayera=1800;\r\nelos=[1399 1280 2166 1534 1768 1791 1540];\r\nres=[1 1 1 1 1 1 1];\r\nassert(isequal(new_elo(elos,res,playera),1875))\r\n%% Caruana in 2014 Sinquefield Cup (notice that K=16 for these guys)\r\ncaruana=2801;\r\nelos = [2772 2768 2877 2805 2787  2772 2768 2877 2787 2805];\r\nres = [1 1 1 1 1 1 1 0.5 0.5 0.5];\r\nassert(isequal(new_elo(elos,res,caruana),2913))","published":true,"deleted":false,"likes_count":3,"comments_count":5,"created_by":5390,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":65,"test_suite_updated_at":"2015-03-02T20:49:24.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2015-02-28T23:49:25.000Z","updated_at":"2026-02-15T07:24:43.000Z","published_at":"2015-02-28T23:53:01.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/media/image1.png\"}],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eAfter Problems\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://www.mathworks.com/matlabcentral/cody/problems/3054-chess-elo-rating-system/\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e3054\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e and\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://www.mathworks.com/matlabcentral/cody/problems/3056-chess-probability/\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e3056\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eIn\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://en.wikipedia.org/wiki/Elo_rating_system\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eChess\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e, performance isn't measured absolutely; it is inferred from wins (1), losses (0), and draws (0.5) against other players. A player's rating depends on the ratings of their opponents, and the results scored against them. The difference in rating between two players determines an estimate for the expected score between them.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eSupposing Player A was expected to score Ea points (but actually scored Sa).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe formula for updating his rating is :\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId1\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis update can be performed after each game or each tournament, or after any suitable rating period.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eSuppose Player A has a rating\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eRa\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e of 1613, and plays in a five-round tournament. He (or she) loses to a player rated 1609, draws with a player rated 1477, defeats a player rated 1388, defeats a player rated 1586, and loses to a player rated 1720. The player's actual score\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eSa\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e is (0 + 0.5 + 1 + 1 + 0) = 2.5. The expected score\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eEa\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e , calculated according to the formula see in Problem 3056, was (0.506 + 0.686 + 0.785 + 0.539 + 0.351) = 2.867. Therefore the player's new rating\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eR'a\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e is (1613 + 32×(2.5 − 2.867)) = 1601. We assume that the\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eK\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e factor is always 32.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eI give you rating of Player A, ratings of their opponents and results.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eCompute the new rating (K = 32).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"},{\"partUri\":\"/media/image1.png\",\"contentType\":\"image/png\",\"content\":\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAANYAAAAWBAMAAABOJX+pAAAAMFBMVEX///8wMDDMzMwEBASKiooWFhZiYmKenp62trbm5uZQUFBAQEAMDAwiIiJ0dHQAAAB7s/cyAAAAAXRSTlMAQObYZgAAAzpJREFUeNq9VllIVFEY/mZxFmfcSAxCdJSoJKkRCiQhhyAKhZrESerJjBRc6ELQAmJTQRAFjpAPLdaET5EPPmRRJA4aSQulBrYQNiHai+aQozkq2n/uMs7cOSMW1A/33P/cf/nO+ZdzLiCTyYZ/TVqFWXDjv1Hz3+2rak1ayeJG9MBkSo92oiLLz1EZnAhkPxJ4grJiz/mmS279CM0SvUlfa2OVGpp7sDEtlbE/byiZ+gU88/RzNyvA8pIrcABtFIkcloYhGJ5zdExBkvkkPkfO11II6CsL8Vz6PVjcyRU4YeqjSNAyoTuAeZ7SUgI9AVlfkLCMlYBQz01XNUlnI+YD4fgIKPbSu5AeN2Gu5xgbK2jolHiDV8KapZCOPOViHaOVfeEJsmH4xPJGy0QNPXZeiTtRCTmGIb+ElW9D2+gctyF6YX7Hc2MKmd8z62UPDe0foLiMIveAuRNKxdVIdehbHmv8HtawlIjO2tloNYzXdYGbirNZ7D3nIJAzQsFBXnP6O4YveJVJv4S1bdTcvSusMfNgRXt6yH6bV2FYeD01L2Kyip5vvbiXh1XdsvV0eHLtsPginJP8FtR5YRALKUFVG7pe9LDwpcjzQ2xwsiGXUZ74sQgG8VgSjevEfGm7ZbVYyh+QUWqZ4y6X64TLJcLlZ0EQm9QjRgaMN9xn7qYYTYrJfgIdTIqxdG5YtZI+IXaq8uW7B42DzXxpNJbSvuwQQ+wrwDDzEKQh9zPgugs0LrOgToUXak2g7mu4ohi3sm8aSu+M2AMx7ZxJUWJbNlod0TFcR8sLMn+Up2+A+QjxgiqzGrtkIBmnSzGkjOw3++WFqboIQfcd4NyMqvuoCBc1rJCov3YIuL6Z9u4pUzUMuWzzKMYPYX6rt5Rf9QiFeTT/8UYF1bX7xT795URox+vbYwQtiR+3IInWfauodOk4wTvqtkfqWMrrA0erphVj6t+IM9yEjDg3ghHJTtUZJZN5pYcFjK1irPdGfdxUPRgHqxJG+fBIVYseK4wBOLWKcZIt8l5Gyc10PlROFTa8ktiAWjauJCfDpu3wxjduirod4y5sVWJ3xFooKiDaTJs22/vnYHvW9g8gtvNvC0XkMLGLXXkAAAAASUVORK5CYII=\"}]}"},{"id":3056,"title":"Chess probability","description":"The difference in the ratings between two players serves as a predictor of the outcome of a match (the \u003chttp://en.wikipedia.org/wiki/Elo_rating_system Elo rating system\u003e)\r\n\r\nIf Player A has a rating of Ra and Player B a rating of Rb, the formula for the expected score of Player A is :\r\n\r\n\u003c\u003chttp://upload.wikimedia.org/math/b/0/3/b0366725c224ee55eab6e2371dc6a0ef.png\u003e\u003e\r\n \r\n* \r\n \r\n\r\nTwo players with equal ratings who play against each other are expected to score an equal number of wins. A player whose rating is 100 points greater than their opponent's is expected to score 64%; if the difference is 200 points, then the expected score for the stronger player is 76%.\r\n\r\nI give you two ELOs, compute the expected score (round to 3 digits), or probability  that the first player wins.\r\n\r\n\r\n","description_html":"\u003cp\u003eThe difference in the ratings between two players serves as a predictor of the outcome of a match (the \u003ca href = \"http://en.wikipedia.org/wiki/Elo_rating_system\"\u003eElo rating system\u003c/a\u003e)\u003c/p\u003e\u003cp\u003eIf Player A has a rating of Ra and Player B a rating of Rb, the formula for the expected score of Player A is :\u003c/p\u003e\u003cimg src = \"http://upload.wikimedia.org/math/b/0/3/b0366725c224ee55eab6e2371dc6a0ef.png\"\u003e\u003cul\u003e\u003cli\u003e\u003c/li\u003e\u003c/ul\u003e\u003cp\u003eTwo players with equal ratings who play against each other are expected to score an equal number of wins. A player whose rating is 100 points greater than their opponent's is expected to score 64%; if the difference is 200 points, then the expected score for the stronger player is 76%.\u003c/p\u003e\u003cp\u003eI give you two ELOs, compute the expected score (round to 3 digits), or probability  that the first player wins.\u003c/p\u003e","function_template":"function y = expected_score(elo1,elo2)\r\n  y = x;\r\nend","test_suite":"%%\r\nx = 1800;\r\ny = 1800;\r\nassert(isequal(expected_score(x,y),0.5))\r\n%%\r\nx = 1900;\r\ny = 1800;\r\nassert(isequal(expected_score(x,y),0.64))\r\n%%\r\nx = 1900;\r\ny = 2000;\r\nassert(isequal(expected_score(x,y),0.36))\r\n%%\r\nx = 1900;\r\ny = 2100;\r\nassert(isequal(expected_score(x,y),0.24))\r\n%% My probability against Maxime Vachier-Lagrave (best french player)\r\nx = 1800;\r\ny = 2775;\r\nassert(isequal(expected_score(x,y),0.004))\r\n%% My probability against Magnus Carlsen (World Chess Champion)\r\nx = 1800;\r\ny = 2865;\r\nassert(isequal(expected_score(x,y),0.002))\r\n%% Magnus against Maxime\r\nx = 2865;\r\ny = 2775;\r\nassert(isequal(expected_score(x,y),0.627))\r\n%% Magnus Carlsen against Garry Kasparov (1999)\r\nx = 2865;\r\ny = 2851;\r\nassert(isequal(expected_score(x,y),0.52))\r\n%% Magnus Carlsen against Fabiano Caruana\r\nx = 2865;\r\ny = 2844;\r\nassert(isequal(expected_score(x,y),0.53))\r\n%% Bobby Fisher (1972) against Magnus Carlsen\r\nx = 2785;\r\ny = 2865;\r\nassert(isequal(expected_score(x,y),0.387))\r\n%% Bobby Fisher (1972) against me\r\nx = 2785;\r\ny = 1800;\r\nassert(isequal(expected_score(x,y),0.997))\r\n","published":true,"deleted":false,"likes_count":6,"comments_count":0,"created_by":5390,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":680,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2015-02-28T22:51:09.000Z","updated_at":"2026-04-05T17:25:47.000Z","published_at":"2015-02-28T22:52:00.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/media/image1.png\"}],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe difference in the ratings between two players serves as a predictor of the outcome of a match (the\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://en.wikipedia.org/wiki/Elo_rating_system\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eElo rating system\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eIf Player A has a rating of Ra and Player B a rating of Rb, the formula for the expected score of Player A is :\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId1\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eTwo players with equal ratings who play against each other are expected to score an equal number of wins. A player whose rating is 100 points greater than their opponent's is expected to score 64%; if the difference is 200 points, then the expected score for the stronger player is 76%.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eI give you two ELOs, compute the expected score (round to 3 digits), or probability that the first player wins.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"},{\"partUri\":\"/media/image1.png\",\"contentType\":\"image/png\",\"content\":\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAM4AAAArBAMAAADCuKrGAAAAMFBMVEX///90dHQEBAQwMDCenp5QUFAWFhbm5ubMzMyKioq2trZAQEAMDAwiIiJiYmIAAADHPVvyAAAAAXRSTlMAQObYZgAAAuJJREFUeNrtV0toE2EQ/pJs91+TZpuKKZ7aHDxZhKBo8WCNQj14qNHiAxFZRNIHVAPFi0UbFC8qEqh40cOePBUfUAoS0BQPvhByqXqoEK1CaauNXswWu3H+JF03TbV5dHPqwGYzM//u98/881qgOhoscZ29OhjnkRIXOqqCYdvmXqMmtKc2fiuZ1nHWcdZxikmrDU7Xq53hkhbagG8Nz7Cl0WO565xkuxS3/nwEHUinrMfJ9NLdbz2OPYUkVOtD+2GA+S0HEYDAzQ82nyEYe8R/+yxAfoc6671G+dM6If+U0oC4sEyXWSuQHzw5JQ0MdfRnPmxpvGk6Fam9lK5q9kzGQpwSqz4Y+beK71cq2rSDxwC9V6iPlrE/+T/GH6fLVWRPhpx3ia57v4Jl4NyIYv5pV8HODH4kx9ep0uETuOYly9m43dV/N7brShRS50xw9amWCwabaWEboO4f7THrDF4PABv4aKe3PMDn2SSJFFMi2ZSiCvt2JcFLDMNJWdYEHqV/yeB52vvBmtQRiAfjOFvQfybhWF6zWau6gkDuwXlVoD214MK0WWvwGnnHB5ZCH9gLFf1mnKvTGJpY3ivfLIWd2yRI+yAEFsnpKe+sD/fbpwL5RVkeUraeLPpxPRtdH42HS5me3SZBgwcOxRWAlEI7aSJCwhaLxR7nebjI0m76PGBRUW2C+EnBucr6djgCSaHSoSWxSDUjkolnOjo6DuV57KaYe4IDWDg9uekOxF4FxyrD4TVEEVTYPRiWcLHxfT6TcjzqGUUeWZTZuHVOCWOM4XfFc0gaepCdOglvEpvnt+djJMfLvgEIUcYFU7f1fZ344k1Wdj5DUbjjPH+yNAqxICgHvo/DFbGV2QCyOK5Q6Ewo1G+KA7diZHD3UvbnKYijuFX2V+JK9ohBiEk4cyVG1r+2FZiTkCZVDy6vAY6cQINaQV8oa6olgZaGrKwtTtFUywXa8+YdVnVDN2pDjqrf8Af8bczR/4tLjAAAAABJRU5ErkJggg==\"}]}"},{"id":45330,"title":"Castling-02","description":"This is a follow up of problem \r\n\r\n\u003chttps://www.mathworks.com/matlabcentral/cody/groups/1/problems/45329-castling-01\u003e\r\n\r\n\r\nGiven the position of only one player's chess pieces(some of them) on the chessboard, figure out whether castling is valid or not.\r\n\r\n\u003chttps://en.wikipedia.org/wiki/Castling\u003e","description_html":"\u003cp\u003eThis is a follow up of problem\u003c/p\u003e\u003cp\u003e\u003ca href = \"https://www.mathworks.com/matlabcentral/cody/groups/1/problems/45329-castling-01\"\u003ehttps://www.mathworks.com/matlabcentral/cody/groups/1/problems/45329-castling-01\u003c/a\u003e\u003c/p\u003e\u003cp\u003eGiven the position of only one player's chess pieces(some of them) on the chessboard, figure out whether castling is valid or not.\u003c/p\u003e\u003cp\u003e\u003ca href = \"https://en.wikipedia.org/wiki/Castling\"\u003ehttps://en.wikipedia.org/wiki/Castling\u003c/a\u003e\u003c/p\u003e","function_template":"function tf=castling_02(a)\r\n  y = x;\r\nend","test_suite":"%%\r\na={'Rd1','Rh1','Ke1'}\r\nassert(isequal(castling_02(a),1))\r\n%%\r\na={'Rd1','Rd4','Ke1','Bb6'}\r\nassert(isequal(castling_02(a),0))\r\n%%\r\na={'d1','Rh8','Kg1'}\r\nassert(isequal(castling_02(a),0))\r\n%%\r\na={'Ra1','Rh1','Ke1','Qd1'}\r\nassert(isequal(castling_02(a),1))\r\n%%\r\na={'Ra1','Rh1','Ke1','Qd1','Bg1'}\r\nassert(isequal(castling_02(a),0))\r\n%%\r\na={'Ba2','Ra1','Rb1','Ke1','Bg1'}\r\nassert(isequal(castling_02(a),0))\r\n%%\r\na={'Na1','Rh1','Ke1','Qd1'}\r\nassert(isequal(castling_02(a),1))\r\n%%\r\na={'Kd1','Qe1','Rh1','Rd8','a4','Nf2'}\r\nassert(isequal(castling_02(a),0))\r\n","published":true,"deleted":false,"likes_count":2,"comments_count":0,"created_by":363598,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":10,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2020-02-15T23:34:53.000Z","updated_at":"2026-01-23T13:53:26.000Z","published_at":"2020-02-15T23:38:28.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis is a follow up of problem\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/groups/1/problems/45329-castling-01\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026lt;https://www.mathworks.com/matlabcentral/cody/groups/1/problems/45329-castling-01\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026gt;\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eGiven the position of only one player's chess pieces(some of them) on the chessboard, figure out whether castling is valid or not.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:hyperlink w:docLocation=\\\"https://en.wikipedia.org/wiki/Castling\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026lt;https://en.wikipedia.org/wiki/Castling\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026gt;\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":1684,"title":"Identify Reachable Points ","description":"Given a vector of 2-D Points and a vector of 2-D Deltas create an array of all Locations that can be reached from the points using the Deltas. The provided Deltas are only positive but the points that can be reached may use Negative Deltas or Y-deltas for X moves, like moves of a Knight dxy [1 2].\r\n\r\n*Input:* [Pts, dxy]\r\n\r\n\r\n*Output:* Mxy\r\n\r\n*Example:* \r\n\r\n  Pts [5 5; 7 9]\r\n\r\n  dxy [0 1]  % Multiple dxy are possible\r\n  \r\n  Mxy =[4 5;5 4;5 6;6 5;6 9;7 8;7 10;8 9]\r\n\r\n*Related Challenges:*\r\n\r\n1) Minimum Sized Circle for N integer points with all unique distances ","description_html":"\u003cp\u003eGiven a vector of 2-D Points and a vector of 2-D Deltas create an array of all Locations that can be reached from the points using the Deltas. The provided Deltas are only positive but the points that can be reached may use Negative Deltas or Y-deltas for X moves, like moves of a Knight dxy [1 2].\u003c/p\u003e\u003cp\u003e\u003cb\u003eInput:\u003c/b\u003e [Pts, dxy]\u003c/p\u003e\u003cp\u003e\u003cb\u003eOutput:\u003c/b\u003e Mxy\u003c/p\u003e\u003cp\u003e\u003cb\u003eExample:\u003c/b\u003e\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003ePts [5 5; 7 9]\r\n\u003c/pre\u003e\u003cpre class=\"language-matlab\"\u003edxy [0 1]  % Multiple dxy are possible\r\n\u003c/pre\u003e\u003cpre class=\"language-matlab\"\u003eMxy =[4 5;5 4;5 6;6 5;6 9;7 8;7 10;8 9]\r\n\u003c/pre\u003e\u003cp\u003e\u003cb\u003eRelated Challenges:\u003c/b\u003e\u003c/p\u003e\u003cp\u003e1) Minimum Sized Circle for N integer points with all unique distances\u003c/p\u003e","function_template":"function Mxy=Knights(Pts,dxy)\r\n  Mxy=Pts;\r\nend","test_suite":"%%\r\nPts=[5 5; 7 9];\r\ndxy=[0 1];\r\nMxy=unique(Knights(Pts,dxy),'rows');\r\n\r\nMxy_exp =[4 5;5 4;5 6;6 5;6 9;7 8;7 10;8 9];\r\nassert(isequal(Mxy,Mxy_exp))\r\n%%\r\nPts=[5 5];\r\ndxy=[0 1;1 2];\r\nMxy=unique(Knights(Pts,dxy),'rows');\r\n\r\nMxy_exp =[3 4;3 6;4 3;4 5;4 7;5 4;5 6;6 3;6 5;6 7;7 4;7 6];\r\nassert(isequal(Mxy,Mxy_exp))\r\n%%\r\npts=randi(20,6,2);\r\ndxy=randi(6,4,2);\r\nMxy=unique(Knights(pts,dxy),'rows');\r\n\r\n nP=size(pts,1);\r\n ndxy=size(dxy,1);\r\n \r\n mxy=[];\r\n for i=1:nP\r\n  mxy=[mxy;\r\n      dxy(:,1)+pts(i,1) dxy(:,2)+pts(i,2);\r\n      -dxy(:,1)+pts(i,1) dxy(:,2)+pts(i,2);\r\n      dxy(:,1)+pts(i,1) -dxy(:,2)+pts(i,2);\r\n      -dxy(:,1)+pts(i,1) -dxy(:,2)+pts(i,2);\r\n       dxy(:,2)+pts(i,1) dxy(:,1)+pts(i,2);\r\n      -dxy(:,2)+pts(i,1) dxy(:,1)+pts(i,2);\r\n      dxy(:,2)+pts(i,1) -dxy(:,1)+pts(i,2);\r\n      -dxy(:,2)+pts(i,1) -dxy(:,1)+pts(i,2)];\r\n end\r\n\r\n Mxy_exp=unique(mxy,'rows');\r\n\r\nassert(isequal(Mxy,Mxy_exp))\r\n\r\n\r\n\r\n\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":3097,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":48,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2013-06-28T03:22:54.000Z","updated_at":"2026-02-15T07:15:08.000Z","published_at":"2013-06-28T03:58:36.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eGiven a vector of 2-D Points and a vector of 2-D Deltas create an array of all Locations that can be reached from the points using the Deltas. The provided Deltas are only positive but the points that can be reached may use Negative Deltas or Y-deltas for X moves, like moves of a Knight dxy [1 2].\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eInput:\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e [Pts, dxy]\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eOutput:\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e Mxy\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eExample:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[Pts [5 5; 7 9]\\n\\ndxy [0 1]  % Multiple dxy are possible\\n\\nMxy =[4 5;5 4;5 6;6 5;6 9;7 8;7 10;8 9]]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eRelated Challenges:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e1) Minimum Sized Circle for N integer points with all unique distances\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":45236,"title":"Queen's move","description":"given a number of consecutive moves of queen, check for their validity based on their previous position....\r\nbut remember if u get an invalid move - u need check for the next move's validity based on the last valid position.....\r\n\r\n* x={'Qd1','Qd5','Qf7','Qa8','Qg8'}\r\n* y=[1,1,1,0,1]\r\n \r\n\u003chttps://en.wikipedia.org/wiki/Algebraic_notation_(chess)\u003e\r\n","description_html":"\u003cp\u003egiven a number of consecutive moves of queen, check for their validity based on their previous position....\r\nbut remember if u get an invalid move - u need check for the next move's validity based on the last valid position.....\u003c/p\u003e\u003cul\u003e\u003cli\u003ex={'Qd1','Qd5','Qf7','Qa8','Qg8'}\u003c/li\u003e\u003cli\u003ey=[1,1,1,0,1]\u003c/li\u003e\u003c/ul\u003e\u003cp\u003e\u003ca href = \"https://en.wikipedia.org/wiki/Algebraic_notation_(chess)\"\u003ehttps://en.wikipedia.org/wiki/Algebraic_notation_(chess)\u003c/a\u003e\u003c/p\u003e","function_template":"function y = Queen_move(x)","test_suite":"%%\r\nx = {'Qd1','Qd5','Qf7','Qa8','Qg8'};\r\ny_correct = [1,1,1,0,1];\r\nassert(isequal(Queen_move(x),y_correct))\r\n%%\r\nx = {'Qd1','Qd5','Qf7','Qa8','Qc7'};\r\ny_correct = [1,1,1,0,1];\r\nassert(isequal(Queen_move(x),y_correct))\r\n%%\r\nx={'Qh1','Qg5','Qe6','Qe2','Qb3','Qd5','Qh7'};\r\ny_correct = [1,0,0,0,0,1,0];\r\nassert(isequal(Queen_move(x),y_correct))\r\n","published":true,"deleted":false,"likes_count":3,"comments_count":2,"created_by":363598,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":17,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2019-12-20T16:33:40.000Z","updated_at":"2026-01-23T12:20:52.000Z","published_at":"2019-12-20T16:35:13.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003egiven a number of consecutive moves of queen, check for their validity based on their previous position.... but remember if u get an invalid move - u need check for the next move's validity based on the last valid position.....\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ex={'Qd1','Qd5','Qf7','Qa8','Qg8'}\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ey=[1,1,1,0,1]\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:hyperlink w:docLocation=\\\"https://en.wikipedia.org/wiki/Algebraic_notation_(chess)\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026lt;https://en.wikipedia.org/wiki/Algebraic_notation_(chess\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e)\u0026gt;\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":60541,"title":"Compute the number of squares a knight can reach after n moves","description":"Several Cody problems involve knights from chess. They have asked players to find a knight’s tour in a matrix (CP 96), determine whether points are reachable given the moves of a knight and other pieces (CP 1684), calculate the probability that a knight will remain on a chessboard after a given number of moves (CP 45389), determine the number of moves to reach a destination (CP 45433), find when a knight not allowed to revisit squares will be trapped (CP 54780), and list the squares that a knight can reach after one move (CP 57660).\r\nThis problem involves the number of squares on an infinite chessboard that a knight can reach. If the knight starts on the pink square below, then it can reach the eight squares marked “1” after one move and the 33 squares marked “2” after two moves. \r\nWrite a function to compute the number of squares that a knight can reach after n moves. \r\n","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.4333px; min-height: 0px; white-space: normal; color: rgb(0, 0, 0); font-family: Menlo, Monaco, Consolas, monospace; font-style: normal; font-size: 14px; font-weight: 400; text-decoration: rgb(0, 0, 0); white-space: normal; \"\u003e\u003cdiv style=\"block-size: 500.7px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 250.35px; transform-origin: 407px 250.35px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 105px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 52.5px; text-align: left; transform-origin: 384px 52.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 98.425px 8px; transform-origin: 98.425px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eSeveral Cody problems involve \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://en.wikipedia.org/wiki/Knight_(chess)#Movement\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"text-decoration-line: underline; \"\u003eknights\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 146.625px 8px; transform-origin: 146.625px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e from chess. They have asked players to find a \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"/#null\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"text-decoration-line: underline; \"\u003eknight’s tour\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 38.5px 8px; transform-origin: 38.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e in a matrix (\u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://www.mathworks.com/matlabcentral/cody/problems/96\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"text-decoration-line: underline; \"\u003eCP 96\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 6.21667px 8px; transform-origin: 6.21667px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e), determine whether points are reachable given the moves of a knight and other pieces (\u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://www.mathworks.com/matlabcentral/cody/problems/1684\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"text-decoration-line: underline; \"\u003eCP 1684\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 81.3px 8px; transform-origin: 81.3px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e), calculate the probability that a knight will remain on a chessboard after a given number of moves (\u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://www.mathworks.com/matlabcentral/cody/problems/45389\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"text-decoration-line: underline; \"\u003eCP 45389\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 114.733px 8px; transform-origin: 114.733px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e), determine the number of moves to reach a destination (\u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://www.mathworks.com/matlabcentral/cody/problems/45433\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"text-decoration-line: underline; \"\u003eCP 45433\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 206.167px 8px; transform-origin: 206.167px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e), find when a knight not allowed to revisit squares will be trapped (\u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://www.mathworks.com/matlabcentral/cody/problems/54780\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"text-decoration-line: underline; \"\u003eCP 54780\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 42px 8px; transform-origin: 42px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e), and list the squares that a knight can reach after one move (\u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://www.mathworks.com/matlabcentral/cody/problems/57660\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"text-decoration-line: underline; \"\u003eCP 57660\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 4.275px 8px; transform-origin: 4.275px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e).\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 63px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 31.5px; text-align: left; transform-origin: 384px 31.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 374.567px 8px; transform-origin: 374.567px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThis problem involves the number of squares on an infinite chessboard that a knight can reach. If the knight starts on the pink square below, then it can reach the eight squares marked “1” after one move and the 33 squares marked “2” after two moves. \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 277.958px 8px; transform-origin: 277.958px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eWrite a function to compute the number of squares that a knight can reach after n moves. \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 284.7px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 142.35px; text-align: left; transform-origin: 384px 142.35px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cimg class=\"imageNode\" width=\"369\" height=\"279\" style=\"vertical-align: baseline;width: 369px;height: 279px\" src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAuEAAAItCAYAAACXaqRdAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAClASURBVHhe7d1viF5Vnifw37MMNemJ2BGh7YZVd0doFxp0hq6B3oHWIIaaQWfdsBoXWhlXBiswMd3QmllRtye9stmJtqAGxtIZd1qE9c82QmZkuwj0mnmhhqlmNOyM2o2DThZsBYmd1omdeZGt63MSK0+lKlXWc8+55/r5QPGccysvqr4c7v3m1nnuMzg+LwAAgGz+RXoFAAAyUcIBACAzJRwAADJTwgEAIDMlHAAAMlPCAQAgMyUcAAAyU8IBACAzJRwAADJTwgEAIDMlHAAAMlPCAQAgMyUcAAAyU8IBACAzJRwAADIbHJ+Xxov85gUXxMuHDqVZfdavi/jwozSpkJ+/LD9/WX7+svz8Zfn5y/Lzl1X7z/8b558ff/uP/5hmS1u2hA8Ggzg2myYVmpiKmJtJkwpNTof8C5J/WfIvS/5lyb8s+ZfVh/yXqdcn2Y4CAACZKeEAAJCZEg4AAJkp4QAAkJkSDgAAmSnhAACQmRIOAACZKeEAAJCZEg4AAJkp4QAAkJkSDgAAmSnhAACQmRIOAACZKeEAAJCZEg4AAJkp4QAAkJkSDgAAmSnhAACQmRIOAACZKeEAAJCZEg4AAJkp4QAAkJkSDgAAmSnhAACQmRIOAACZKeEAAJCZEg4AAJkp4QAAkJkSDgAAmSnhAACQmRIOAACZKeEAAJCZEg4AAJkp4QAAkJkSDgAAmSnhAACQmRIOAACZKeEAAJCZEg4AAJkp4QAAkJkSDgAAmSnhAACQmRIOAACZKeEAAJCZEg4AAJkp4QAAkNng+Lw0XmQwGKQRAACwEsvU65POWMLnZtKkQpPTEcdm06RCE1Mh/4LkX5b8y5J/WfIvS/5l9SH/lZRw21EAACAzJRwAADJTwgEAIDMlHAAAMlPCAQAgMyUcAAAyU8IBACAzJRwAADJTwgEAIDMlHAAAMlPCAQAgMyUcAAAyU8KBFTvwasT+gxF3PTZ8Pfhm+gZZyL8s+QPjpIQDy2qKxrU7IyamIr7+rYhNt0fsfmr4Ojkd8aXrIp5+Pv1jxk7+ZckfaIsSDiypKRdN0dj7QjpwGu8dibhh1/DuIOMl/7LkD7RJCQeWtPfFNFiB5u7gW++kCWMh/7LkD7RJCQeWtGH98PXcsyO2bY544o6IffdG3HLV8PioR59LA8ZC/mXJH2iTEg4s6bJLInZcH/H2MxH3b43YsjHi8vlje7YPj4965Y00YCzkX5b8gTYp4cCSmtJxz81pMmLLFWlAa+RflvyBNinhwKdy9GgaLHDheWlA6+RflvyBtVLCgU/lwGtpsMB1G9OA1sm/LPkDa6WEA6v2/gcRDz2bJknz5rVmvyztk39Z8gfGQQkHVu3xfYsfx/bk3WlA6+RflvyBcVDCgVVpPq77tofTJDnx1AjaJ/+y5A+MixIOrFhz96/5uO6FLr0oYs+taUKr5F+W/IFxUsKBFWkKyJUjBaTZB7tvd8SGs9IBWiP/suQPjJsSDpxR80a0q+8cFpET1q+LeGmPApKD/MuSP9AGJRxYVlNANu2IeP1QOjCvKSAvP+K5yDnIvyz5A21RwoFl3bjr1I/jbgrI/gcUkFzkX5b8gbYo4cCStj0YMTuXJsnOmyIOHxk+JeJ0X82dQ8ZD/mXJH2jT4Pi8NF5kMBjE3EyaVGhyOuLYbJpUaGIq5F+Q/CPOuSbiw4/SZIXu2xqxfXOarIH85b8W8i/L+b8s+ZfV5L9MvT7JnXBgSastII13D6cBayb/suQPtEkJB5Z08flpsAoX2Cs7NvIvS/5Am2xH6TB/DitL/mXJvyz5lyX/suRfVh/ytx0FAAA6SAkHAIDMlHAAAMhMCQcAgMyUcAAAyEwJBwCAzJRwAADITAkHAIDMlHAAAMhMCQcAgMyUcAAAyEwJBwCAzAbH56XxIoPBII0AAICVWKZen3TGEn5sNk0qNDEV8dPHI35+NB2ozOR0yL+gPuQ/N5MmFZJ/WfIvy/m/LPmX1Yf8V1LCe78dpdYF2BfyB/hscv4vS/7dZ084AABkpoQDAEBmSjgAAGSmhAMAQGZKOAAAZKaEAwBAZko4AABkpoQDAEBmSjgAAGSmhAMAQGZKOAAAZKaEQ0YHXo3YfzDirseGrwffTN8gC/mXJf+y5A/dooRDy5oL3bU7IyamIr7+rYhNt0fsfmr4Ojkd8aXrIp5+Pv1jxk7+Zcm/LPlDdynh0KLm4tZc6Pa+kA6cxntHIm7YNbw7xXjJvyz5lyV/6DYlHFq098U0WIHm7tRb76QJYyH/suRflvyh25RwaNGG9cPXc8+O2LY54ok7IvbdG3HLVcPjox59Lg0YC/mXJf+y5A/dpoRDiy67JGLH9RFvPxNx/9aILRsjLp8/tmf78PioV95IA8ZC/mXJvyz5Q7cp4dCi5qJ3z81pMmLLFWlAa+RflvzLkj90mxIOhRw9mgYLXHheGtA6+Zcl/7LkD+Up4VDIgdfSYIHrNqYBrZN/WfIvS/5QnhIOBbz/QcRDz6ZJ0rx5qtmvSfvkX5b8y5I/dIMSDgU8vm/x48CevDsNaJ38y5J/WfKHblDCIbPm46JvezhNkhNPLaB98i9L/mXJH7pDCYeMmrtPzcdFL3TpRRF7bk0TWiX/suRflvyhW5RwyKS5AF45cgFs9mHu2x2x4ax0gNbIvyz5lyV/6B4lHDJo3gh19Z3DC+EJ69dFvLTHBTAH+Zcl/7LkD92khEPLmgvgph0Rrx9KB+Y1F8CXH/Fc3hzkX5b8y5I/dJcSDi27cdepHwfdXAD3P+ACmIv8y5J/WfKH7lLCoUXbHoyYnUuTZOdNEYePDJ9ScLqv5s4V4yH/suRflvyh2wbH56XxIoPBII7NpkmFJqYi5mbSpEKT0yH/gsaR/znXRHz4UZqs0H1bI7ZvTpM1kL/810L+Zcm/LNffsvqQ/zL1+iR3wqFFq70ANt49nAasmfzLkn9Z8oduU8KhRRefnwarcIG9mmMj/7LkX5b8odtsR+kwfw4rS/5lyb8s+Zcl/7LkX1Yf8rcdBQAAOkgJBwCAzJRwAADITAkHAIDMlHAAAMhMCQcAgMyUcAAAyEwJBwCAzJRwAADITAkHAIDMlHAAAMhMCQcAgMwGx+el8SKDwSCNAACAlVimXp90xhI+N5MmFZqcjjg2myYVmpgK+Rck/7LkX5b8y5J/WfIvqw/5r6SE244CAACZKeEAAJCZEg4AAJkp4QAAkJkSDgAAmSnhAACQmRIOAACZKeEAAJCZEg4AAJkp4QAAkJkSDgAAmSnhAACQmRJOVQ68GrH/YMRdjw1fD76ZvgGr8OOffPJVk76s/1rzpyznf/pGCafzmhPttTsjJqYivv6tiE23R+x+avg6OR3xpesinn4+/WNYxps/i/jGPRHT3/vk6+kfpW92VJ/Wf435U5bzP32mhNNpzcm1OdHufSEdOI33jkTcsGt4dwSW8hc/nL+Yfyfi9UPpQPKFc9Kgg/q0/mvMn7Kc/+k7JZxO2/tiGqxAc3fkrXfSBJJmy8PU7RF7nk0HRrx7OA06qA/rv+b8Kcv5n75Twum0DeuHr+eeHbFtc8QTd0TsuzfilquGx0c9+lwaQNJseWjuli2ly3di+7D+a86fspz/6TslnE677JKIHddHvP1MxP1bI7ZsjLh8/tie7cPjo155Iw1gxIXnDdfN1GQ6kHT5Tmyf1n+N+VOW8z99p4TTac1J956b02TElivSAJZx6UXDC/YPvhvxta9E/OpE+kbyuXVp0EF9WP81509Zzv/0nRJOtY4eTYMFmrttsNCf7zj1gv3LY2mQHP0oDSpTy/rva/6U5fxPHyjhVOvAa2mwwHUb0wCWMHonttY9ybWu/77kT1nO//SBEk6V3v8g4qGRpy00b95p9gvCckbvxNa4J7nm9d+H/CnL+Z++UMKp0uP7Fj+O6sm70wCW0Yc7sTWvf3fCWSvnf/pCCac6zccV3/ZwmiQn3jUPZ1L7ndja17874ayF8z99ooRTlebuR/NxxQs1T1/Yc2uawBnU/HSOPqz/mvOnLOd/+kYJpxrNCfjKkRNwsw9w3+6IDWelA3AGtT6doy/rv9b8Kcv5nz5SwqlC80acq+8cnohPWL8u4qU9TsCsTo17kvu0/u0JZ7Wc/+krJZzOa07Am3ZEvH4oHZjXnIBffsRzYVm92vYk92392xPOajj/02dKOJ13465TP464OQHvf8AJmE+ntjuxfVv/7oSzGs7/9JkSTqdtezBidi5Nkp03RRw+MnyX/Om+mjsnsJSa7sT2cf27E85KOf/Td4Pj89J4kcFgEHMzaVKhyemIY7NpUqGJqfjM53/ONREfrvKNW/dtjdi+OU3WQP5ljSv/y7+5ujU08+2Ir345TdbA+h+qOf+SnH+c/9fC+i+ryX+Zen2SO+F02mpPwA131lhotWvoFx+mQQf0Yf3XnD9lOf/Td0o4nXbx+WmwChfYK8gCzR7S1Vg3sme5pD6s/5rzpyznf/rOdpQO8+ewsuRflvzLkn9Z8i9L/mX1IX/bUQAAoIOUcAAAyEwJBwCAzJRwAADITAkHAIDMlHAAAMhMCQcAgMyUcAAAyEwJBwCAzJRwAADITAkHAIDMlHAAAMhscHxeGi8yGAzSCAAAWIll6vVJZyzhx2bTpEITUxE/fTzi50fTgcpMTkf1+c/NpEmF+pC/9V+O9V+W/MuSf1nO/2U1+a+khPd+O0qtCxDGwfoH+Gxy/u8+e8IBACAzJRwAADJTwgEAIDMlHAAAMlPCAQAgMyUcAAAyU8IBACAzJRwAADJTwgEAIDMlHAAAMlPCAQAgMyUcMjrwasT+gxF3PTZ8Pfhm+kZlfvyT4ddLf5cOVKIv+deqb+u/+aqJ9Q/dMjg+L40XGQwGcWw2TSo0MRUxN5MmFZqcDvkXNK78mwvdd78fsfeFdGDEuWdHPPCHEVs2pgNj0kb+r83/Lv/1iYjXD6UD83ZcP/+zX5EmYyT/suS/2Js/i7jzz6z/lbD+y5J/WU3+y9Trk9wJhxY9/fzwZLLUBbDx3pGIG3YN70512V/8cPhzLiwgXden/GvUt/V/7XcWr/8vnJMGHWT9Q7cp4dCivS+mwQrsfirirXfSpEOaP7lP3R6x59l0YESXS0gf8q/ZZ2H9v3s4DTrI+oduU8KhRRvWD1+bP/lu2xzxxB0R++6NuOWq4fFRjz6XBh0y/b3h3bKldLmE9CH/mn0W1n+X/xNq/UO3KeHQossuGe4ZffuZiPu3DvddXj5/bM/24fFRr7yRBh1x9GgazLvwvIj75n+Hf/fb6UDyuXVp0EG151+7PuXfrP/m556aTAeSLv8n1PqHblPCoUXNRe+em9NkRBtv5hq3z30u4tKLhhfsH3w34pr5Av7LY+mbydGP0qCDas+/dn3If+H6/9pXIn51In0j6fJ/Qq1/6DYlHApZeJf5hOZuW9f8+Y5PLtg/P83P3OU/xy+nlvz7qsb136jpP6HLsf6hPCUcCjnwWhoscN3GNKhIl/8cv5y+5F+rWvMfvRNe639CrX8oTwmHAt7/IOKhkactNG+eavZr1qbLf45fSp/yr1HN+Y/eCa/xP6HWP3SDEg4FPL5v8ePAnrw7DTru82elQVLjn+Nrzr8Pas6/D3fCrX/oBiUcMms+Lvq2h9MkOfHUghr8/IM0SGorIbXnX7va86/9Trj1D92hhENGzd2nTbenSdI8fWHPrWlSoZpKSB/zr0kf8q/p6SijrH/oFiUcMmkugFeOXACbfZj7dkdsGNniUZNaSkhf869FX/Kv9eko1j90jxIOGTRvhLr6zuGF8IT18+X1pT31XQBr3BPep/xr1Kf8a9wTbv1DNynh0LLmArhpR8Trh9KBec0F8OVH6nwub217wvuWf236ln9te8Ktf+guJRxaduOuUz8OurkA7n+gPxfArpeQvuffdX3Lv7Y74dY/dJcSDi3a9mDE7FyaJDtvijh8ZPiUgtN9NXeuatLlPeGfhfy7rI/513Qn3PqHbhscn5fGiwwGgzg2myYVmpiKmJtJkwpNTof8CxpH/udcE/HhKvdM37c1YvvmNFmDceXf5LAaM9+O+OqX02QN5F+W/Icu/+bqfgfrf8j6L0v+ZTX5L1OvT3InHFq02gtgo7bnDo964/+lQQd8FvPvkj7kv9rf4RcfpkEHWP/QbUo4tOji89NgFS7o2F7N5jFmq3HRv0yDDuhD/jXrQ/7NHurVWDeyZ7wk6x+6zXaUDvPnsLLkX5b8y5J/WfIvS/5l9SF/21EAAKCDlHAAAMhMCQcAgMyUcAAAyEwJBwCAzJRwAADITAkHAIDMlHAAAMhMCQcAgMyUcAAAyEwJBwCAzJRwAADIbHB8XhovMhgM0ggAAFiJZer1SWcs4XMzaVKhyemIY7NpUqGJqZB/QfIvqw/5H5+p9xcYTE9b/wU5/5Ql/7J6cf5fQQm3HQUAADJTwgEAIDMlHAAAMlPCAQAgMyUcAAAyU8IBACAzJRwAADJTwgEAIDMlHAAAMlPCAQAgMyUcAAAyU8IBACAzJZyqHHg1Yv/BiLseG74efDN9gyzkX9ZL//AP8cO/+7u449lnPx43X+Rj/Zclf/pmcHxeGi8yGAxibiZNKjQ5HXFsNk0qNDEV8p/XnGi/+/2IvS+kAyPOPTvigT+M2LIxHRgT+Q/J/9Np8j8+s/ZfoCnaD/zoR/Hk3/xNOnKq9esi/tct2+N3vvKVdGQ8BtPT1v886//TkX9Z48q/lF6c/5eu1ye5E06nPf38cDEvdQJuvHck4oZdw7sjjJf8y2qK97/9kz9ZsoA3Pvwo4ncffPDju+OMl/VflvzpOyWcTtv7YhqswO6nIt56J00YC/mXNfv3f59GZ/bff/jDePO999KMcbD+y5I/faeE02kb1g9fmz85btsc8cQdEfvujbjlquHxUY8+lwaMhfzLWvcrv/Lxa7Pl5D//zu/E//yDP4gX/+iP4qbf/u2Pj4+a+eu/TiPGwfovS/70nRJOp112ScSO6yPefibi/q3DfX+Xzx/bs314fNQrb6QBYyH/si7/8pc/Lt8fPDATuzZvjv/4W78VX/v1X4//8fu/H9+5+ur0rz7x8qFDacQ4WP9lyZ++U8LptOake8/NaTJiyxVpQGvkX1ZTupvyfTr//jd+I41oi/VflvzpOyWcah09mgYLXHheGtA6+Zf10T//cxp94ouf/3wa0Tbrvyz50wdKONU68FoaLHDdxjSgdfIv6/mf/CSNPnH95GQa0Tbrvyz50wdKOFV6/4OIh0aeyNa8eafZL0j75F/e6Jsw/9W55479WeGcnvVflvzpCyWcKj2+b/HjqJ68Ow1onfzL+uO//MtFjyP80298I41om/VflvzpCyWc6jQfV3zbw2mSnHjXPO2Tf1nNx9bv/Ku/SrOh5g2c7oLnYf2XJX/6RAmnKs3dj023p0ly6UURe25NE1ol/7Le/6d/imsfeTDNhpptKM3zw2mf9V+W/OkbJZxqNCfgK0dOwM0+wH27IzaclQ7QGvmX1Ww/+dd33vnxx9Sf0BTwv73rrjSjTdZ/WfKnj5RwqtC8EefqO4cn4hOaTxF8aY8TcA7yL6u5A/67Dz748esJTf7/59vfjg2/9mvpCG2x/suSP32lhNN5zQl4046I1xd8GGBzAn75Ec+FzUH+ZTXPA//Ne+6J1372s3RkvnjMF+//+1/+28d3wmmX9V+W/OkzJZzOu3HXqR9H3JyA9z/gBJyL/Mva/Kd/esqTUJr8//ettyrgmVj/ZcmfPlPC6bRtD0bMzqVJsvOmiMNHhu+SP91Xc+eE8ZB/Wf/p+9//+GkoC933H4aPImyOn+6L8bH+y5I/fTc4Pi+NFxkMBjE3kyYVmpyOODabJhWamIrPfP7nXBOnvBFtJe7bGrF9c5qsgfzlvxZN/sdn1vYLnPXN6VXn/52rr44//r3fS7NPbzA9bf1b/5+a/MsaR/4l9eL8v3S9PsmdcDpttSfgxruH04A1k39ZnyZ/xsf6L0v+9J0STqddfH4arMIF9gqOjfzL+jdf/GIardwXP//5NGKtrP+y5E/f2Y7SYf4cVpb8y+rFnyPXuB2lJNtRynL+KUv+ZfXi/G87CgAAdI8SDgAAmSnhAACQmRIOAACZKeEAAJCZEg4AAJkp4QAAkJkSDgAAmSnhAACQmRIOAACZKeEAAJCZEg4AAJkNjs9L40UGg0EaAQAAK7FMvT7pjCX82GyaVGhiKmJuJk0qNDkd8i9I/mXJvyz5lyX/suRfVh/yX0kJtx0FAAAyU8IBACAzJRwAADJTwgEAIDMlHAAAMlPCAQAgMyUcAAAyU8IBACAzJRwAADJTwgEAIDMlHAAAMlPCAQAgMyUcMjrwasT+gxF3PTZ8Pfhm+kZlfvyTT75q0pf8a2X9l2X9Q7cMjs9L40UGg0Ecm02TCk1MRczNpEmFJqdD/gWNK//mQvfd70fsfSEdGHHu2REP/GHElo3pwJi0kf+bP4u4888iXj+UDszbcf38z35FmoyR/MuS/2LW/8pZ/2XJv6wm/2Xq9UnuhEOLnn5+eDJZ6gLYeO9IxA27hnenuuwvfhhx7XdOLSCNL5yTBh3Up/xrZP2XZf1Dtynh0KK9L6bBCux+KuKtd9KkQ5o/uU/dHrHn2XRgxLuH06CD+pB/zaz/sqx/6DYlHFq0Yf3wtfmT77bNEU/cEbHv3ohbrhoeH/Xoc2nQIdPfG94tW0qX7wT2If+aWf9lWf/QbUo4tOiyS4Z7Rt9+JuL+rcN9l5fPH9uzfXh81CtvpEEHXXje8OeemkwHki7fCexT/jWy/suy/qHblHBoUXPRu+fmNBnRxpu52nDpRcML9g++G/G1r0T86kT6RvK5dWnQQX3Iv2bWf1nWP3SbEg6FHD2aBgs0d9u65s93nHrB/uWxNEiOfpQGlakl/76y/suy/qE8JRwKOfBaGixw3cY06LDRO4Fd3hO7nFrz7wvrvyzrH8pTwqGA9z+IeGjkaQvNm6ea/ZpdN3onsMt7YpdSc/59YP2XZf1DNyjhUMDj+xY/DuzJu9Og4/pwJ7Dm/PvA+i/L+oduUMIhs+bjom97OE2SE08tqEHtdwJrz7921n9Z1j90hxIOGTV3nzbdniZJ8/SFPbemSQVqejrEqD7kXzPrvyzrH7pFCYdMmgvglSMXwGYf5r7dERvOSgcqUOvTIfqSf62s/7Ksf+geJRwyaN4IdfWdwwvhCevXRby0p74LYI17YvuUf42s/7Ksf+gmJRxa1lwAN+2IeP1QOjCvuQC+/Eidz+WtbU9s3/KvjfVflvUP3aWEQ8tu3HXqx0E3F8D9D9R7AaztTmDf8q+N9V+W9Q/dpYRDi7Y9GDE7lybJzpsiDh8ZPqXgdF/Nnasuq+lOYB/zr4n1X5b1D902OD4vjRcZDAZxbDZNKjQxFTE3kyYVmpwO+Rc0jvzPuSbiw1W+ceu+rRHbN6fJGowr/8u/ubrfYebbEV/9cpqsgfzLkv+Q9f/pWP9lyb+sJv9l6vVJ7oRDi1Z7AWx07c7aan+HX3yYBh3Qh/xrZv2XZf1Dtynh0KKLz0+DVbigY3s1mz2kq7FuZM9sSX3Iv2bWf1nWP3Sb7Sgd5s9hZcm/LPmXJf+y5F+W/MvqQ/62owAAQAcp4QAAkJkSDgAAmSnhAACQmRIOAACZKeEAAJCZEg4AAJkp4QAAkJkSDgAAmSnhAACQmRIOAACZKeEAAJDZ4Pi8NF5kMBikEQAAsBLL1OuTzljC52bSpEKT0xHHZtOkQhNTIf+C5F+W/MuSf1nyL0v+ZfUh/5WUcNtRAAAgMyUcAAAyU8IBACAzJRwAADJTwgEAIDMlHAAAMlPCAQAgMyUcAAAyU8IBACAzJRwAADJTwgEAIDMlHAAAMlPCqcqBVyP2H4y467Hh68E30zdgFX78k0++atKX9V9r/pTl/E/fKOF0XnOivXZnxMRUxNe/FbHp9ojdTw1fJ6cjvnRdxNPPp38My3jzZxHfuCdi+nuffD39o/TNjurT+q8xf8py/qfPlHA6rTm5NifavS+kA6fx3pGIG3YN747AUv7ih/MX8+9EvH4oHUi+cE4adFCf1n+N+VOW8z99p4TTaXtfTIMVaO6OvPVOmkDSbHmYuj1iz7PpwIh3D6dBB/Vh/decP2U5/9N3SjidtmH98PXcsyO2bY544o6IffdG3HLV8PioR59LA0iaLQ/N3bKldPlObB/Wf835U5bzP32nhNNpl10SseP6iLefibh/a8SWjRGXzx/bs314fNQrb6QBjLjwvOG6mZpMB5Iu34nt0/qvMX/Kcv6n75RwOq056d5zc5qM2HJFGsAyLr1oeMH+wXcjvvaViF+dSN9IPrcuDTqoD+u/5vwpy/mfvlPCqdbRo2mwQHO3DRb68x2nXrB/eSwNkqMfpUFlaln/fc2fspz/6QMlnGodeC0NFrhuYxrAEkbvxNa6J7nW9d+X/CnL+Z8+UMKp0vsfRDw08rSF5s07zX5BWM7ondga9yTXvP77kD9lOf/TF0o4VXp83+LHUT15dxrAMvpwJ7bm9e9OOGvl/E9fKOFUp/m44tseTpPkxLvm4UxqvxNb+/p3J5y1cP6nT5RwqtLc/Wg+rnih5ukLe25NEziDmp/O0Yf1X3P+lOX8T98o4VSjOQFfOXICbvYB7tsdseGsdADOoNanc/Rl/deaP2U5/9NHSjhVaN6Ic/WdwxPxCevXRby0xwmY1alxT3Kf1r894ayW8z99pYTTec0JeNOOiNcPpQPzmhPwy494LiyrV9ue5L6tf3vCWQ3nf/pMCafzbtx16scRNyfg/Q84AfPp1HYntm/r351wVsP5nz5Twum0bQ9GzM6lSbLzpojDR4bvkj/dV3PnBJZS053YPq5/d8JZKed/+m5wfF4aLzIYDGJuJk0qNDkdcWw2TSo0MRWf+fzPuSbiw1W+ceu+rRHbN6fJGsi/rHHlf/k3V7eGZr4d8dUvp8kaWP9DNedfkvOP8/9aWP9lNfkvU69PciecTlvtCbjhzhoLrXYN/eLDNOiAPqz/mvOnLOd/+k4Jp9MuPj8NVuECewVZoNlDuhrrRvYsl9SH9V9z/pTl/E/f2Y7SYf4cVpb8y5J/WfIvS/5lyb+sPuRvOwoAAHSQEg4AAJkp4QAAkJkSDgAAmSnhAACQmRIOAACZKeEAAJCZEg4AAJkp4QAAkJkSDgAAmSnhAACQmRIOAACZDY7PS+NFBoNBGgEAACuxTL0+6Ywl/NhsmlRoYirip49H/PxoOlCZyemoPv+5mTSpUB/yt/7Lsf7Lkn9Z8i/L+b+sJv+VlPDeb0epdQHCOFj/AJ9Nzv/dZ084AABkpoQDAEBmSjgAAGSmhAMAQGZKOAAAZKaEAwBAZko4AABkpoQDAEBmSjgAAGSmhAMAQGZKOAAAZKaEQ0YHXo3YfzDirseGrwffTN8gC/mXJf+y5A/dooRDy5oL3bU7IyamIr7+rYhNt0fsfmr4Ojkd8aXrIp5+Pv1jxk7+Zcm/LPlDdynh0KLm4tZc6Pa+kA6cxntHIm7YNbw7xXjJvyz5lyV/6DYlHFq098U0WIHm7tRb76QJYyH/suRflvyh25RwaNGG9cPXc8+O2LY54ok7IvbdG3HLVcPjox59Lg0YC/mXJf+y5A/dpoRDiy67JGLH9RFvPxNx/9aILRsjLp8/tmf78PioV95IA8ZC/mXJvyz5Q7cp4dCi5qJ3z81pMmLLFWlAa+RflvzLkj90mxIOhRw9mgYLXHheGtA6+Zcl/7LkD+Up4VDIgdfSYIHrNqYBrZN/WfIvS/5QnhIOBbz/QcRDz6ZJ0rx5qtmvSfvkX5b8y5I/dIMSDgU8vm/x48CevDsNaJ38y5J/WfKHblDCIbPm46JvezhNkhNPLaB98i9L/mXJH7pDCYeMmrtPzcdFL3TpRRF7bk0TWiX/suRflvyhW5RwyKS5AF45cgFs9mHu2x2x4ax0gNbIvyz5lyV/6B4lHDJo3gh19Z3DC+EJ69dFvLTHBTAH+Zcl/7LkD92khEPLmgvgph0Rrx9KB+Y1F8CXH/Fc3hzkX5b8y5I/dJcSDi27cdepHwfdXAD3P+ACmIv8y5J/WfKH7lLCoUXbHoyYnUuTZOdNEYePDJ9ScLqv5s4V4yH/suRflvyh2wbH56XxIoPBII7NpkmFJqYi5mbSpEKT0yH/gsaR/znXRHz4UZqs0H1bI7ZvTpM1kL/810L+Zcm/LNffsvqQ/zL1+iR3wqFFq70ANt49nAasmfzLkn9Z8oduU8KhRRefnwarcIG9mmMj/7LkX5b8odtsR+kwfw4rS/5lyb8s+Zcl/7LkX1Yf8rcdBQAAOkgJBwCAzJRwAADITAkHAIDMlHAAAMhMCQcAgMyUcAAAyEwJBwCAzJRwAADITAkHAIDMlHAAAMhMCQcAgMwGx+el8SKDwSCNAACAlVimXp90xhI+N5MmFZqcjjg2myYVmpgK+Rck/7LkX5b8y2ry/+njET8/mg5UxvovS/5lNfmvpITbjgIAHVRrAQdWRgkHAIDMlHAAAMhMCQcAgMyUcAAAyEwJBwCAzJRwAADITAkHAIDMlHAAAMhMCQcAgMyUcAAAyEwJBwCAzJRwYMUOvBqx/2DEXY8NXw++mb5BFvIvS/7AOCnhwLKaonHtzoiJqYivfyti0+0Ru58avk5OR3zpuoinn0//mLGTf1nyB9qihANLaspFUzT2vpAOnMZ7RyJu2DW8O8h4yb8s+QNtUsKBJe19MQ1WoLk7+NY7acJYyL8s+QNtUsKBJW1YP3w99+yIbZsjnrgjYt+9EbdcNTw+6tHn0oCxkH9Z8gfapIQDS7rskogd10e8/UzE/VsjtmyMuHz+2J7tw+OjXnkjDRgL+Zclf6BNSjiwpKZ03HNzmozYckUa0Br5lyV/oE1KOPCpHD2aBgtceF4a0Dr5lyV/YK2UcOBTOfBaGixw3cY0oHXyL0v+wFop4cCqvf9BxEPPpknSvHmt2S9L++RflvyBcVDCgVV7fN/ix7E9eXca0Dr5lyV/YByUcGBVmo/rvu3hNElOPDWC9sm/LPkD46KEAyvW3P1rPq57oUsvithza5rQKvmXJX9gnJRwYEWaAnLlSAFp9sHu2x2x4ax0gNbIvyz5A+OmhANn1LwR7eo7h0XkhPXrIl7ao4DkIP+y5A+0QQkHltUUkE07Il4/lA7MawrIy494LnIO8i9L/kBblHBgWTfuOvXjuJsCsv8BBSQX+Zclf6AtSjiwpG0PRszOpUmy86aIw0eGT4k43Vdz55DxkH9Z8gfaNDg+L40XGQwGMTeTJhWanI44NpsmFZqYCvkXJP+Ic66J+PCjNFmh+7ZGbN+cJmsgf/mvhfzLcv4vS/5lNfkvU69PciccWNJqC0jj3cNpwJrJvyz5A21SwoElXXx+GqzCBfbKjo38y5I/0CbbUTrMn8PKkn9Z8i9L/mXJvyz5l9WH/G1HAQCADlLCAQAgMyUcAAAyU8IBACAzJRwAADJTwgEAIDMlHAAAMlPCAQAgMyUcAAAyU8IBACAzJRwAADJTwgEAILPB8XlpvMhgMEgjAABgJZap1yedsYQfm02TCk1MRfz08YifH00HKjM5HfIvqA/5z82kSYXkX5b8y5J/Wa6/ZfUh/5WU8N5vR6l1AfaF/AEgP9ff7rMnHAAAMlPCAQAgMyUcAAAyU8IBACAzJRwAADJTwgEAIDMlHAAAMlPCAQAgMyUcAAAyU8IBACAzJRwAADJTwgEAIDMlHAAAMlPCAQAgMyUcAAAyU8IBACAzJRwAADJTwgEAIDMlHAAAMlPCAQAgMyUcAAAyU8IBACAzJRwAADJTwgEAIDMlHAAAMlPCAQAgMyUcAAAyU8IBACAzJRwAADJTwgEAIDMlHAAAMlPCAQAgMyUcAAAyU8IBACAzJRwAADJTwgEAIDMlHAAAMlPCAQAgMyUcAAAyU8IBACAzJRwAADJTwgEAIDMlHAAAMlPCAQAgMyUcAAAyGxyfl8aLnPW5QXz4UZoAAADLWr8u4oOjS9brk5Yt4QAAwPjZjgIAAJkp4QAAkJkSDgAAmSnhAACQmRIOAACZKeEAAJCZEg4AAJkp4QAAkJkSDgAAmSnhAACQmRIOAABZRfx/1xZZEkOSDTQAAAAASUVORK5CYII=\" alt=\"Positions reachable by a knight after 1 and 2 moves\" data-image-state=\"image-loaded\"\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function y = knightSq(n)\r\n  y = 8^n;\r\nend","test_suite":"%%\r\nassert(isequal(knightSq(0),1))\r\n\r\n%%\r\nassert(isequal(knightSq(1),8))\r\n\r\n%%\r\nassert(isequal(knightSq(2),33))\r\n\r\n%%\r\nassert(isequal(knightSq(21),3172))\r\n\r\n%%\r\nassert(isequal(knightSq(67),31692))\r\n\r\n%%\r\nassert(isequal(knightSq(212),315457))\r\n\r\n%%\r\nassert(isequal(knightSq(670),3144981))\r\n\r\n%%\r\nassert(isequal(knightSq(2118),31409941))\r\n\r\n%%\r\nassert(isequal(knightSq(6699),314163004))\r\n\r\n%%\r\nassert(isequal(knightSq(21184),3141417729))\r\n\r\n%%\r\nassert(isequal(knightSq(66992),31415764417))\r\n\r\n%%\r\nassert(isequal(knightSq(211849),314160839004))\r\n\r\n%%\r\nassert(isequal(knightSq(669924),3141589840129))\r\n\r\n%%\r\nassert(isequal(knightSq(knightSq(knightSq(5))),509156381452))\r\n\r\n%%\r\nm = randi([1001 50000]);\r\nassert(all(diff(diff(diff(arrayfun(@knightSq,m:m+randi([5 15])))))==0))","published":true,"deleted":false,"likes_count":0,"comments_count":0,"created_by":46909,"edited_by":46909,"edited_at":"2024-06-15T15:27:46.000Z","deleted_by":null,"deleted_at":null,"solvers_count":7,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2024-06-15T15:27:39.000Z","updated_at":"2025-07-26T06:24:29.000Z","published_at":"2024-06-15T15:27:46.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eSeveral Cody problems involve \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://en.wikipedia.org/wiki/Knight_(chess)#Movement\\\"\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:u/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eknights\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:rPr/\u003e\u003cw:t\u003e from chess. They have asked players to find a \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"\\\"\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:u/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eknight’s tour\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e in a matrix (\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/96\\\"\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:u/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eCP 96\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e), determine whether points are reachable given the moves of a knight and other pieces (\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/1684\\\"\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:u/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eCP 1684\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e), calculate the probability that a knight will remain on a chessboard after a given number of moves (\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/45389\\\"\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:u/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eCP 45389\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e), determine the number of moves to reach a destination (\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/45433\\\"\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:u/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eCP 45433\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e), find when a knight not allowed to revisit squares will be trapped (\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/54780\\\"\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:u/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eCP 54780\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e), and list the squares that a knight can reach after one move (\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/57660\\\"\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:u/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eCP 57660\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis problem involves the number of squares on an infinite chessboard that a knight can reach. If the knight starts on the pink square below, then it can reach the eight squares marked “1” after one move and the 33 squares marked “2” after two moves. \u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eWrite a function to compute the number of squares that a knight can reach after n moves. \u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"279\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"369\\\"/\u003e\u003cw:attr w:name=\\\"verticalAlign\\\" w:val=\\\"baseline\\\"/\u003e\u003cw:attr w:name=\\\"altText\\\" w:val=\\\"Positions reachable by a knight after 1 and 2 moves\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId1\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\",\"relationship\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"target\":\"/media/image1.png\",\"relationshipId\":\"rId1\"}]},{\"partUri\":\"/media/image1.png\",\"contentType\":\"image/png\",\"content\":\"data:image/png;base64,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\",\"relationship\":null}],\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"target\":\"/matlab/document.xml\",\"relationshipId\":\"rId1\"}]}"},{"id":61155,"title":"FEN to Chess Board","description":"Note: This problem is the reverse, or complement, of Problem 61144 - FEN Chess Notation.\r\nGiven a FEN (Forsyth-Edwards Notation) string representing a chess board position, convert it to an 8-by-8 character matrix.\r\nFEN notation encodes each rank (row) from top to bottom, separated by slashes (`/`). Numbers 1-8 represent consecutive empty squares.\r\nThe output matrix uses:\r\nDots (`.`) for empty squares\r\nLetters for pieces: `rnbqkp` (black pieces) and `RNBQKP` (white pieces)\r\nIf the FEN string contains additional fields (castling rights, en passant, etc.), ignore everything after the first space and only parse the board position.\r\n\r\nExample 1\r\nStarting position.\r\nInput: 'rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR'\r\nOutput:\r\n['rnbqkbnr';\r\n 'pppppppp';\r\n '........';\r\n '........';\r\n '........';\r\n '........';\r\n 'PPPPPPPP';\r\n 'RNBQKBNR']\r\nExample 2\r\nAfter white plays e4:\r\nInput: 'rnbqkbnr/pppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBNR'\r\nOutput:\r\n['rnbqkbnr';\r\n 'pppppppp';\r\n '........';\r\n '........';\r\n '....P...';\r\n '........';\r\n 'PPPP.PPP';\r\n 'RNBQKBNR']\r\nNote: The `4P3` means 4 empty squares, then P, then 3 empty squares.","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.44px; min-height: 0px; white-space: normal; color: rgb(33, 33, 33); font-family: Menlo, Monaco, Consolas, monospace; font-style: normal; font-size: 14px; font-weight: 400; text-decoration: none; white-space: normal; \"\u003e\u003cdiv style=\"block-size: 1311.88px; display: block; min-width: 0px; padding-block-start: 0px; padding-inline-start: 2px; padding-left: 2px; padding-top: 0px; perspective-origin: 333.5px 655.938px; transform-origin: 333.5px 655.938px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.5px; text-align: left; transform-origin: 309.5px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eNote: This problem is the reverse, or complement, of \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://www.mathworks.com/matlabcentral/cody/problems/61144-fen-chess-notation\"\u003e\u003cspan style=\"border-block-end-color: rgb(0, 91, 130); border-block-start-color: rgb(0, 91, 130); border-bottom-color: rgb(0, 91, 130); border-inline-end-color: rgb(0, 91, 130); border-inline-start-color: rgb(0, 91, 130); border-left-color: rgb(0, 91, 130); border-right-color: rgb(0, 91, 130); border-top-color: rgb(0, 91, 130); caret-color: rgb(0, 91, 130); color: rgb(0, 91, 130); column-rule-color: rgb(0, 91, 130); outline-color: rgb(0, 91, 130); text-decoration-color: rgb(0, 91, 130); text-emphasis-color: rgb(0, 91, 130); \"\u003e\u003cspan style=\"\"\u003eProblem 61144 - FEN Chess Notation\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 21px; text-align: left; transform-origin: 309.5px 21px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eGiven a FEN (\u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://en.wikipedia.org/wiki/Forsyth%E2%80%93Edwards_Notation\"\u003e\u003cspan style=\"border-block-end-color: rgb(0, 91, 130); border-block-start-color: rgb(0, 91, 130); border-bottom-color: rgb(0, 91, 130); border-inline-end-color: rgb(0, 91, 130); border-inline-start-color: rgb(0, 91, 130); border-left-color: rgb(0, 91, 130); border-right-color: rgb(0, 91, 130); border-top-color: rgb(0, 91, 130); caret-color: rgb(0, 91, 130); color: rgb(0, 91, 130); column-rule-color: rgb(0, 91, 130); outline-color: rgb(0, 91, 130); text-decoration-color: rgb(0, 91, 130); text-emphasis-color: rgb(0, 91, 130); \"\u003e\u003cspan style=\"\"\u003eForsyth-Edwards Notation\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e) string representing a chess board position, convert it to an 8-by-8 character matrix.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 21px; text-align: left; transform-origin: 309.5px 21px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eFEN notation encodes each rank (row) from top to bottom, separated by slashes (`/`). Numbers 1-8 represent consecutive empty squares.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.5px; text-align: left; transform-origin: 309.5px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe output matrix uses:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cul style=\"block-size: 40.875px; font-family: Helvetica, Arial, sans-serif; list-style-type: square; margin-block-end: 20px; margin-block-start: 10px; margin-bottom: 20px; margin-top: 10px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 316.5px 20.4375px; transform-origin: 316.5px 20.4375px; margin-top: 10px; margin-bottom: 20px; \"\u003e\u003cli style=\"block-size: 20.4375px; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 288.5px 10.2188px; text-align: left; transform-origin: 288.5px 10.2188px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eDots (`.`) for empty squares\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4375px; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 288.5px 10.2188px; text-align: left; transform-origin: 288.5px 10.2188px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eLetters for pieces: `rnbqkp` (black pieces) and `RNBQKP` (white pieces)\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003c/ul\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 21px; text-align: left; transform-origin: 309.5px 21px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eIf the FEN string contains additional fields (castling rights, en passant, etc.), ignore everything after the first space and only parse the board position.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 273.667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 136.833px; text-align: left; transform-origin: 309.5px 136.833px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cimg class=\"imageNode\" style=\"vertical-align: baseline\" src=\"data:image/png;base64,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\" data-image-state=\"image-loaded\"\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.5px; text-align: left; transform-origin: 309.5px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eExample 1\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.5px; text-align: left; transform-origin: 309.5px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eStarting position.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003eInput: 'rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003eOutput:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e['rnbqkbnr';\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e 'pppppppp';\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e '........';\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e '........';\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e '........';\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e '........';\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e 'PPPPPPPP';\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e 'RNBQKBNR']\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.5px; text-align: left; transform-origin: 309.5px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eExample 2\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.5px; text-align: left; transform-origin: 309.5px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eAfter white plays e4:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003eInput: 'rnbqkbnr/pppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBNR'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003eOutput:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e['rnbqkbnr';\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e 'pppppppp';\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e '........';\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e '........';\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e '....P...';\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e '........';\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e 'PPPP.PPP';\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.8333px; text-align: left; transform-origin: 309.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e 'RNBQKBNR']\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 309.5px 10.5px; text-align: left; transform-origin: 309.5px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eNote: The `4P3` means 4 empty squares, then P, then 3 empty squares.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function board = fenToBoard(fen)\r\n  board = [];\r\nend","test_suite":"%% Test 1: Starting position\r\nfen = 'rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR';\r\nboard_correct = ['rnbqkbnr';\r\n                 'pppppppp';\r\n                 '........';\r\n                 '........';\r\n                 '........';\r\n                 '........';\r\n                 'PPPPPPPP';\r\n                 'RNBQKBNR'];\r\nassert(isequal(fenToBoard(fen), board_correct))\r\n\r\n%% Test 2: After 1.e4\r\nfen = 'rnbqkbnr/pppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBNR';\r\nboard_correct = ['rnbqkbnr';\r\n                 'pppppppp';\r\n                 '........';\r\n                 '........';\r\n                 '....P...';\r\n                 '........';\r\n                 'PPPP.PPP';\r\n                 'RNBQKBNR'];\r\nassert(isequal(fenToBoard(fen), board_correct))\r\n\r\n%% Test 3: After 1.e4 c5\r\nfen = 'rnbqkbnr/pp1ppppp/8/2p5/4P3/8/PPPP1PPP/RNBQKBNR';\r\nboard_correct = ['rnbqkbnr';\r\n                 'pp.ppppp';\r\n                 '........';\r\n                 '..p.....';\r\n                 '....P...';\r\n                 '........';\r\n                 'PPPP.PPP';\r\n                 'RNBQKBNR'];\r\nassert(isequal(fenToBoard(fen), board_correct))\r\n\r\n%% Test 4: After 1.e4 c5 2.Nf3\r\nfen = 'rnbqkbnr/pp1ppppp/8/2p5/4P3/5N2/PPPP1PPP/RNBQKB1R';\r\nboard_correct = ['rnbqkbnr';\r\n                 'pp.ppppp';\r\n                 '........';\r\n                 '..p.....';\r\n                 '....P...';\r\n                 '.....N..';\r\n                 'PPPP.PPP';\r\n                 'RNBQKB.R'];\r\nassert(isequal(fenToBoard(fen), board_correct))\r\n\r\n%% Test 5: Complex middle game position\r\nfen = 'r1bk3r/p2pBpNp/n4n2/1p1NP2P/6P1/3P4/P1P1K3/q5b1';\r\nboard_correct = ['r.bk...r';\r\n                 'p..pBpNp';\r\n                 'n....n..';\r\n                 '.p.NP..P';\r\n                 '......P.';\r\n                 '...P....';\r\n                 'P.P.K...';\r\n                 'q.....b.'];\r\nassert(isequal(fenToBoard(fen), board_correct))\r\n\r\n%% Test 6: Empty board\r\nfen = '8/8/8/8/8/8/8/8';\r\nboard_correct = ['........';\r\n                 '........';\r\n                 '........';\r\n                 '........';\r\n                 '........';\r\n                 '........';\r\n                 '........';\r\n                 '........'];\r\nassert(isequal(fenToBoard(fen), board_correct))\r\n\r\n%% Test 7: Only kings\r\nfen = '4k3/8/8/8/8/8/8/4K3';\r\nboard_correct = ['....k...';\r\n                 '........';\r\n                 '........';\r\n                 '........';\r\n                 '........';\r\n                 '........';\r\n                 '........';\r\n                 '....K...'];\r\nassert(isequal(fenToBoard(fen), board_correct))\r\n\r\n%% Test 8: Single piece per row\r\nfen = 'r7/1n6/2b5/3q4/4k3/5B2/6N1/7R';\r\nboard_correct = ['r.......';\r\n                 '.n......';\r\n                 '..b.....';\r\n                 '...q....';\r\n                 '....k...';\r\n                 '.....B..';\r\n                 '......N.';\r\n                 '.......R'];\r\nassert(isequal(fenToBoard(fen), board_correct))\r\n\r\n%% Test 9: Alternating pieces and spaces\r\nfen = 'r1r1r1r1/1p1p1p1p/n1n1n1n1/1b1b1b1b/B1B1B1B1/1N1N1N1N/P1P1P1P1/1R1R1R1R';\r\nboard_correct = ['r.r.r.r.';\r\n                 '.p.p.p.p';\r\n                 'n.n.n.n.';\r\n                 '.b.b.b.b';\r\n                 'B.B.B.B.';\r\n                 '.N.N.N.N';\r\n                 'P.P.P.P.';\r\n                 '.R.R.R.R'];\r\nassert(isequal(fenToBoard(fen), board_correct))\r\n\r\n%% Test 10: All pawns\r\nfen = 'pppppppp/pppppppp/pppppppp/pppppppp/PPPPPPPP/PPPPPPPP/PPPPPPPP/PPPPPPPP';\r\nboard_correct = ['pppppppp';\r\n                 'pppppppp';\r\n                 'pppppppp';\r\n                 'pppppppp';\r\n                 'PPPPPPPP';\r\n                 'PPPPPPPP';\r\n                 'PPPPPPPP';\r\n                 'PPPPPPPP'];\r\nassert(isequal(fenToBoard(fen), board_correct))\r\n\r\n%% Test 11: After 1.d4 Nf6 2.c4 e6\r\nfen = 'rnbqkb1r/pppp1ppp/4pn2/8/2PP4/8/PP2PPPP/RNBQKBNR';\r\nboard_correct = ['rnbqkb.r';\r\n                 'pppp.ppp';\r\n                 '....pn..';\r\n                 '........';\r\n                 '..PP....';\r\n                 '........';\r\n                 'PP..PPPP';\r\n                 'RNBQKBNR'];\r\nassert(isequal(fenToBoard(fen), board_correct))\r\n\r\n%% Test 12: After 1.e4 e5 2.Nf3 Nc6 3.Bb5\r\nfen = 'r1bqkbnr/pppp1ppp/2n5/1B2p3/4P3/5N2/PPPP1PPP/RNBQK2R';\r\nboard_correct = ['r.bqkbnr';\r\n                 'pppp.ppp';\r\n                 '..n.....';\r\n                 '.B..p...';\r\n                 '....P...';\r\n                 '.....N..';\r\n                 'PPPP.PPP';\r\n                 'RNBQK..R'];\r\nassert(isequal(fenToBoard(fen), board_correct))\r\n\r\n%% Test 13: Endgame - King and pawns\r\nfen = '8/3k4/2p1p3/8/8/2P1P3/3K4/8';\r\nboard_correct = ['........';\r\n                 '...k....';\r\n                 '..p.p...';\r\n                 '........';\r\n                 '........';\r\n                 '..P.P...';\r\n                 '...K....';\r\n                 '........'];\r\nassert(isequal(fenToBoard(fen), board_correct))\r\n\r\n%% Test 14: All pieces on first rank\r\nfen = 'rnbqkbnr/8/8/8/8/8/8/RNBQKBNR';\r\nboard_correct = ['rnbqkbnr';\r\n                 '........';\r\n                 '........';\r\n                 '........';\r\n                 '........';\r\n                 '........';\r\n                 '........';\r\n                 'RNBQKBNR'];\r\nassert(isequal(fenToBoard(fen), board_correct))\r\n\r\n%% Test 15: Pieces at edges\r\nfen = 'r6r/p6p/8/8/8/8/P6P/R6R';\r\nboard_correct = ['r......r';\r\n                 'p......p';\r\n                 '........';\r\n                 '........';\r\n                 '........';\r\n                 '........';\r\n                 'P......P';\r\n                 'R......R'];\r\nassert(isequal(fenToBoard(fen), board_correct))\r\n\r\n%% Test 16: After 1.Nf3 Nf6 2.g3 g6\r\nfen = 'rnbqkb1r/pppppp1p/5np1/8/8/5NP1/PPPPPP1P/RNBQKB1R';\r\nboard_correct = ['rnbqkb.r';\r\n                 'pppppp.p';\r\n                 '.....np.';\r\n                 '........';\r\n                 '........';\r\n                 '.....NP.';\r\n                 'PPPPPP.P';\r\n                 'RNBQKB.R'];\r\nassert(isequal(fenToBoard(fen), board_correct))\r\n\r\n%% Test 17: Queen's Gambit Declined\r\nfen = 'rnbqkb1r/ppp2ppp/4pn2/3p4/2PP4/2N5/PP2PPPP/R1BQKBNR';\r\nboard_correct = ['rnbqkb.r';\r\n                 'ppp..ppp';\r\n                 '....pn..';\r\n                 '...p....';\r\n                 '..PP....';\r\n                 '..N.....';\r\n                 'PP..PPPP';\r\n                 'R.BQKBNR'];\r\nassert(isequal(fenToBoard(fen), board_correct))\r\n\r\n%% Test 18: Scattered position\r\nfen = '3q4/8/1k4n1/8/5P2/2N5/8/3Q1K2';\r\nboard_correct = ['...q....';\r\n                 '........';\r\n                 '.k....n.';\r\n                 '........';\r\n                 '.....P..';\r\n                 '..N.....';\r\n                 '........';\r\n                 '...Q.K..'];\r\nassert(isequal(fenToBoard(fen), board_correct))\r\n\r\n%% Test 19: Dense position\r\nfen = 'rnbqkbnr/pppppppp/2N5/8/8/8/PPPPPPPP/R1BQKBNR';\r\nboard_correct = ['rnbqkbnr';\r\n                 'pppppppp';\r\n                 '..N.....';\r\n                 '........';\r\n                 '........';\r\n                 '........';\r\n                 'PPPPPPPP';\r\n                 'R.BQKBNR'];\r\nassert(isequal(fenToBoard(fen), board_correct))\r\n\r\n%% Test 20: Single empty squares between pieces\r\nfen = 'r1b1k1b1/p1p1p1p1/1n1q1n1r/8/8/1N1Q1N1R/P1P1P1P1/R1B1K1B1';\r\nboard_correct = ['r.b.k.b.';\r\n                 'p.p.p.p.';\r\n                 '.n.q.n.r';\r\n                 '........';\r\n                 '........';\r\n                 '.N.Q.N.R';\r\n                 'P.P.P.P.';\r\n                 'R.B.K.B.'];\r\nassert(isequal(fenToBoard(fen), board_correct))\r\n\r\n%% Test 21: FEN with additional fields (ignore after space)\r\nfen = 'rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1';\r\nboard_correct = ['rnbqkbnr';\r\n                 'pppppppp';\r\n                 '........';\r\n                 '........';\r\n                 '........';\r\n                 '........';\r\n                 'PPPPPPPP';\r\n                 'RNBQKBNR'];\r\nassert(isequal(fenToBoard(fen), board_correct))","published":true,"deleted":false,"likes_count":0,"comments_count":0,"created_by":7,"edited_by":7,"edited_at":"2026-01-08T15:29:54.000Z","deleted_by":null,"deleted_at":null,"solvers_count":6,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2026-01-07T22:18:23.000Z","updated_at":"2026-02-22T15:09:57.000Z","published_at":"2026-01-08T15:29:54.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eNote: This problem is the reverse, or complement, of \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/61144-fen-chess-notation\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eProblem 61144 - FEN Chess Notation\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eGiven a FEN (\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://en.wikipedia.org/wiki/Forsyth%E2%80%93Edwards_Notation\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eForsyth-Edwards Notation\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e) string representing a chess board position, convert it to an 8-by-8 character matrix.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFEN notation encodes each rank (row) from top to bottom, separated by slashes (`/`). Numbers 1-8 represent consecutive empty squares.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe output matrix uses:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eDots (`.`) for empty squares\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eLetters for pieces: `rnbqkp` (black pieces) and `RNBQKP` (white pieces)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eIf the FEN string contains additional fields (castling rights, en passant, etc.), ignore everything after the first space and only parse the board position.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"verticalAlign\\\" w:val=\\\"baseline\\\"/\u003e\u003cw:attr w:name=\\\"altText\\\" w:val=\\\"\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId1\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eExample 1\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eStarting position.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eInput: 'rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR'\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eOutput:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e['rnbqkbnr';\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e 'pppppppp';\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e '........';\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e '........';\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e '........';\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e '........';\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e 'PPPPPPPP';\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e 'RNBQKBNR']\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eExample 2\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eAfter white plays e4:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eInput: 'rnbqkbnr/pppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBNR'\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eOutput:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e['rnbqkbnr';\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e 'pppppppp';\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e '........';\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e '........';\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e '....P...';\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e '........';\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e 'PPPP.PPP';\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e 'RNBQKBNR']\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eNote: The `4P3` means 4 empty squares, then P, then 3 empty squares.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\",\"relationship\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"target\":\"/media/image1.png\",\"relationshipId\":\"rId1\"}]},{\"partUri\":\"/media/image1.png\",\"contentType\":\"image/png\",\"content\":\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQoAAAEMCAYAAAA8kvjUAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAB3RJTUUH6gEIDxsUO2/LwQAAIABJREFUeJzsnXd4HNXVh987bVfFstx777jgXgEbE4pNsQklkEAIDoQQAqEFEkiAQIAvJAGCAwQIHUwzxAWwDTYYG9u49yZ3ybItWbIkq+zu1O+PkYSFJKvvWnDf50mA1c7eOTN3fnPvueeeI3Jzcz0kEonkJCixPgGJRHLqI4VCIpFUiVbuA01DCBGLc5FIJKcAQghs28Z13dLPtO9+ITc3F8/ziKXjQiAglmLlecTyCkj7pf2xsl8ApmUSHxdHXFwcnudfhzJCEQgEmDFjBvPnzyMYDMbiPH08Sk8wFggh/CsWK6T9sbVfifGI2vOIjfkeiqISCoeZNm0aF110Efn5+UAFI4rMrBy6t9GZdsV4CorCUT9VVdPIzjjK5hVrUNVyM6MGx7ZM+gwZSIceXbBNK+rta7rOkdSDbFu9EU3Xo96+Y1v0HzWU1h3aYlt2tY/z8LXFMHQUIXBcF8uySz+vLpqhk5qyl90bt6EZRg3Pvu64rsOgsSNo1qoFjl19++sLzdDZu2Un+7fvion9uq6xNM0mv7CojAui3JPoeYJ2rVvQv3dncvNDUT1J8B+UjKBG7u5kVC36QmGaJj06t6Frz85YETPq7euGQQIOefsPYBjRFwrLsujZpR3tu3bCqoFQCiGwHYe09Ezyi0I0bZJA985tEULU6O2oBwz0cCGhQ4cwAtV/UDxAEaBrarFQeVi2U/2Gi3/EdR16d21Pi3ataySU9YUeMCAvByvraI3sr7f2dZ2knEKEKLvOUe5JFAJsxyUcsYjE4I3qeGBaNpbj4gq36gPqGdtxMS2HiGnV6EGpL1wEpmVjOy7CiZX9do3tb5IQx/GCIm5/6EU2bd/HxDMG89ITv0MVCkWRSLV/xxUC03JqbL8QAtvz2HUwm5BlkZwQR4dWTXFqcg09cF2XSLH9sRCKquxXFIGuqmU+s2wH1/MwNLXMKMBxXWzHRVMVVFWhxO3ieb6IVqjfiotbgbJH/5Ut+V4hEHiex+pNKezck07KvnRyjxeyLSWVTxatonuntvTq3h7XbbhJtyj2/a1POcQr81eRH4rQqVUyN144iq5tm+O40RfchkBRBDn5IVIzcyl96hF0a9uchKDB1v0ZFEUsFEXgui7tmifRrkUS+4/kkJVXiKoquK5HfFCnW7vm6KpabV+QFApJnVBU/w348NPv8OWyjaWf79idxs9/9w+unjKBf//1ZmzPqfBNVS/nIBTCpsWsZVvIPl4EwJ5D2SxYk8JvLhmD6xEj52D9oqsqO9MyeX72ihNkAv7w04mc1qUNb3y+ltSMnOLpnsdlZw3kF+eP4PM1KXy5YQ+qInA9j85tmnHPT8YTbBKP7UihkEQBz/MQCCaMHkRcwGDZ6q3k5RfRplUyo4f0ZeTg3riu28CLjR66pjKwezsOZOZgWg5NE4L07dy6QVuNBY7jYn7H97J6RxrpWXlk5xVinzBd2Zl2lE9Wbmf/kRwc16XkTxHTrrFwSqGQ1AnX9VAUwe03TOFY7jlceN0D5OWnclqvLrz8zztQhGhQX5cQoKoqmgJNE4MoxXN0Q1dpmhBE11RczyvzADVmKgqGnLdqR4Xf3bD7EBt2Hyr3uVKL5V8Zwi2pNooiUBSl9J8lnVZTFYpCEd6YuZC09CwAtqWk8s6sxTiuW9oxhSh7fG067IkIIdAUlW+2HeDVBav5aOkWwqbvgDyaW8iMhet487O17Ew7SkCX78S6IIVCUiVCgKb6HnXfcSiK3+QKhqHjevDsax/zlyffpklyIvffP43jRSH++PirvPXRF+iahqFrqIpS/Ht+QJcQSvHv1u6cVEWwZNNeXp2/mk++2U5eQdnl/NTMXD5cuplX561m6/6McqsFjZET/Tzfim71/wfUyrEsZVZyUoQQBAyNzTsO8Pybn1BUFEYoAtf1uPKiM5k0cTi247Do6/UYQYOfXzuZQMDghl9OYfr091i6civXXf4jbMfh/blL+eyrdaiaius6tGrWlN9efzFdOrbBtKwazZsDusbqHQd5e+E6ck4QCCEEqqpgnzCP33fkGK8tWM0tU8bRtW0zIjFY9qwvSqZWF154JldeeS6maVVr5UJVFfLzC3n8b2/gRcI1DryVQiGpFCEE8XEBNm3fx10Pv8jqTbsxAnppJ9uwbS8vvj2PX18zmR7dOvCT6y5k2dcb+fTTZfz8ugv562O/IXXbfmbNX86LM+aTeiiL7LzjxSHafnDXgUNHefKBG+nSsTVFoerFWwh8J+rOg5llRAKgS5e2XH31+Tz99DuETvi9fYePkXY0l27tmtXT1Yk+lu1weo/2XDiqL7t2HeB///sS07RwnKoDy4yAQTgSIUFTuPSMITRJCNZo2VgKhaQSBIoQrN+yhz898TpKMMDsWf8kEvE7pqoqvPf+53z55Rr+9Pc30AMGP71hCh/O/ILCwhDZ2Xn86JxRvPjsTBYuXU9eUYipU85m0gVjME2LQMDAsiwefvgl/vT313nojmvo2K5ltd50hq7xzfZUlmzaV+5vgYDBkCF9Kwy0mrNsKx1aJtGtXQvMRjiqcD2P5MQ4rphwOq9+upJZs74kGDRo0iQBz6vsoRd4eGRn5aEL+PWUsYzp3xXbcXBqMAWRQiGpEENXSc86xh0PvUBWfiEL5v+btLRMHnroRVzXRQi4/PJzuPOOn/HYY6/wySdfc/99z/HLX07BcTwmnj2Cu+56krTDR7nmmsnc/Osr+fDDz/nrX1/G8zwSEuKYPv33vPjSn5g8+Xfc/8TrvPC3W0kKBk56XooiMG2HPYeyyc4rBPyRT4cOrdA0je7dOxIIGPTr143CwhB5eQUcPZoD+FOQtMxcOrdphhCNM7YiYtnEB3R+MWkkKApjLzybKZecRThc8b4sIRQc1+Vvj71CV8Nj/OAepZGcNUEKhaRChPBDyVPTM+nQpR05Ofnceec/2bJlT+l3Dh06yuzZXzF16tk0aRLP3LlLCYUijB07kIyMY6SlZXLzry+jefNkbrnlcfbtO0hubkHp8Xff/TSPPvobgnEGqemZuK5XZS4UQ9NYm5LGonW7Sj/TNJVf/nIqgwb1Ij4+SL9+XXnggRvRNJVZsxbz6qtzSr87e/k2erRvQYdWyY1yVAF+mH1yYhxNE+J4882PmT9/GW4ly79C+M7LjCNZjLtwJKqiEPFquAcGKRSSk+A7MnWEEGRl5ZCefrTM3zMzc8jMzGHv3nTuvvta8vIKePfd+fziFxfzzDPv8pOfnEuLFsk8+eTbFBaW32CYmnqYnJx8FEUhUM0NcIqA46EIxwu/fYPatsMzz7xLIKDTu3dnbrvtau699xkKC0MUFpZ902YcO07Ychr9cp/jejiuy8G0DA6mZVT5fU1RcD2v1tGxjf16SRoQ1/MoCkVQFEFcXKBSp1l2dh4vvzyL2267CiEU7r13Or17d+Gqq87juec+qFAkwH/TxccH8YrbqY733nZd2iQ3oXPr5NLPPM8jJ+c4R45kk5mZg+d5pKdncuRINvn5hWWO79e5DU3ijO/N/o/qoqp1e9SlUEgqxHU9EoIBzho9kKKCMFu37WXYsH6VTg2OHy8gISEeTVMpKgoTHx8gGDQ4frywwu/rusbgwb1Zs3Y7hqZxxsj+6JpWpVhYtsNpXVpz5qAeFf69qCjMihWbKj3PSaP60rZZE6zvSaRmtJBCIakQy7Zp0SyJe265grTUw8yavYSbbrqs0gc5HDZxHKf0AfWXPx2sSvwAgYDB9ddfwn//OwvV87jzVz8mGDCwq1jq8zx/2N2nY0t6dGhR7u+pqUd48sm3yyyNljCibyfatUjCbsCdrKcqdc0YJn0UkkpxXZe2LZtx6aSxLFmzg127U5k6dQKzZi0G4Oyzh3PGGYMJh02aN0+ifftWpcJgWTa9e3fhz3++gUjEwjB05s1bxtq12xFCcNllE1m5cit5uflcfdGZJDWJx/VclGq8uyzb4fSe7RmZ1pk96dnVtuecob3o3KYZhdWM1ziVqWnAlOd5dUrDKYVCUimW7ZCclMAjv/85jzz1Di/+5yOm/fISJk8ehxBw9GgueXmFKIpCfn4RTz/9Dvv2+ZuQ1q/fyXPPvU8wGEAIME2Ln/zkXG666XLAJWVXKv/97yyu+/EEfvfLSzEMDdt2UKrZIyOWzYBubenWtjn7jhwDoEmTeO67bxrt27dj3brN/Otf75Z+f0TfTnRq1RTTin4yovpGCH+ZWAA/u2YyEyYMw6wkG5soTkv49hufYFt2rX0VUigkJ8W0bJKTEnjgjp9SFArz6mtz+dnPJhEwdGbOXFRmufREUlOP8NRTM8p8Nm7cYM47bzR5efm89fY8rpw0jjtu/DGGrtV4qdKyHfp0asW15w5jxuINnD9lIn16d+bw4SxycnbTpEkizz57L4u+WM2e9du59kdDadOsCWHLjmne4LpSstdm+db9bN6fwYiOHcjMOIZViQAK4eegCEdMFq7dTdsWTWnZNKHGu2mlUEiqJByxaNWyKZdeOJZ35y7h8cdeLf1bMGiU2WTkD28F8G0m6ZLPli3bwLJlGwBIiA9y2eRxJCbEUVDJqsjJUIv3mxw+dpxjuYVs2bKH7KwcZs1aTDhs0rZtCy64YBy7dx/kaE4+mbkFtG/VFLX4wWmsGJrG+t3pvPzpKs69aDw/ueKcSleVStA0le53XsNDf3mJl+Ys57eXnUWT+ECNxEIKhaRaFBWFGdK/J7+57iJe+2AhiYlxXHzxWUyYMJxw+ORJiIXwC0t9/PESFi9eSyRicscvp9Ktc1tC4Zr7C4QAx/FYtC6Fd77YgKsobN2ym9GjpvLKKw9i236I+YIF35B64BCFRRH++8kqpk0eycBubYtlrHGiKILD2cc5lh9ix/a9fPSRKLMBruJjFCzL5tixPLIiEUIRi6YJNSvHIYVCUi1s26Fz+1YMHdCTgznHuenXl7F61TbmzPkKvRq5HhzHZdSoAVxzzWSee/Z9Rg7uTesWTck9XlijynQCf8v7ql1pzFq2hYJQhLvuvpbJk8by6qtzWLZsA5qmYtsOI0f2Z86cp/jnk28xe9ZXfPDVRpISgnRv17zmGbpjjBACTVUwNLU0OG3jhhQ2bkip0e+0bp6IoWsYNUzoI4VCUi10XaOgMERqeib79h1i7twldOvagUsuGV+m9FxlKIrCgQOHmPvxEtIPZrIvLYOwaaNrapWdtSQFfwlCCPp1bsU9V53N4vV7mPfJUpYv28CaNdvLLMdu3bqH1au3cvRwFtedO4zBvTrQomk8qqKg6OWzVZ+qlITTHzkWQtcUsnILaNOmBe07tMKrZuCYEALTtDmenUtaZg4h00RXVZIT46o1wpJCIakSRRGETYv35nzFUy/9j7MmDGPqlAm8//5CXnzxoypHFJ7n4TguU6aM58eXns3mTXt4+Km3SYiPY9LZw0qTwX4XgS8wGcfy/ezSJTEaeGiKQlDXGDugKynzVrJi+/5yx+fk5LN06QbOHNiV03u1R1UFmTkFuF6+X7YPP/q0aWKQZolx2PapKRa6qpCakc9zs5eTH4pQFDK58uoL+OUvpxCJmNWKkdB1jWM5+fzp/md5auYSNE1lWK8OTJs0EkVV8KqILZFCIakSTVXZn5bBzE+WkV8Y4vOFK9m6dQ8ZGccqDGyqjBdf/IiZMxeRmnYEz/X48NOvGTWkN21aNsP6blUu4Zf2234ggxmL1nMkJ7/MqKIEVVEo+s7SYOvkRDJP2Hy2btchtu7PrDBs2/U8+nVuzVUTh9C+RRNOychuAZbjkJlbUJrqb86cr1i6dF21s1WV+HUySldILHIKQtX21UihkFSJZTt069SOO26cSnx8gJ27DrJ//+Ea/05+fhH5+UX07NqePj06cNu0S2jdIrnCaMwSTdiemsmu4jyc1WFs/65MGNydDxZvKj2uMGxSeBKH65Z9R9h/5BgdWzWtmUFRpMRHUUJeXgF5eQUnOaJqSlITVgcpFJIq8TwPF5fxowcyfvQgFi5dz4effs3qjbtIO3S06h8opk/3jgwe0J1rLzuHkYN7F4djuxUOnT0X8OCCkX0ImzZzV2ytMn/E6NO6cP0Fw2mZnECzxHien7OCvYdPHrmZGGdw9cQhjOzXucrw8Vjiel7paKK++G7a/5MhhUJSLfyHWaCqgvPGD+W88UP5aN5ylnyzuVrRfo7rcfG5ozj3zMF+7gThV7M62fza9TwS4wJceuYAAoZKdl7FKyQe/jbqSaP6ktwknlDEplu75lxz7lC+3ryv0tBl1/Po2b4l5wztBXg41SyGE21c1yM5Po7zhveut4Ax1/Po1rZ5caW3qr8vhUJSbTzPw7b9jV+KEPx40lgumzyuWh3XKz7esf3alpWnbiuLZTsEdI3LzxpU5XddzyuN8IxYNqd1aU3/rm1Oek54FJ/PqSkS4Ceqadk0nuvOH15vv+nb7uG41bO9vFB4fkEVPWCgm9EfiumGjqKqWBGzWstu9Y0ZMRFC+JWkY9B3jICBUJTi2P3on4BlWiiKUlxJ++QSUBJOXB1KEuJ6ysm3LBsBw1/Ki5hlmhdCnPRsfCEq+TcfG1HlRqgSASv5D9dxUFW1+Dyiv7m6pIL5d+2n2Jb6DD8vY3vphxULRzmh0HSNI7vTWffVCgrD0d9A43keesBg6ISxMVF5RVEoyMtn1cKlKDVw9tQXrusSiItj5DnjGrSwb2UIITiWkcXhA+l1LtBTG1zXJS4hnpE/OjMmLwohBIcOpJG6a2+NAsHqC9d1iW+SGBP7/QhanaUZ6/HcsoOEckKhaAq52cfYv2M3ISv6IwrLtGjfpSMDxwzHiUFOQyMQYM3iZezduhOjikSvDYEZidC1by9OHzsMMxJ9odYNneXzviRtz36MQPXS09UnZjhCnyED6d6/D2YtwrvrhABFVVk69zMyDx5BN6I/MzfDEQaOGR4T+0uEQje2lHtJn3TqYYvoC4UQonTq4Xx3bT2K52AEAuiGEZP2leKph9WANTsrw/M8FNWfeujVzGNZvydQHEUYiWCZJ99DUu8IUBS1dOqhxaIMYfHzGQv7hQCvEp+FzHAlkUiqRAqFRCKpknodW/mFaL91AHmeR8RyTumlJ8n3AyEEcUHDj+nwQz6wLIdwJZmf6htFCAxdLeMAdVwXM0p+PkUI4oKBbx3QAkzTJlJP09f6EQrhB7zsSM0kK7cApbiGQELQ4LSubRp9shDJqY2iCFRFYfGKzWRm56IqfnWsXl3bM/i07oQaWCwUIbBdl407DhE2bT+rlOvSulkTenZo0eA7U1VFwcPjs6XryM0rRFH89k/r3ZnTenWpVc6P71IvQqEqClv2HeGVeatJz8or3bbaJD7Az340lDMHdUMR8ANMfixpYBRFwXUdZs1fwSP/eoeDh7NKd6MOGdCDh++6llFD++K6ToOUEFSKX4JfbdzLjEXrKApbpf2/c5tkpk0aSb/OrRtMLBRFwbRs3p+7hMeefZ+s7LxS+8cOP42H776W0/t1q3N4ep19FEIIVCFYse0A6Vl5wLchL/lFEb5cv7s4mk+6QyT1j6oIIhGbl95ZwMHD/iawkqnu+i17+OCTpaiqaLD+J4QgYtl8sX43RcVxRyX9PzUjl1XbU1GVqgO/aoumKuQXhnj+rU/Jyi5+/ortX75mG3MXrkT/zpSoNtTb1av8NBpzKlNJo+AkXSx6g9iKW4pG7/c8OHncat2pN6EI6FqFqhWMQdCK5IeFEJCYEFfuc0UIEuJqlhuydicAwQpiToQQGFGIxVAUUaH9qqIQFzTqRSzrLBR+YRHBhME96Nq2WZm/NU0IMmlUH+IDRkzCcSXff2zHJSE+jjtumEK3TmU3gI0dfhrXX3kueKLB+p/reTSJCzB5ZF8SgmUD9Hq2b8GZp3cHaBD/CIDtOLRs1oS7b7qUtq2Sy/zt3PFDufqS8bhO3Te91VkoNFWhMGyyeudBjuaWrTNZFLFYtSONrLwiNE2ta1MSSTmChk5mVi7/m7eco8fyyvxt1750Pl60ilAkUu1q6TVFUxUycwpZtSONyHe2HGTk5rN250GKInaZpDP1hRAQMAwOHs7io/nLycsvKvP3LTv2M3/xGizbwtDrZn+dxkWKEIQiFu8v3siC1SnlUo1ZtsMX63aTkx/ihskjaZGU8IOrIi1pOBRFkJmdxyNPz+Cd2V+V+3tGVi6PT38Pz/O4+drJqKparzE9qqqQkZPPix+vZPPe8hm/jhdGePfLDRSEIvz4zIGlma/rCyEUDh4+yv1PvMEni1aV+/vBw1n8+R9vIYTCtZdNrDQ3aXWok8zpmsqyLfsrFIkTWb8rnbkrtgFeTHbkSb5/KIqCqihMf3U2785ZUun3bMfhHy98yP/mLycY0Out/ynCL0A06+utFYpECY7j8uk321m5PRW9HkfVqqrgui5PPDezQpEowTQtHn56Bp8vXU+wDpv86iQUQvj5CKszSjheFK5LUxJJhWQdO17lWzIcNsk7XtQgL6nq9GvLcSkKmw3SfuZ3plsVUVAYIr+gbvbXeeJU3anEqZpmTNK4qW4hH9txGySWwalmFGFDRSbb1UzF4Lh1s79OQuG4Hr06tqJ9y6STfq9JfIDTe7YHaj9HkkhOxPP82qY/OmsInTu0Oul3hwzowfBBvbDqcd+Rv9oHg3u2JyHu5OkIOrVOpke7FvXqnytZbZw0cQRtWiaf9LtjhvVjQJ+uWHXYd1InobAdl6G9OvDbS8+gd8eKb1br5ERuvHAU5w/vTeOt+Cg51fA8D9fzuO6yH/Hkg7+iUyViMWpIX/7z+K2cPe708rVD6tI+fpzE5JF9uWHyKFokxVf4vdO6tOHWS89gYI929Zrl23U9VEXw62sv5G/3TaNVi4pLDZxzxum88LdbGTWkb40rxp9IrYWipM7Amp0HWb51f6UXwfU8th3I4Iv1u/E8YpJeTfL9Q1UVhBC8MXMR875YXWlpvXAkwuvvf85nX63F0PUKiwjVBkURuI7HwnW72JGaWWmchGk7LN28jw27D6GrdQ+lLkFT/VKML82Yz5crNlXafkFhiBff+pSvV20laNTemVur5VFFEeiaysptqbzx2RoyciovRJKVV8j8VTtJjDPIL4pw4eh+KKo4pWs9Sk5tVFUhGDB4d/ZX3P+318jKOV7pdzdu28fGbftY+PUGnnnkZsaNOI3ConCdpiCaquB6MHfFVmYv31K6x6MidqdnsTs9izU707j+/OEM69MR03Lq5LNQVQVdV3ntg4U88vQMjhcUVfrdletTWLk+ha9XbWP6X29m8GndKQxFamx/jUcUotjPsHpHGq9XIRInUhAy+eCrTSxYsxPTdho8Nl3y/URRBI7jMmPWlzzwzzdPKhInkrIvnbseeYkvV2xEEaLWb1Z/E5jDvJXb+ejrzScViRM5nH2cVxesYd2udMCrdf9XFAXLsnlxxnwe+/e7JxWJE9mwbS93PvwSKzfsRFGUGjs2aywUAUNlT3o2L8z9hsxqikQJoYjFO4s2sHzrfrkHRFIrEuPjWLMphfv+73WOZObU6NitOw/wx8de40hmDnHB2uVDDRgqSzbu5f3FG4nUsHLX4ezjvDD3G/Zn5BIwahdT0SQxyOLlm3n4qRnk5Nbs+Vu9IYU/PfEGx/MLCdQwH2yNhEIICJs2u9OzyC0I1aihEkIRi5S0LPIKw6gy+EpSAxRFkHu8gFUbUjiWm1+r39h74AjrtuwmHLFqPKpQFUFufoiUg5m1Lu+XlVfI7vQsIpZd87e6Isg6dpxVG3ZSUFi75y9lbzqbtu3Dsu0a2V8joTA0jQNHcpizYluNT/BElmzay9qUg+i63P8hqT6BgMHytdt55uXZtf6NUCTC48++T2p6Zo12dgoo9cut2Hqg1u0DzFm+lbTMvBpHagYCBp8v3cALb8+rdds5eQU8Ov1djmbXrP0aTz1sxyUUqdsyk2U7NSqQKpGA/7Capk1+LUezJRzPL8Kp5VKlaTtYdXTEhyI2Ti1+QwCRiFmnPKCe53G8oKjGAZA1d2YKUSaBbm2pr2UqyQ8LRRF13omsabVfpqyPfutnvKq9M7Ou+PbXsN3aNFQf4agyQFNSGzzPq3OEY11yU9RHv63L81MfkaW1sT92iSzlgEJSK+pjYf2H3vlqbn+N1igtx6F1swRuvHAUll23TSa9Oras9oYeiQQgYtqc1rsz0x/5DU4tN3k5nkeThDhaNE/CrkH/8/B9awO6t+XmKWNrLTWeB4au0qJpArZdszd7xLQZPqgXz/71NyWlS2qM43o0S06gSWJcjULKKxQKz/NwXbdcWKztQmKcwVkDu/l1CmtxoiVYtoNlO+WMdV3Xr3+pKLgxqCZeMgesyP5o4LoueP55iBjZX9n9jwYlw+KK7Hddl47tWnLt5efU4SXlp8ULhU1c1y3bhgBxEvstF9q3aELXNsm17vsCXywilo3tVNz/oXL7u3dux2m9O9eydf8MXNelKBzBc70ybYhi+yuiQqFQVBXd0LG9ig+yoc77u4SioisVOKWEQFEVLNPCcaJfpFjgO2x1w0CrY/qw2uABQhFYplntLcT1ewK+SPv2Rz8ormQK7ttfPurRtm3CDVjlW1Fcv0i3oaNpFdtv1YOfQtU0KnLJVsf+ULhhcrsI8DtgBX6QclfCMi069+rGWRedx/HC6CebUTWNY5lZLJkzH0WNfpyFbVn0GngaEy+/EDsG1cQ1XSfj4CG++GheTB5Ux7bpN2wQ/UcOjolQaYbOwT37+WLmJ2jRrqbugee59B85hEFjh+PEYGqsGTr7t++Kjf2ArusUFRahqGX7Xrme6Hkeuq4Tl5iAGQOnj6YbaDm5hAoKUbXoXyjLjCBUQVxiAlak4d5claEbAVRVJVRQiF7DMNv6wLZMVE3z7TcrXq8XiOIBZfGbx/NHQcGAUVrOLxwx8VzvhIm0KK6gdfLXsR4IIITw7Q8E6seo6uKB69oKUJsMAAAgAElEQVRoxf2/ojd6Q1Nic0zsBxzdrnBlpXIfhePgxmCHp6v4yUUUVUVpgMzFVaGoqt9hYmW/E2P7XfWk919TVQxDw7ad0gK8iiLwXFixZhvH8gpITkpgaP8eIMAtDuzRdQ1dUzFN+6RONLf4bzGx3wPEye1vaGJqP1TaptyZJakWngfBgM6RozmsWLudvj070a9XJ8zioryLV2zm7kf+y+GMbFq3TOYff76Bc84YjBAehqGzY/dBtu1KZczQvrRv05xQ2GqwMnuS+kcWBJVUC11XOZSRzRPPz+TG3/+L+594ne270ggGdCzL4aUZ80hNz8SyHdKPZPPCW/OImDZxgQApe9N54O9vcOPv/8XfnvuA1ENH5T6fRoYUCkmliBPyNgQMnTWbdvHa+5/jeh6Ll2/i86XrSwvrFIXK+nOKilcmggGdxSs2sfDrDXiexxszF7FyXUrpcaIOuSEk0UMKhaRCFEVB1zQMXUMtTnTyXSeX5/ql6jRN4fLJZ9A8uQkATZMSuHzyGei6huN5vlPzxOM8F4GfqcnQNfTiNiSnLvLuSMqhKAqhsMmzr8/lsX+/R3ZuPo7rMahfd348aRwAI4f0ZsLogYQjJrqqcumksbRv0wKA1i2T+fGksRi6SjhsMm5Ef8YO7wfA1PPHMHRgTxzXIyevgL89+z7TX5lNKByRYnEKI52ZkjKoqoJju/zr5Vk8/dJHmKZNZlYef7nzZ/Tq1oFH772OcMSkU/tWDB3Uk3DERFNVQmGzNA+q67qEIiae59edGNy/O0P696BJQjyP3Xsdndq35ljecZ547gNefvczdE3lWF4B99x8OQnB6C8JSqpGSrikDEIIbMdh1YYUzOIsTqs37CQcMbFtm64dWzNuRH/mfr6S+YvXkhAfh2nZvPzuAg4czAD8mpcvv7OAiGmRmBDHoq83MGvBCkYP60u3zm2xbBvTtFm1MQXww/lXrtuJbTsy/cApihQKSRkcxyUQ0Lj/1p/Qt2cnmjdtwoN3/IzmzZL8B9yysW2bQxnZrN20C9d1cV2Plet2ECp2YEYiFt+s24HjuLiex/ote0g/ko1jO5iWjWU7NE1K4MHbf0bL5kn06t6eP99xNXFBo15rX0jqDykUkjKUVOAaN+I0/nrPz+nVrT1NkxKIC3wbJVqySvHmR18we8EKAgEd4ztRpAFDJxjQ+XjhSl557zP/uBMSHgUDBslJCXTr1JaH7/45Z43oXxxCLROVnIpIoZCUw9896dG/Txeyc49zz6Mvs21XKkHDKLOceTjjGBlZuRi6XmHwlK7rZGbncfBwFuAHcQvhL5nu3HOQ3z/6MhlZOQzo0wW3uPKX5NRECoWkQjzPwzQtikIRNu/Yzx1/eZHVm1JKl0pLSE3PJL+gCOM7G5gMQ6ewKERqembpZ0IIFEVl/Zbd3PmXl1i/ZQ+hsIlpWnIkcYojVz0kFeJ6HkHDYHD/Hhw9dpwVa7fzzCtzGDeif5m8jS/NWECzpk0o+E4hmsLCEK+8u4AX3vy09LOSCnPPvv4xS1dtQdNUBg/oQTAQwK1mVXBJbJBCIakQy7Jp2TyJe2+5gs079pF2KIuUvemsWr+zNKoSIBSO8Nj09/C8shuoVm7YyepNu7BO2KoeMHRWbdjJ9l0HAWjdoin33XIlbVsnl66wSE5NpFBIKkVRBPFx/rZ3gB2707jn0Zfp3KF1me9VVCXccdxyKelXb0xh9mcr2LJzPwCqqpIQF5SFqxsBUigkleJ55R/4let3snL9zlr93oefLivz347jYjuOzMjeCJDOTMlJ8RpwydL1XCkSjQQ5opBUim07tG/TnF9c+SMem/5+pfUgbr/9akaNGkTkhIxggUCAtWu38c9/vlmhGAjguit+RId2LWqUDVsSG6RQSCrFcV0S44P8+tqLCEcsnn7pf7ien4jmnHNGcumlZ2NZDunpGaxatYWyGZcFcXEBnn32jwQCOrNnL+azz77xE93gceu0Kfz2uouJjw9ixiA3qaRmSKGQnBTTsmmaGM8F44fx7KtzOX1IHx588AbWr0/hf//7EoAvv1xDUVH5RMyBgME554xACMGYMQO5+eYreOSv/2XNqq1cMGE4zZomkl/LqtyS6CKFQlIloXCE3j068LsbpvLah4uYPv19Dh06SlqavwmsWbMmtGyZXO44x3FZuXILAAcPZrB8+Sb27j7IrddfQr+encolu5GcukihkFSJ47q0aJbE4P7dyH05n9WrtzFp0lgee+wWHMc9qbNTCFBVjQ8++JyPP/6a4/mFDDqtOy2bJ3H8O0FaklMXKRSSauE4Lvn5IQYP7s1NN11OZmY2s2d/Vbz3o/LjSlZN+vTpwoQJw3nu+Q/ILygqF2MhObWRQiGpFqqiEBcMkHHkGJ9++jWDBvVi0qSxuMXp8CrD39+hsGXLbj755GuOHMkmPmigxiAVvaT2SKGQVImqKBw9lsfazbto1boZU6ZMYPHiNfz73+8BVY8owGPy5HFMnTqBAwcOs27zbs4eN5iE+IAcWTQSpFBIqsQwdL5Zv4MXZ8wnHDG55Zb/o7AoXKOSg2+++SkfffQlBQVFbNqYwjlnDmHiuNOlQ7ORIMd/kiqxHYd2bZozakhfHMclL6+gxnVJbdshL68Ax3EZMbg37ds2x7blaKKxIEcUkiqxLJseXdrx0J0/o2fXdoCfhPfL5ZvYsTutyuN7dm3Pj84cXOzPgJ9OHU+vrh2IyECrRoMUCkm1iEQs+vXsxP/ddz0CgaIqLFi8lhVrt2OcpOp6xLQZOaQ3F04cUer4dFxXikQjo8I7rKgquqGjGdHPEaDrBoqqYJlmucIx0cAyTYQQ6IYRk6xLumEgFN/+WGy+tizTL/5jGGXrjnt+TIRXXMncdVzOnzCcyeeMrPI3S3aJAiAEQlHQdIWKDNSL0+2V3Ieo4oHjOsX93yAWxVFLKtjHxH5AVLIJsJxQaLrG4Z1prP5iGYXh6Ku+67oE44OMOOescslQooGiKORl5/DNgsVlMjlFC9d1iU9MYPR54yvdhNWQKIpC9pGjHNxzoGr7RXGi3ZPpaUmFsWpqruu6JDZtwujzJ8TEfiEEh/YdYN+2lJjd/ybNmsbEfgFous6SzDV4btmNeuWEQlEU8nNySduzj5AZ/RtlmybtunRi0NiROHb0hUoPBFi7eDmpO/egx6AYjRWJ0LVvTzr3Ho4VMaPevmYYHNxzgIO796MHjKoPqGescITeQwbQuU8PrHCUV0QEKIrGvu27OHrwCNp38oBGAyscYcCYYTGxXwjQNB1d31huVHGSqYeBTfS3/wpB6dTDqSBzUhTOwJ96BAz0GHQU8PypR8TEisE83vOK647Gyn7P86cesbBfgKK4qKqKHjDQTuJ7aTCKH9BY2C8EeG7FUw+5PCqRSKpECoVEIqkSKRQSiaRKpFBIJJIqkUIhkUiqRAqFRCKpEikUEomkSqRQSCSSKpFCIZFIqkQKhUQiqRIpFBKJpEqkUEgkkiqRQiGRSKpECoVEIqkSKRQSiaRKpFBIJJIqkUIhkUiqRAqFRCKpEikUEomkSqRQSCSSKpFCIZFIqkQKhUQiqRIpFBKJpEqkUEgkkiqRQiGRSKpECoVEIqkSKRQSiaRKKiyu6HkeruvGpJq067p4noeiKHgxqCZdUsH6VLA/FtW0FUWJ+f0vOY+o2y9+2PYLQaVtVigUqqYRCAZwRPSLFKuqiqqpRMIRXCf6RYpd10UIQSAYjEk1a0VRUFSVSDiMbUXffsdxUFXVtz8GRXoVoSCE8O2PQZFmoail/V/VYmM/EBP7hQDXcSssUlzuSpgRk869unHWxeeRVxCOygmWOSFNIzvjKEtmz0fV1Ki3b1kWfQYPYOLlF8akmriu6xxJPcgXH81Dj8GDats2/UcOYcCoIVgxECrd0EndtZcvZn4S/Wrqnv+iGDh2OIPHjcC2o/+i1A2dvVt3xsZ+/P4XKixCUcv2vZOMKIIE7PLK0tBoul48ogjHRNGtiOmPKOKDMRn66wHDH1EUhXED0e8otmX5I4r4IEokBkIZNPwRRVE4+kN/D1zXQdM0AnFB1FgIZdAAiI391GBEAaeOjyImc3S12EfhxMj+4hulqDH2UcTQfiA29nv+/8W0/8fSfir3UchVD4lEUiVSKCQSSZVIoZBIJFUihUIikVSJFAqJRFIlUigkEkmVSKGQSCRVIoVCIpFUiRQKiURSJVIoJBJJlUihkEgkVSKFQiKRVIkUColEUiVSKCQSSZVIoZBIJFUihUIikVSJFAqJRFIlUigkEkmVSKGQSCRVIoVCIpFUiRQKiURSJVIoJBJJlUihkEgkVSKFQiKRVIkUColEUiVSKCQSSZVIoZBIJFUihUIikVRJhUWKFUVB03U0PfrVrDVdR1EUbMuigqLKDY5tWQgh0AwdLwZFajVdRwhReh7RxrYsRPH9r6iqdUOjGToIgW365xFVPHBdG0X17Y8FmuG3GxP7AYGoXjVzTdc4tCOVlQuXUBiOvlB4rktcQjyjzp2A50X/QVUUleyMTJZ/sghFVaPevus6JCYlMfaCs2NSTVsoClmHjpCasjcm1bRdxyGpeTPGXngOruNEvX0hBAf3HGDP5h0xeVBdxyG5VYvY2C9A13SWZqzCc8u2XU4oFEWhIPc4h/anETajf6Msy6Rd506cfkZnbLsGQuWBEGDoGoqi4Hoepmn76liDF7NhBDiSlk763gMYgUDNDagjphmha5+edOjeBdM0o96+rhukpuz17TeMqLdvRiIkJDXx7Y9Eotu4AFVR2bNlB5npR9BjMKowIxGatW4ZE/uFAE3T0XSt3Kii4qmHqqIbOnYsXBgCFFXBMk0c267JYaiaSurBTAoKQ8QFDdq1bo7reTUaQgsEQgh0wygdBkYTDw+h+PbbZvRHdHj+yyJm9nseQojY2C/AVdzi/m+g6RU+Hg1KSV+Nhf1CAC7Vm3o0VlRNZcfuNO772+ts2b6Pzh1b89i9v2Dk4D44rhuT+bZE8n3he7HqoQiBIgTTX5nD0pVbaNuxNRu37eP/nn2fsGmiqt8LMyWSmPH9eIKE74Q6/bRutGmVzPDh/WjfriVDBvTAqGC+JZFIasb3YuqhqioBQ6dX9464jsubb3xK0NDp27MzcUED23ZxnOivIEgk3xcatVAIIUiMD7L4my0sWLya+YvXct6ksQwe3Ifdew7y9//MZP3mXZxz5lAmTxxOKBTBlaMLiaTGNFqhEAJ0TWXxys384bFX2bJzP1dffT7PPXcfSUmdcJws7v79Uzz91AwWfLUO27E5f/wwPEc6NiWSmtJofRTxcUE2bNvL7/78PFt27ufGX13KM8/8kaSkZkA2qhrgr4/cyv33TyP10FHueOhFFq/YREJc9GMjJJLGTqMUCgE4jsuGLXvZc+AI11wzif97/He0bNmWgoIc/vGPNzl0KJ2EhGbcf/+vuP32qzmancc3a3dgWjYxiIyWSBo1jVIo4oIBVq7fwRPPf8DUS89m+vQ/0rx5G8APFlq1aguW5QAqcXFNefTRO7j55it45b0FfPrlauLjgrE1QCJpZDQ6oVAUQShismbjLrJzCzjrzMEkJ7dh794UVqz4hq+/3kBubgGrVm3hm2++YceOrcTHJzFhwlBCpsM363aQX1AkYyskkhrQ6JyZgYDBhq17eeK595lw9nB+/evLgQgffvgFc+d+BQhSUlJ58sm3CQQ0Ro8exOOPd2Xq1PO46ifL+e+M+Zw9ZhDnjR9GYVE41uZIJI2CRicUihBEwibHC8MkJSUQF9cMiHDTTZdy7bUXk5eXxx/+MJ177rmO7t27Yhj+3gHDSKJly2QipkVBYSgmOyMlksZKo3tabNuhVYumjDy9N3v3HmTjxg2AQlJSMm3btqd9+1Zomkrbti1o06Y9zZo1BzT27NnO+g076d+7M507tsGuwYYzieSHTqMTiohp0bNbe26+7kI2rN/JW2/PA+IBFzAJBHSuuOJcmjVrAkQAB0hkwYJlLFq4iqumTGD4oF6EIzHYmSmRNFIanVAAWJbNoH7dmDRhOIsWrmbJkiX4sygPwwhw5ZUXkZycDNiAwcaNa/ngg0WMHdaPM0b0x7JtGXQlkdSARuejADAtm9N6d+aqKeO57o5/csMND/HWW39l69a9zJ+/DF3XMU2LUaMGcN55Y/jVrx5m1aqtPHrvdYwZ1pecvIJYmyCRNCoapVAAFBVFGDqwJ1dNGc+7s7/ittv+juM4nH32CAYP7sfevanMmDGfOXOWsGrVVi4YP4wfnTGYwlCUsyZJJN8DGq1QRCyLzh1a8chd16IIhWYdWnLxxWfRv393kpObU1RUwNixg1i4cBXN4gI8ePtP6dmtvVwSlUhqQaMVioCuEwqbvP/xUuLidPKz83ju+Zk0TUrAsixUVSMUNtE9j7atm/HunK/47fUXkxAfhxmLFHMSSSOmUQqFogiKQmFeee9z/vLU2wQDBh3at+YP913PhAmjcd0IQhhs3rydBx/4D/v2ppNfGKIobHLHDVNJTIiLSYZriaSx0ihXPXRNY9e+w6zdtItWzZtSFIow7szBXHXVuXTv3p+ePQfSo0d/pk49m/MnjSW/MERyUgI7d6exafs+dE2tSWJuieQHzyk/ohCAYej+3gzv2w8H9+/O60/fxcKl6/nD46/x2mtziY8PctFFZ2BZNrqus2LFRv7x9zdp36YFD9x+NVdcfKafrVtViAsGSn/LdT0ipiWXTCWSSjilhUIIgaapfPXNZtZt3o0Qfjp9/2+gqSqKotC6RVPadWpDXJzBTTc9RlpaBs2bJ3HNNZM47/zRHDlwhMyjuTz/+sc4jovrlgiCh+t69OnZkXPPGia3n0sklXDKTj38DFYai5Zt4K6/vMTqXal4SYmEgwbhoEEoYJCvquQKwcRJ43jttYc4//yx2LbDiEG9UIVg2PDTeO3Vh/jxVedToGvkKypFhl76G06TRHZkHOOeR1/lw0+/RlEEQpFqIZF8l1N6RAH+qEE3NBzHJRI2K1yxsCyF6dPf59NPl3LRxOHcPm0qM2Z9yYN/fp5vvtlCXFwAt4Lkuq7r4dgOuqGhaxqeB0LOPiSScpyyQuF5YDk2E8edzpMP3MjvHvgPny9YcdJjrpl6Nn/+3U9p2awJt984lVDY5MnnPjjpMW1aNOWfD/6KyeeMwDIdmXxXIqmAU1YowC9tFolYjB7WlxeeuI30I9loFWwP94q/O2RATxLiAuQeL8TQdW75xcWMGNwb1/Eq9D84rkuL5kmMGNQby3JwPZfolyWWSE59KhQKz/NwHafC4XpD4zoOnuehqKpfzdwDx/EYcXpvRg9Tv135qICIaWFZNqqm4rguyU0TueS8MZUfIMB1XEIR06+5qSp+BXOPU8J+RY1+kWj/upfc/xhUcy+u4O3bH2UXmvCr2ZfaH6Nq5hAb+0Vx3d+KKCcUnueh6TpxiQl4kejnbHBsv5pyqKCwTNn3UGHtfq+m279s00aogrjEhJgU6dUMDVVVCRUUYlvRv/6qZqFqmm9/DIr0arqGEMK3PwZFioVQSvu/qkVfKEuueSzs96uZV7yzulxPsEyLzr26cdZF55FXGIrKCZY5IU0j63AmS+bMR1Wj31Ety6LfsEFMvPxCrBiEeuu6zqH9aXzx0Tz0GDyotm0zaOxwBo0ZihUDodINnQM79/DFzE/QYyDUrusw+MzRNG/dMibJjXRDZ/em7bGxX4Cu6RQVFqF859mrsCf6Zd91NDMGF0rXUVQFy7TwtOg7Fi3TRAiBbhjEwq+pGwZCEf55nGye1UBYloWiKL79MYhf1Q3DPw/TjH5ci+cLhVrc/2MRWBNT+yle9avOiAKKfRSuixeD/RCu61fyUhQFEYM5YkkuzVjaj0dM7Y/1/S85j6jb74HA++HaD5W2ecoGXEkkklOHep0ECyEQZcZL3gnh0g2PEIKyrRPV/RuKEGWHq54n4zKiSPn770V1+qgoAk44A8/zotr/GtL+ehtRCCHQVAWl+GQVAaqiFF+8hkcI4T+olIiD559LlCZ6ihCoqoIi+Nb+4ushaXi+vf/fPpyKUKI2z1cUgaooxfuR/P/WVCWq/a8h7a+XEYUiFDw8Xnx7Hms37yIuGMA0Ldq3acFvr7+EpkkJ2HbDxQQIQFUEC9emsP1ABrqmYdkOndskM3n0aaiKaNCRjaoqmKbNv1+by/ZdqQSDBuGIRc+u7fjNzy8iGDRwYhCT8UNBUQS27TJ7xTbSs3LRNQ3TthnUvT0ThvTAthv22uuaStax40x/bQ5Hs/MwdI2ikMmYoX257spz8FzRoCNLVVEImSZzlm3jaG4huiawbIfhfTozbmBXTKvuz16dRxQlOzw/mLuUvz0/k4TWzRk/eTzdB/XilZmLeOaVOViW3WAFd4TwN3J9vjqF/y3fzogLzuS6O6cx8coLWLT5ALO/3ozrug32ZveHe4LXPljI0y/PplW39ky4cDwdenXi2Tc+4aUZ833npBxZNAiKENiOy0dLNrFkx0HOu/oirrtzGoMnjuGDJZv5av0e1AZ8s6uKQjhi8dRL/+PtWV/Re0hfxk8+i0DzJjw6/T0+mrcCvTg2pCFQFEHYtHh34XrWpmZxyS+m8PM7p9Fr9GDeXrSeb7YeKB7Z1K2dehlReJ7Lqo0p/Po3V/DAn28hPj4JiNC7V2dmvDaXwsIwyU0TaQhdFwCux8bd6VwzbSpPPH4HmpYIRGiSEMdr02cweZRDXECtcNmnzu0LsGybtZt388f7p3H3XdPQ9URcp4guXdvzxcfLiJgWAUNvkPZ/6AghiEQstqcd5Y9/uoFbb/k5oHPVlefj2C4bvljB+MHd8Qfl9Y+iCI4XFJGSepjnnv8jV191MWBw1U8m8+c2z7B6QwpXXnRmA7Rc3L4QFBSG2ZuZx6P/dxvX/PQyQOPyS88hFDLZuGUno0/rglPHK1Avr3nP81AVhb79uhaLRBGgM2BAD3/nZgM/IB7+A9ujR0c0Lb64fYNevTqhaWqDO5Q8z0PXVfr374GuJwCFKGoc/fv3wDC0qDp0f4iUXP9evbrgv/uKCAQS6da9Q/HfG7h91yMhPo7+A7oDKlBEYmIyffp0QRGiwfuf63kEgga9enXGf3UWkZjYlC5d2tVb2/UiFIqq0rxZE/7y4It88MH/ME2FNWtWc+MNf0U4LsGgUR/NVN6+otCiaSJPPvE6CxZ8RijksWbNSh74039I0DV0TaVh3ic+mqaRlBDHnXf8kwULPsOyVBYv/pLbbvkbcUEdIwYRhj8kdF0joKr86b7pbNy4llDIY86cT/j3v2bQqlkTRAOGrnlAXFwAK2zyy+sfZtOmjZim4K233uP/HnuVli2aNrhDPy5o4Jkm99z9L3bt2kZRkcObb83krVfn0KZF03qxvc5C4XkeuqZy0TkjiRSEeOrpdzh4MJWX/juLrZt3M+W8MSQnJTRYMlt/NCM46/TuFB3L4e//eIutW7fy5FMz2J+yjwlDehIw9AYb1Xief6MuOXc0WUeOMf3f75Gensq/n/2AtAOHmXreGBLiG35U9UPF9TzigwYTh/Rg5+ZdPP2vd9myZQt//8dbuPkFjBvUDaE03FvddT2aJzfhknNHsW7NNl59dS6pqQd46ul38EyLSWcPR1UbblTruh5JCUHOHtyD1Ss28NzzH7Jhw0b+8c+3iHNtRg3oAtQ9TKDOQhEwdA5nHuO51+eixxv84d6f06lTV275zRWcPqQ3/3nzE7bs2I9h6A2yVGXoGnmFYd5ftJ5gs2Tuv38aAwYM5A9/uI5ufbrx/qL1ZObkE9Ab5q0eMHT2pWXw7GtzadWuBXfddQ0dOnThjjt+Spce7Xn2tbns3nfI91FI6p2ArnEoK4/3Fq2n7+m9ueeeaxk4cBB/un8aJMQz88sNFIRMAlr975sRQmAYGhu27uGlt+cxaswgfnXTj+nSpRt//MMv8FSF/7zxMZlZuQ1y/wV+/993+BgzF29k9JlDuP13VzFkyBDuv28ax1343+JNRCy7eFRde+okFJqmsu9gBnc/8l827k7jpf8+yCWXnIeu2wwa1J+33nqUYHITbv3z86zasBNVVetVLBRFkJGTz1ufr6XQCDL933/g7AljCQY9Bg0cyPPP30fTjm15df4aDhw5VhrjUV9omsr23anc8eALHMrN5403HubsCePQdZtxY0fy5ht/Jd+yue2B59m8Yx9aA3TWHyolsQp7DmXx2vw1tOnZheefv49+ffsRDHqcf/54nv7XPWQ7CjMWrePo8YJ6nQII4cdNLFu9lVv//DwtO7TmzbceoV/fPui6w+WXT+L5/9zHN5t3c++jr5B2+ChaPe5G9WP7BNsPZPD6gjX0GzaAZ5/9I126dCMuTnDlFRfw+BO3szcvxPtfbiCvIFQn+2stFEL4b9M5C1Yw9/OV3HTTZZx37kT8wsAOYNG37wAeeOBG1m3ZwwtvfVp8XP3cLCFAV1W+3rSXxRv38vu7r+HiiyYBVvE5RBgzZiwPP/Jr1qYcZN7K7X4m73prX6DrGu/M/oovlm/kzjt/xpgxY4vbdwCTYcNGcO+91/H16m28MXNRVANwvu+URAHPXb6VDXsO87fHf8vwYSPwK9jbgM3ll03h1tt+wsK1u1ix9QC6Wn9lGoQQOJ7Lc69/zOYd+3nooV/Ro3sfwMS//w4XXng+10+bwofzljFv8RqCAb1e23c9jw+/2sieo3k8+c/b6de3P779FuAx7RdX8fPrLmLuiu1s2H0IXa29UNV56lHie/Addh6ULoJ6gINRvFW6oQKOSub+hqEVt/lthm1wS9tvqJUHp9h+f2jpUM7+4iGnDLhqGFzX87dH6xr+tS+5z/6/+/2CBvMROY4LxS8N//6Xbb9kytFQSZAc199Aqesq5e3n2/4fax9FyQn4L8rv6qUoHe40pDPx2xOoqH3fRK+B/N6eW2J/xU5/jvMAABzjSURBVO2XjCBkzZCGwfO80t22FV3/b7/YMO27pe1XfP9LPmqo2+/b71Vi/wmf1bH9WguF54Fl2UwcN5iBfbry7rsL2Lc3BQgWf8OgsDCb51/4kLatmnHFhX7xnfq6YJ4HtuMyrHdH+nZqzeuvf8L27ZuAAP5VMTh0aD/T//0+Xdo044xB3et5VOFn8J48cSQ9u7TjlVdmcyQjDd9+Dwhw7NhhXvrvLLp0aM0l544uHX1I6k7Jhr8Jg3vSsVVTnn7mHTIz0wCDkuu/cdM6ZryzgAFd23B6z/bYjltveuF5HopQuOri8bRqnsR//vMRkUgeUOK0jCMlZTszZy5i6IAenDlyAKZp12P7/rvx3OF9aBZv8ORTMzh+PJNvYygNli9fxpw5SxjWqwN9u7TGrsOopk4jCttxGHF6bx77wy/ISs/iV79+lJ07U4A4jh3L5s67nuTzT5dz/21Xccm5o/DFr/4eVsd16dO5NT8/dyjrl63nt7c+QVraQSCB3Nxcfn/P08yb9SVXTTidob064tbjbj7P+//2zjw8qups4L9zl9knOyQhISBIWEREpEBQFkHQVtFaqGgXt6JV0Cq2Aq1rPy1t3epWLWhRcLdScAEUi1AEAYsCgihhNWGPgeyZuev3x51EKEmYSSJ5LPf3PPNHZjL3ve/ce99zznvexZl2DhvUm/tuv5IvN25n4sQ/UlRUBATYt28fN930Zz5ZvZH/+83PGDmkL5ZpuTOLVsLJzIQBPfO4bNjpzHt1MVOnPUFlZTkQZMeOXUya+Ce2fLKZK0f3p1tOeqsaatt2Cjb/6AeDmTbpMt785wdMmfoYFRXlgJ9NmzZz/fX3U3OogunTruHM07qit2K+kyNfMKTPKVw8sAfPPTOPe++diaZFgACbNn3JDRP/yIHtX3HV+f3Ja5/SIv2bbSgkSeD3eZm3aCVPv7AA3TTJz88jHA7jrM29dM/vRCjs5+1/reGvs9+OZdS1judXEgKfR2H5hu288eFnCEWha9dcAgE/YKKqKl265OAP+li8dgsLVn+BKrdeNqssSXi9Ki/OXcKcuUtQPArd8zsRCAQAC5/PR/funfD5Pbz65nKee20xHo/iOFRdWowsSSiyxJsrNvHBum0EQ/5YZK7jKwqFgnTtmoMlSby6dB0fbdqFz6O0Ws5N3Q7WY39/k/f+vZbk5CD5+Z3q5aekJNEtP49aTePJ597inSVrCPq9rSc/dh+9vmwDqzYXkZwc5JQuOUiSEpMfpmuXHDTb5oX3P2Hd1j34PM3POZGnTZt2b90fqqqyYuUqZP0wg87sRrSRUniyJKEqCm8sWMndD87h1N5dmfybq5lw7RjatWsPRPF4/Awc2JOep+VTo+vMmPUWmqbTv293VEVpNABLkmWqK6vYt6u40UQyIQQeReLTwj38feF/OL2gL3fefSPXXnMRGRkZMfleBnyvB33P6s3hqM4b76wkNeijc3Y60PgSyDJNMnM7kJKRdlRx3yNRFBlJSMx+419Mf+I1zhp8BrdOvpKrr76Q5OQUIIrfH6KgoBc9euXzdXkFM557C6+qcmbvU5FkqdFlkCzLVBwuY3/RHuRWMqqJYFkW2Z07Ek5JapMq5LIic7iklJI9+xstbluX0v3BJ1t5/d+fccG4UUz77QR+csXomKHWCAaTKCg4jT79TmPr7oMsXLKWvMwUstOTaGoFats2OV06EQg1HiToURWius4jM+byzKuLuWjsCG6++adcPv48VNULaCQlpXH24NPo1r0rm7cV8cIr79IhK52e3TpiNTGzlhWZ0n0HOXSgpEn9QbBw1Re8teZLLrvqYm6fci2X/XgEquqJyU9lcEFvep/Zk3VfFvHBig106ZBO+9Rwk/5CWZbZdkinS34vTu99GtFoFGhGUpgQjoNy4dK13PHAbIaO6M/MGXeQFM4CqnG2ZwSgI0kK548+l1HnDcTvU3n80Vfx+71MuOJ8RDNj4J1aD4JPC/fwzMKPGXXRUP765DTS0rKACM72lAAMQqEwF485n5EjBpCcFOCFWW9i2XBOn1OanSIjhAAb3lj4IX94/DUuHTeCxx6dgt+fhpNjUidfw+v1ceEPRnHeyAEoisSfn34Dn8/D5RcPa7b+Jzt14+G/1hbyjw83MfGWy7n7rhvx+5Nxfn+Dut8/KyuTcWM7MWxoX264cTpPv72GGy4aSK/OWZjN/O2FEEQ1nb/NWcCMl99lyrSr+N1vr8fxTVUfIT9CenoaY8eOYcSIflx9zb1MnT4Ln9fD8MF9sO1m3v+x+2bBqs2883Ehv7vrF/x68jWxHKOj9c/LyyUvrysFBb35xYT7eOrNj5h4ydl07ZCOkaDshOfBAb+XTzdtZ/I9f+OMfj146sk7SAqnABU420NHYgFVSJLM7357I9dOuIT7H32FuQs/IhjwHXvwOPB4FErKq3hq/kpyunbk0b/cRlpaO5zC/P89AzKBKoLBMPf9fhKDhvTj7wvWsGPfIfze5kXKBQM+lq3+jKnTZzFy9EAeeuB2/P4AUEnD+lfi9Xr5w/23ctElQ7njz8+zePm6Zut/suP3qhQWf83z737MuaMLuPOOG2K/fxUck59sAFW0a9eBxx+7nYycTP46byWHq2rxNqPCuRCCoN/LK/OX8ee/vs6km8Zz+68nxD6t4tihxwQqSE3NYOaMuzi1e2duvutpPv/yKwI+b8LywdF/w/Z9vLxkHT++4nxuu/VqVFWlYf11oJq8jl148onbsQNBZry5guqonnCkZkKGQghBJKqxbtM2DlfWMHRIXzIysmIn1BQ6Xm+Y4cP6oXhVPl63hbLyKuQEa1QIBIZpsnNvKdWGxeBBp5OZmYkzi2kKjXA4hSHn9EV4VLbvLiGiGwnHXklCUF1Ty9oNW4loBsOG9iMpOZ149A+F0hg2rB+6ZfOfDYVUVte4DZETRAio1Qy27S5B9fsZcs4ZBINJOLO4poiSk5PNoIGnUxHV2bWvFMO0SDROVxKCQ2WVrFlfiC/oZ/jwfqieEMcOUP+NTmZmB84++wwOHipn/ebtRGLV3hNBCKiOaBQWlxBKDjFkSF88niBN628DUfJP7ciA/r34urKWogOH6+NP4iWhJ9XrUfnsi1088NQbDBvWj0mTfowz3Y9nGlPFqFFDuebqi3n9neUsXLoWrzex/A9Fltj7dQXPL/qYgoI+3HvP9ThW9HhraQuIMmnieC4eM5TXlm5gS3FJwlbV61VZ9ckWnpr9DmPGDOHnPx+DM92Lh2ou+/EFjBs7gr+/8i7LV2/C7/l2s2r/11AVmc279jN3+UbG/mgEE34xjvjuPycQ6v77fkm/s3ry/KKPOVhWWe8QjAchBF6PyvzFq3lr8Wpu+OVYhg4dRHwtpixAY/Lkn1AwqA9/evJ1vthWnHD+h6rIfLqlmEVrvuQX117CuLHfB+LpvWMgJA8PPfAr8rrmMXvRGsqraxMaqJsxo9ApLaskFPKTkpJC/Ct9G58vSFpaErURjarq2mZZVN0wKauO4g/4aNcuNaHvh8MpJCWHqI7qRHUj4RFFCEFtJEpldS1JSSFCoTCJ6B8MhklJCVNVE6G6NuqGcyeIQBDRDWo0nZTUMKFQMol4mrKy0vD5vRyurMUwExtRwbn+lVW1RKIaGekpeL3BhORnZKQQCPgoKS0nqiU+oxUIaqMGEd0gLS0Jvz+R+08iKzsdRVU4XFmLaSbWtSXhhZokiVjRToET3FQXunw8BOCp3x5s7jahEAJZ1Hl+vTgBNvHIl4Bvtkebu01VtxPjHKcuuCqe3YE6+TH926Bnw/8CddfN+R29OL9rPA+LjBC19clczbXRdfet06PTB3G7xRWEcBKznF2z5t5/4ojzqPNzxSNfxeutRUgCpRn6NyudUVVltm3bzbPPvhxr6hrHgyIEklBYvXpTc0R+cxgEqiqzc+dennnmlbhz/euSiDZt2t4i+c45wKbPtzNr1ovOJYpLfwmBYP36LS2Wf3Lj3OHr12/huedexLbNuK+/rusUF++P5UW0jBUr15OWNgfLNuIKNxZCRtc1du7a26JWkXWz0FWrNvL883MwzfjaXkqSTFVVNSUHDiE3Q/+Ez7guIm3Txm1cd90fEhZYR3PDqW3bBlnmy807uP765stv7sakbTthwKtXbWT1qo3Nlv9tFfL5X6cuZ2fZ0rUsW7q2WcdIDvmanUpQF904f95S5s9b2qxjhIL+Zuce1RnFt99ezttvL2/WMbLSwglLT8hQ6IZBTlY60yZdRk1tNDaaJnIEu75qdt9eXdB0I6ELZloWySEf44acTk1Ea/Y+tKooZKaGE45913WDLp2yueNXl6MneO4Odn3V8u5dc9HaoAnwdxnDtOiQnsTl557h5G008/qH/F7Cfm9CIc22baPpBgP65DN14o+PaO4T7xzeSc4QOIYiKyM14ZBuw7LolJXKZcP7YFnNS0cQQpAS8uPzqAkN1gkZCsMwyW6fxuTrLk34BP8bTTcS7pZtmDZhv5cxBb1aVFbCBnTDwjDNhByKumFySsdMptw4rvnCY0Q1Hb0NumV/lzFMk6zUMOOG9WnRcWzbuZamaSd0H+mGwZmnd2Vgv+4tlh/V9IR73RiGScd2KXTJTmuRfCumfyJbpA13M5ckZEVpNIS0NRqK2IgGjy8rCkKSMI26CLOjsQCzkdDqhOQ3YkxNw3AcXorSaAh3a+iPaEJ/ITCNb68XSlMcpX8bLI/kWA6FaRhIDYSwW6ZFa9jXBq+/DZZl1N//DY3YNqJVrr+QBLLU8PWHNtIfp5lXXN3MVVVl9+avWPXeUqqjJ37Es0yTYFKYggtGtEk3aUmWObB7Hyvefh8pwTgLp2OZ41G2bWeplOjk0DJNklJTOOfC8xo1VN8mkiyzd1cxO7/Y2uCN+m1jGSap7dM5Z8worG+xu1yDCBBConjbTras/zy2s3FisQyTjOz2baa/qqgsP7AKyzpa9jGGQkiCmooqDu7ZR6124h9UQ9PI6pRL+9wOmEZ8Ht3WxOP1smdnEfuL9uBJIMw21vWRipoomm7gURTCQS9SgqXitWgUX8BPVl4HtGhDEXeNzRUbWy83tY5uYOTweNixuZD9RXvxeE98QJgWiZKclkJWXg5a5HgRt62MAElSKFz/OSV79qO0QUFkLRIlo0Nmm+gvBCiK6mTG/tesouGlhyyhqCqKfeJHNHCq9Ri6Hlt+nFhELEZE9agoCWxjeVUF3TR5bdFavvjqAN1y23HTpYPxqyqRBHwxtm05W3majtHA9yRJOBXN6/fvBbpuYJimk8YuyfXvm6aJphsoioyqKPXvO445vRFnllMVLFH9WwvbckrLNab/t4oASbKd+78t9Yc20d/pcdxwsppbFroVEEBxSRkHD1exY28ppRU1yHtL+Wz7PrLSwmSmhltFjiQ5kYGFO7ai6yYIZ5u5S14W2ZlpfL6liNLD5ciSjGmZtEtPoXuXXIr3lvDV7gPIkux0lfIo5HfJJRT0uV3MXOLCNRQtRAiBJOCfyzfy4cad9V70g2VVPPDqMgb0yOOWsecgiZZ3tPZ6VNbt2sGE2x+n9HAFmqYjSRIP3TWBm64Zw8Mz/8mb762qn2tccckwXnxiCjNfepc7H5yNsG1Uj0pmu1Sef+Q2zjy9K5HI8RKqXFxcQ9Eq2DZ0y81A002+KD5ARXWUUMBLr7z29Mhr5/xPK8kyTIOS0nLaZaUx+rwBrPzoMxb/+1NkSbCjaB+jzy+gU157duzcxxfbd/P07Hf4YOU6uvfozMCBp/Huu6soKS1vlZ0jl5MHN+Gghdi2jWXbXDCgB7eMO4cO6ckAZKaEuOnSsxkzuFf9/7UGAoFlmgwb2o/nnnuIcWNHsmjZWn51zwx2Fh/g0b/cxsyZj/PgA7fwxdYibrrraZas3MDPfnoBzz/3AAUFpzu7KW5CmksCuDOKBJCko/NN60qaSUJgWRbvr93K7oNlAOz7upz3/1PIDwb1RJIkLMuqX6bUYeOU+2++CbH54Q+Hk5ISAiApKUhurlOKsHPnDjz88GSqq5005FGjBuFEAbgGwiVxXEMRJ5IQTsh37Km2AVkS9TUN3v+kkJf+9QnhlCQm/mo8s+cs4uUlnyLJEt8f0ANFljBNC908wiyIWNyFHb+xsG0b07YxDAPDqOR73zuNAQPqIhVtNC1KJFJCKORn0qTLqdsatW0LXa/EMEwnvsMtw+eSAK6hOA5CgKoo7D5YxqtLPqW8OoIkJEzL4uzenTmvfz6KIrFh2140w+Keu6/jxht/TrdueVx33R9YV1jM9wd0RwiJFRt3suSTQmRJwrJtQn4v40f05ZTsdDQjvtwRSZYIBnx88MFaxo+fhqLIR4UCH2kAjgxPVxQZXTf4cMU6QkG/m+bukhCuoWgCp9q3zK79h5j93lp2HaqqT2u3gVU79rOxqIRB3XNQJIms7Hace25/FCXEsGH96dgpG1WRWL35Kxat+ZLyiE7E+iYD16yMMOvd/3DV6P6cmpOBdpxIvKhm0Du/E/fe9lOmTX+OLYVfce891xMOh5pM9RdCpqysnLvufpqayhoeuHMC+V1y0LQTH9Dm8t3ENRRNIAR8deAwzy5Yg69dOgvm3Ed2Vga67uRDCFnmqb++zqyZcwHB/X+8me7dTwWqOeWUTtz5u2uY8ptHKdzzNbLPx5U/v5CbbxqPYejIskxpaRm33Powzy5Ywy/HDCK3fUqT52NZFoGAj2vHjyYa0ZjxynuUlBzi3HPPRtOqGvRP2rbA4wkwZ84/qa2u5f6pV3HluJFYltWqDWlc/rdxDUUjyLJEJKoza8FqSjWTt5+exsABAzi6EbLM/fdNwrItnnrydR5//BU6dcpmzJjhvP/+Ch555CXKK2u4/pdj+c2vf0ZWVgbhcBp1EZLduglm/O13XDjmVp59ZxW3/2QkvuPkV+i6gSLL3HjVRRyuqGbKlCf4xz+W0KFDRoONkGVZorj4AJ988iW3XnsxE644H9N0MmddXOLFNRSNIHAa0H5dXo0aDnFK52yc3NXIUf8XDifx2F9ux+/18uCDc5gy5VG6dctl6tQn2LLlK26+eTwPPXQbHk8Ip1r3kcVQvXTunI3P56VkXzmmZSPiyMMyTJOUUJCOOe2pqqqhYHAffn3bNZhm5BgfhSx7ue/+v7F8+To65rTH7/dSVl7d8h/I5aTCNRTHoc7pp2kGDYdNaUiSh9///gbAZu7cD3j55feorY1w883jmT79JjwePw1XS7adxrW27ex+JHBepmnV1/PISE8lLS0Tx4gdOatw6kqmx2I7dN1ocNbh4nI8XNf3cTBMJ6fC41FpPAtTw+8P86c/3UxubnumT59FamoSDz54C6FQKo33XYgleAmnX0lzNyydKEs99jKOeDnvucbBpaW4hqIRLMvGoyqMPKs7Rk2UGTPnEY1WAo2tDUwM4+hCr862ZWO+ABldr2Hms/OoLq/kvP7d8XuUVu247eLSWriGohEs28arypzXPx87qvH0jLmUlpZz9GpNUFeGH6RYpe/YJ6IujkE64nXkjEShvKKSGTPmUltZzaj+3fF71GYljknHyDn65fYPcWkprqFoAtO08akKPxreh9qKKv784BwsK4LTT0GlLhJS1zVMUyMS0YjGqoJFozqRiIZlOZ9rWhTHx6HGvq/x4EMvUnrwEOOGn4HfpyZU7FeSJJTYDkkkqmFZGrp+7MuyNKKxAjiKIrdJeT2X7z6uM7MJLNtGliVG9MtH0w1enDUfr6owderVyLKHhQuXsWDBh3g8HiRJoOsmX399mJSUEOXlVdxyy4N4vSqmaaNpGqNHF3DJJSOxbZNH/vIizz71Ohf1z2f093qAIG5fgiRJGIZJeWUViiKzaNEKduzY02BGqCxLfP75dmRZpryiGtM063NPXFzixTUUx8G0LGRJ8IOC05CExKOPvszixavx+71ceulwJk++BiF06mIjpk69Cll2HsTa2ijfVJVSWb58Nd///kQikSibPt/J5cN6c8k5vTFNC9OMb8khYiXfX52/jNlzlzBt2tVcdtmFRKPVjQRcgdcb5IUX5vPMK++S2S6Vi0YOwBYNVzJycWkIdx4aB6blZIj26JxJSsDDhg2FpKaGGTt2JCkpQQIBP8FggGDQH2v15pSTCwad9wMBP8nJAS69dARZWemsX19I2CvTq3M2siRhJlBlyu/zsGHzDn77p+dJzUhl5MgBqKpEKOSPyTv6FQr58XgkRo8ehD8c5LfTZ/F54Vf42qAepst3F3dGESdRTSevXQo/Pe8sHp37IT6/j2eemceiRR+Rn9/J6SDWwPMuhLNU2Lq1iJEjB+D1OQ/oFSP70bVDGpEE8y1kWaKisprSskq8+0t55JGX0HW9yYQyIQSqqlBScpiS0jIqq2qb3fvV5eTENRRxYgEBj0KS30vP7p04ePAw8+ct5YILBnPhhWfHOocd+7Q6D6nK/PnLeOSRlygo6EPPHp1J8nvxqQqVES2uQCshBD6vh2DAR8DvNKcdNrQfM2feGeta1VRSmGMUrrrqbubNW0rA7yUY8GGaJpGo7i5BXI6LayjiRJEEX1dUs3ZLEXmdssnOac/KFetYtGglixatjPs4uR0zCYcDfFpYTNecdMIB73GXHrIkqK7VWLJiPdU1ET7duBWA7duLeeutZU6VrSack3U7HTt37gFg/qKP2L5rH0lhPwX9e+HzJtZezuXkwzUUcaIoMkUHylj86TYM0+Kss3pyzz3XoWk60ejxlw91ZfZ9fi9z5y5lw/pt9OvRke9174ipNV2WXVZkyiurufOB2ZRV13Llz3/A1KlXY9sWGzYUxq3D6NGDuOCCwVRV1fDr6X8nt30qc2feSTDgw7Lc9oYujeMaigSwbbt+9LcsC49H5Yc/PJe+fQfgRGA2NSqrrF+/hgULV9RP9RMbxG0iEY2OeVk8/PBkZDkdJ0Q7kW1OCfBQW7ufxe+vIVLdUP6Ji8uxuIYiTgzDJDs9iUmXDGbjzn38e90W1q3bwquvvc/AgadjHae8nKqorPl4IxvWb2FQz45MvGQwee1SEqgJIVA9Cju27+bKq+7F5/U0M4pToqa2lqLiA3TMbFmzW5eTB9dQxIlp2aSG/Yw6qxunnZJJ31M7sGZzEas/28rGz7bGdYw+nTP51aVnk9+xPR3bp1AT1eLeGhVCkBwOsnf/IV5+aVFLVAFAVWSSw0E3vNslLlxDkQCWZVMV0UgN+Rl2Rlfyc9sxol+3WK7Fcb5r22Snhclpl4ymm1TVxt9XUtdNUpKCPHDHL6iuiSBJLX+4LcsmHPITCvqPqrnp4tIQDRsK20LCTrC9busgsJCEjSJLCPvEj3aKLCEJ5zwa09+2bKJRjfbJATqkheI+tmFaRKNak22DHf2d87Dlb/4r6PcwZEAvZElqlasicKJOI1EttmRyZDn6203q/20isJAb0P8ECUeSTl79hQBFbrihwzGGQpIkZG8AUw1i2yfeE24LD7rwUVlrxh3W3JqopomGB9sTwlYb7mZdd1YaoCVyinUJnU1go6LjobLWRNftoz6pqI00+r3WQjFMdOGL6d8GTXptlSiqo39CP27rIEkmhhTTX4mj3FgrY9sqEVtpE/0FoKo2tpCO8bcdcydYeoTtZTZvfFbeRoE4NmwtQnxU3AayY2dg27G27ye27XxMOmzfjli2ow1kx86gXv+28F/YsOMLxHtftoHs2Bm0aUyJDTs+Q7y9sU2ky5JEUVExQ4aPPup9UVZWVv+rSJLEgQMHOHz4cGzUbCtHl92m0YKOg68tnXyu/ie1/rZNS/rHtUy2o39ubg7hcLg+kO8oQwGgqiqK4vo4XVxOZjRNwzCM+l2xYyyCruvoutsYxsXlZOfIrXM3hdDFxeW4uIbCxcXluPw//hHWHOL44SoAAAAASUVORK5CYII=\",\"relationship\":null}],\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"target\":\"/matlab/document.xml\",\"relationshipId\":\"rId1\"}]}"},{"id":315,"title":"Valid Chess Moves","description":"Using standard Algebraic notation ('' for a pawn), given previous move and a next move, output true if it is a valid move or false otherwise. Assume there are no other pieces on the chess board, that the piece can be either black or white (whichever generates a valid result) and the previous move was valid. Examples:\r\nMoving a pawn one space:\r\n('c5','c6') -\u003e true \r\n\r\nMoving a bishop non-diagonally:\r\n('Bb7','Bd7') -\u003e false","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.4333px; min-height: 0px; white-space: normal; color: rgb(0, 0, 0); font-family: Menlo, Monaco, Consolas, monospace; font-style: normal; font-size: 14px; font-weight: 400; text-decoration: rgb(0, 0, 0); white-space: normal; \"\u003e\u003cdiv style=\"block-size: 175.167px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 87.5833px; transform-origin: 407px 87.5833px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 63px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 31.5px; text-align: left; transform-origin: 384px 31.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 17.5px 8px; transform-origin: 17.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eUsing\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 2px 8px; transform-origin: 2px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"/#null\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003estandard Algebraic notation\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 276.5px 8px; transform-origin: 276.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e ('' for a pawn), given previous move and a next move, output true if it is a valid move or false otherwise. Assume there are no other pieces on the chess board, that the piece can be either black or white (whichever generates a valid result) and the previous move was valid. Examples:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgb(247, 247, 247); block-size: 102.167px; border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; border-end-end-radius: 4px; border-end-start-radius: 4px; border-start-end-radius: 4px; border-start-start-radius: 4px; border-top-left-radius: 4px; border-top-right-radius: 4px; margin-block-end: 10px; margin-block-start: 10px; margin-bottom: 10px; margin-inline-end: 3px; margin-inline-start: 3px; margin-left: 3px; margin-right: 3px; margin-top: 10px; perspective-origin: 404px 51.0833px; transform-origin: 404px 51.0833px; margin-left: 3px; margin-top: 10px; margin-bottom: 10px; margin-right: 3px; \"\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 96px 8.5px; tab-size: 4; transform-origin: 96px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; perspective-origin: 28px 8.5px; transform-origin: 28px 8.5px; \"\u003eMoving \u003c/span\u003e\u003cspan style=\"border-block-end-color: rgb(170, 4, 249); border-block-start-color: rgb(170, 4, 249); border-bottom-color: rgb(170, 4, 249); border-inline-end-color: rgb(170, 4, 249); border-inline-start-color: rgb(170, 4, 249); border-left-color: rgb(170, 4, 249); border-right-color: rgb(170, 4, 249); border-top-color: rgb(170, 4, 249); caret-color: rgb(170, 4, 249); color: rgb(170, 4, 249); column-rule-color: rgb(170, 4, 249); margin-inline-end: 0px; margin-right: 0px; outline-color: rgb(170, 4, 249); perspective-origin: 68px 8.5px; text-decoration-color: rgb(170, 4, 249); text-emphasis-color: rgb(170, 4, 249); transform-origin: 68px 8.5px; \"\u003ea pawn one space:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 80px 8.5px; tab-size: 4; transform-origin: 80px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; perspective-origin: 4px 8.5px; transform-origin: 4px 8.5px; \"\u003e(\u003c/span\u003e\u003cspan style=\"border-block-end-color: rgb(170, 4, 249); border-block-start-color: rgb(170, 4, 249); border-bottom-color: rgb(170, 4, 249); border-inline-end-color: rgb(170, 4, 249); border-inline-start-color: rgb(170, 4, 249); border-left-color: rgb(170, 4, 249); border-right-color: rgb(170, 4, 249); border-top-color: rgb(170, 4, 249); caret-color: rgb(170, 4, 249); color: rgb(170, 4, 249); column-rule-color: rgb(170, 4, 249); margin-inline-end: 0px; margin-right: 0px; outline-color: rgb(170, 4, 249); perspective-origin: 16px 8.5px; text-decoration-color: rgb(170, 4, 249); text-emphasis-color: rgb(170, 4, 249); transform-origin: 16px 8.5px; \"\u003e'c5'\u003c/span\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; perspective-origin: 4px 8.5px; transform-origin: 4px 8.5px; \"\u003e,\u003c/span\u003e\u003cspan style=\"border-block-end-color: rgb(170, 4, 249); border-block-start-color: rgb(170, 4, 249); border-bottom-color: rgb(170, 4, 249); border-inline-end-color: rgb(170, 4, 249); border-inline-start-color: rgb(170, 4, 249); border-left-color: rgb(170, 4, 249); border-right-color: rgb(170, 4, 249); border-top-color: rgb(170, 4, 249); caret-color: rgb(170, 4, 249); color: rgb(170, 4, 249); column-rule-color: rgb(170, 4, 249); margin-inline-end: 0px; margin-right: 0px; outline-color: rgb(170, 4, 249); perspective-origin: 16px 8.5px; text-decoration-color: rgb(170, 4, 249); text-emphasis-color: rgb(170, 4, 249); transform-origin: 16px 8.5px; \"\u003e'c6'\u003c/span\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; perspective-origin: 40px 8.5px; transform-origin: 40px 8.5px; \"\u003e) -\u0026gt; true \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 0px 8.5px; tab-size: 4; transform-origin: 0px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 124px 8.5px; tab-size: 4; transform-origin: 124px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; perspective-origin: 28px 8.5px; transform-origin: 28px 8.5px; \"\u003eMoving \u003c/span\u003e\u003cspan style=\"border-block-end-color: rgb(170, 4, 249); border-block-start-color: rgb(170, 4, 249); border-bottom-color: rgb(170, 4, 249); border-inline-end-color: rgb(170, 4, 249); border-inline-start-color: rgb(170, 4, 249); border-left-color: rgb(170, 4, 249); border-right-color: rgb(170, 4, 249); border-top-color: rgb(170, 4, 249); caret-color: rgb(170, 4, 249); color: rgb(170, 4, 249); column-rule-color: rgb(170, 4, 249); margin-inline-end: 0px; margin-right: 0px; outline-color: rgb(170, 4, 249); perspective-origin: 96px 8.5px; text-decoration-color: rgb(170, 4, 249); text-emphasis-color: rgb(170, 4, 249); transform-origin: 96px 8.5px; \"\u003ea bishop non-diagonally:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 88px 8.5px; tab-size: 4; transform-origin: 88px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; perspective-origin: 4px 8.5px; transform-origin: 4px 8.5px; \"\u003e(\u003c/span\u003e\u003cspan style=\"border-block-end-color: rgb(170, 4, 249); border-block-start-color: rgb(170, 4, 249); border-bottom-color: rgb(170, 4, 249); border-inline-end-color: rgb(170, 4, 249); border-inline-start-color: rgb(170, 4, 249); border-left-color: rgb(170, 4, 249); border-right-color: rgb(170, 4, 249); border-top-color: rgb(170, 4, 249); caret-color: rgb(170, 4, 249); color: rgb(170, 4, 249); column-rule-color: rgb(170, 4, 249); margin-inline-end: 0px; margin-right: 0px; outline-color: rgb(170, 4, 249); perspective-origin: 20px 8.5px; text-decoration-color: rgb(170, 4, 249); text-emphasis-color: rgb(170, 4, 249); transform-origin: 20px 8.5px; \"\u003e'Bb7'\u003c/span\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; perspective-origin: 4px 8.5px; transform-origin: 4px 8.5px; \"\u003e,\u003c/span\u003e\u003cspan style=\"border-block-end-color: rgb(170, 4, 249); border-block-start-color: rgb(170, 4, 249); border-bottom-color: rgb(170, 4, 249); border-inline-end-color: rgb(170, 4, 249); border-inline-start-color: rgb(170, 4, 249); border-left-color: rgb(170, 4, 249); border-right-color: rgb(170, 4, 249); border-top-color: rgb(170, 4, 249); caret-color: rgb(170, 4, 249); color: rgb(170, 4, 249); column-rule-color: rgb(170, 4, 249); margin-inline-end: 0px; margin-right: 0px; outline-color: rgb(170, 4, 249); perspective-origin: 20px 8.5px; text-decoration-color: rgb(170, 4, 249); text-emphasis-color: rgb(170, 4, 249); transform-origin: 20px 8.5px; \"\u003e'Bd7'\u003c/span\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; perspective-origin: 40px 8.5px; transform-origin: 40px 8.5px; \"\u003e) -\u0026gt; false\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function z = chessmove(x,y)\r\n  z = false;\r\nend","test_suite":"%%\r\nx = 'c5';\r\ny = 'c6';\r\nz = true;\r\nassert(isequal(chessmove(x,y),z))\r\n\r\n%%\r\nx = 'a2';\r\ny = 'a5';\r\nz = false;\r\nassert(isequal(chessmove(x,y),z))\r\n\r\n%%\r\nx = 'g3';\r\ny = 'h4';\r\nz = false;\r\nassert(isequal(chessmove(x,y),z))\r\n\r\n%%\r\nx = 'Bb7';\r\ny = 'Bd7';\r\nz = false;\r\nassert(isequal(chessmove(x,y),z))\r\n\r\n%%\r\nx = 'Bg2';\r\ny = 'Bh3';\r\nz = true;\r\nassert(isequal(chessmove(x,y),z))\r\n\r\n%%\r\nx = 'Nf1';\r\ny = 'Ne3';\r\nz = true;\r\nassert(isequal(chessmove(x,y),z))\r\n\r\n%%\r\nx = 'Nc5';\r\ny = 'Nc3';\r\nz = false;\r\nassert(isequal(chessmove(x,y),z))\r\n\r\n%%\r\nx = 'Qb2';\r\ny = 'Qc4';\r\nz = false;\r\nassert(isequal(chessmove(x,y),z))\r\n\r\n%%\r\nx = 'Qa1';\r\ny = 'Qh8';\r\nz = true;\r\nassert(isequal(chessmove(x,y),z))\r\n\r\n%%\r\nx = 'Rh7';\r\ny = 'Rh3';\r\nz = true;\r\nassert(isequal(chessmove(x,y),z))\r\n\r\n%%\r\nx = 'Rb2';\r\ny = 'Rh8';\r\nz = false;\r\nassert(isequal(chessmove(x,y),z))\r\n\r\n%%\r\nx = 'Ke1';\r\ny = 'Ke2';\r\nz = true;\r\nassert(isequal(chessmove(x,y),z))\r\n\r\n%%\r\nx = 'Kf3';\r\ny = 'Kg4';\r\nz = true;\r\nassert(isequal(chessmove(x,y),z))\r\n\r\n%%\r\nx = 'Kb2';\r\ny = 'Kc4';\r\nz = false;\r\nassert(isequal(chessmove(x,y),z))","published":true,"deleted":false,"likes_count":2,"comments_count":2,"created_by":1022,"edited_by":223089,"edited_at":"2022-05-23T10:24:16.000Z","deleted_by":null,"deleted_at":null,"solvers_count":85,"test_suite_updated_at":"2022-05-23T09:39:10.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2012-02-13T05:34:29.000Z","updated_at":"2026-03-30T18:59:55.000Z","published_at":"2012-02-13T05:35:32.000Z","restored_at":null,"restored_by":null,"spam":null,"simulink":false,"admin_reviewed":false,"description_opc":"{\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eUsing\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"\\\"\u003e\u003cw:r\u003e\u003cw:t\u003estandard Algebraic notation\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e ('' for a pawn), given previous move and a next move, output true if it is a valid move or false otherwise. Assume there are no other pieces on the chess board, that the piece can be either black or white (whichever generates a valid result) and the previous move was valid. Examples:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[Moving a pawn one space:\\n('c5','c6') -\u003e true \\n\\nMoving a bishop non-diagonally:\\n('Bb7','Bd7') -\u003e false]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\",\"relationship\":null}],\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"target\":\"/matlab/document.xml\",\"relationshipId\":\"rId1\"}]}"},{"id":45433,"title":"The Dark Knight","description":"  The current position of the knight is x \r\n  The desired destination is y\r\n The size of the chessboard is n.\r\n\r\nFind the minimum number of moves required by the knight to reach the destination.\r\n\r\nFor example, \r\n  \r\n x=[2,2]  y=[3,3] -- moves required = 2  \r\n   [2,2] \u003e [1,4] \u003e [3,3]\r\n","description_html":"\u003cpre class=\"language-matlab\"\u003eThe current position of the knight is x \r\nThe desired destination is y\r\nThe size of the chessboard is n.\r\n\u003c/pre\u003e\u003cp\u003eFind the minimum number of moves required by the knight to reach the destination.\u003c/p\u003e\u003cp\u003eFor example,\u003c/p\u003e\u003cpre\u003e x=[2,2]  y=[3,3] -- moves required = 2  \r\n   [2,2] \u0026gt; [1,4] \u0026gt; [3,3]\u003c/pre\u003e","function_template":"function out = knight_step(x,y,n)","test_suite":"%%\r\nassert(isequal(knight_step([2,2],[3,3],8),2))\r\n%%\r\nassert(isequal(knight_step([2,2],[1,1],20),4))\r\n\r\n%%\r\nassert(isequal(knight_step([2,2],[8,8],12),4))\r\n\r\n%%\r\nassert(isequal(knight_step([2,2],[12,11],12),7))\r\n\r\n%%\r\nassert(isequal(knight_step([1,3],[8,3],8),5))\r\n%%\r\nassert(isequal(knight_step([1,3],[5,4],8),3))\r\n%%\r\nassert(isequal(knight_step([8,2],[1,2],8),5))\r\n\r\n%%\r\nassert(isequal(knight_step([8,7],[21,32],50),14))\r\n%%\r\nassert(isequal(knight_step([5,19],[5,19],20),0))\r\n%%\r\nassert(isequal(knight_step([5,19],[19,5],20),10))\r\n","published":true,"deleted":false,"likes_count":2,"comments_count":0,"created_by":363598,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":21,"test_suite_updated_at":"2020-04-10T06:28:31.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2020-04-10T06:20:09.000Z","updated_at":"2026-01-21T12:55:02.000Z","published_at":"2020-04-10T06:28:31.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[The current position of the knight is x \\nThe desired destination is y\\nThe size of the chessboard is n.]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFind the minimum number of moves required by the knight to reach the destination.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFor example,\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[ x=[2,2]  y=[3,3] -- moves required = 2  \\n   [2,2] \u003e [1,4] \u003e [3,3]]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":45238,"title":"Checkmate","description":"* The positions of different chess pieces are given in a cell  *p* . \r\n* The position of the king is given as *x*\r\n\r\nDetermine if the opponent king is in check for individual scenerios.\r\n\r\n* x='Kg7'\r\n* p={'Qe5','Qg5','Qb5','Qa7'}\r\n\r\noutput= [1,1,0,1]\r\n\r\nN.b.any invalid position should produce 0.\r\nu may imagine p as the white pieces and x as the black king for clarity.","description_html":"\u003cul\u003e\u003cli\u003eThe positions of different chess pieces are given in a cell  \u003cb\u003ep\u003c/b\u003e .\u003c/li\u003e\u003cli\u003eThe position of the king is given as \u003cb\u003ex\u003c/b\u003e\u003c/li\u003e\u003c/ul\u003e\u003cp\u003eDetermine if the opponent king is in check for individual scenerios.\u003c/p\u003e\u003cul\u003e\u003cli\u003ex='Kg7'\u003c/li\u003e\u003cli\u003ep={'Qe5','Qg5','Qb5','Qa7'}\u003c/li\u003e\u003c/ul\u003e\u003cp\u003eoutput= [1,1,0,1]\u003c/p\u003e\u003cp\u003eN.b.any invalid position should produce 0.\r\nu may imagine p as the white pieces and x as the black king for clarity.\u003c/p\u003e","function_template":"function y=checkmate(x,p)\r\n  y = x;\r\nend","test_suite":"%%\r\nx='Kg7';\r\np={'Qe5','Qg5','Qb5','Qa7'}\r\ny_correct = [1,1,0,1];\r\nassert(isequal(checkmate(x,p),y_correct))\r\n\r\n%%\r\nx='Kg7';\r\np={'Qe5','Rg5','Bb5','Na7','h6'}\r\ny_correct = [1,1,0,0,1];\r\nassert(isequal(checkmate(x,p),y_correct))\r\n\r\n%%\r\nx='Ka3';\r\np={'Qe5','Rg5','Bb5','Na7','h6'}\r\ny_correct = [0,0,0,0,0];\r\nassert(isequal(checkmate(x,p),y_correct))\r\n\r\n%%\r\nx='Ka3';\r\np={'a2','Rg5','Be7','Nc4','Nb1'}\r\ny_correct = [0,0,1,1,1];\r\nassert(isequal(checkmate(x,p),y_correct))\r\n\r\n%%\r\nx='Ka3';\r\np={'a2','Rg5','Be7','Nc5','Kb2'}\r\ny_correct = [0,0,1,0,0];\r\nassert(isequal(checkmate(x,p),y_correct))\r\n\r\n%%\r\nx='Kf2';\r\np={'Ra2','Rg5','Bh4','Bg1','Nd3','Kf3','Ng1','e1','Qg4','Qf7'}\r\ny_correct = [1,0,1,1,1,0,0,0,0,1];\r\nassert(isequal(checkmate(x,p),y_correct))","published":true,"deleted":false,"likes_count":3,"comments_count":5,"created_by":363598,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":11,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2019-12-21T00:09:28.000Z","updated_at":"2026-01-23T12:59:27.000Z","published_at":"2019-12-21T00:12:53.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe positions of different chess pieces are given in a cell \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ep\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e .\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe position of the king is given as\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ex\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eDetermine if the opponent king is in check for individual scenerios.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ex='Kg7'\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ep={'Qe5','Qg5','Qb5','Qa7'}\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eoutput= [1,1,0,1]\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eN.b.any invalid position should produce 0. u may imagine p as the white pieces and x as the black king for clarity.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":3061,"title":"Mirror, mirror on the wall, who is fairest of them all?","description":"The Elo rating system was featured in the movie *The Social Network* during the \u003chttps://www.youtube.com/watch?v=BzZRr4KV59I/ algorithm scene\u003e where Mark Zuckerberg released Facemash. \r\n\r\nIn the scene Eduardo Saverin writes mathematical formulas for the Elo rating system on Zuckerberg's dorm room window. \r\nThe Elo system is employed to rank coeds by their attractiveness. \r\nThe equations driving the algorithm are shown briefly (Ea and Eb). \r\n\r\nYou should know these equations now (See problem \u003chttp://www.mathworks.com/matlabcentral/cody/problems/3056-chess-probability/ 3056\u003e) :\r\n\r\n\r\n\u003c\u003chttp://upload.wikimedia.org/math/b/0/3/b0366725c224ee55eab6e2371dc6a0ef.png\u003e\u003e\r\n \r\n* \r\n\r\n\r\nEa is the expected probability that Girl A will win the match against Girl B.\r\n\r\nRa is the rating of Girl A, which changes after tournament, according to the formula (Ra )n = (Ra )n-1 + 32 (W - Ea ) where W = {1,0.5,0}.\r\n\r\nNow imagine a single round-robin tournament where each girl plays (is compared with)  every other girl once.\r\nA judge (me for the problem) gives a note :\r\n\r\n* 1   if girl A is more attractive than girl B\r\n* 0   if girl B is more attractive than girl A\r\n* 0.5 if same attractiveness\r\n\r\nI give you the tournament results (2 on the main diagonal).\r\n\r\nFind the final rating of Snow White (she is unique).\r\n\r\nConsider that all girl begin the tournament with a rating of 1000.\r\n\r\nYou can observe that the total number of attractiveness (ELO) points remains constant.\r\n","description_html":"\u003cp\u003eThe Elo rating system was featured in the movie \u003cb\u003eThe Social Network\u003c/b\u003e during the \u003ca href = \"https://www.youtube.com/watch?v=BzZRr4KV59I/\"\u003ealgorithm scene\u003c/a\u003e where Mark Zuckerberg released Facemash.\u003c/p\u003e\u003cp\u003eIn the scene Eduardo Saverin writes mathematical formulas for the Elo rating system on Zuckerberg's dorm room window. \r\nThe Elo system is employed to rank coeds by their attractiveness. \r\nThe equations driving the algorithm are shown briefly (Ea and Eb).\u003c/p\u003e\u003cp\u003eYou should know these equations now (See problem \u003ca href = \"http://www.mathworks.com/matlabcentral/cody/problems/3056-chess-probability/\"\u003e3056\u003c/a\u003e) :\u003c/p\u003e\u003cimg src = \"http://upload.wikimedia.org/math/b/0/3/b0366725c224ee55eab6e2371dc6a0ef.png\"\u003e\u003cul\u003e\u003cli\u003e\u003c/li\u003e\u003c/ul\u003e\u003cp\u003eEa is the expected probability that Girl A will win the match against Girl B.\u003c/p\u003e\u003cp\u003eRa is the rating of Girl A, which changes after tournament, according to the formula (Ra )n = (Ra )n-1 + 32 (W - Ea ) where W = {1,0.5,0}.\u003c/p\u003e\u003cp\u003eNow imagine a single round-robin tournament where each girl plays (is compared with)  every other girl once.\r\nA judge (me for the problem) gives a note :\u003c/p\u003e\u003cul\u003e\u003cli\u003e1   if girl A is more attractive than girl B\u003c/li\u003e\u003cli\u003e0   if girl B is more attractive than girl A\u003c/li\u003e\u003cli\u003e0.5 if same attractiveness\u003c/li\u003e\u003c/ul\u003e\u003cp\u003eI give you the tournament results (2 on the main diagonal).\u003c/p\u003e\u003cp\u003eFind the final rating of Snow White (she is unique).\u003c/p\u003e\u003cp\u003eConsider that all girl begin the tournament with a rating of 1000.\u003c/p\u003e\u003cp\u003eYou can observe that the total number of attractiveness (ELO) points remains constant.\u003c/p\u003e","function_template":"function y = fairest_girl(X)\r\n  y = X;\r\nend","test_suite":"%%\r\nA=[2 1 1 1 1;0 2 1 1 1;0 0 2 1 1;0 0 0 2 1;0 0 0 0 2];\r\nassert(isequal(fairest_girl(A),1064));\r\n%%\r\nA=[2 1;0 2];\r\nassert(isequal(fairest_girl(A),1016));\r\n%%\r\nassert(isequal(fairest_girl([2 1 0.5;0 2 0.5;0.5 0.5 2]),1016));\r\n%%\r\nA=[2 1 1 1 1 1;0 2 1 1 1 1;0 0 2 1 1 1;0 0 0 2 0.5 0.5;0 0 0 0.5 2 0.5;0 0 0 0.5 0.5 2];\r\nassert(isequal(fairest_girl(A),1080));\r\n%%\r\nA=[2 0.5 1;0.5 2 0.5;0 0.5 2];\r\nassert(isequal(fairest_girl(A),1016));\r\n%%\r\nA=[2 1 1 1 1 1 1;0 2 1 1 1 1 1;0 0 2 1 1 1 1;0 0 0 2 0.5 0.5 1;0 0 0 0.5 2 0.5 1;0 0 0 0.5 0.5 2 1;0 0 0 0 0 0 2];\r\nassert(isequal(fairest_girl(A),1096));\r\n%%\r\nA=[2 1 1 1 1 1 0.5;0 2 1 1 1 1 0.5;0 0 2 1 1 1 0.5;0 0 0 2 0.5 0.5 0.5;0 0 0 0.5 2 0.5 0.5;0 0 0 0.5 0.5 2 0.5;0.5 0.5 0.5 0.5 0.5 0.5 2];\r\nassert(isequal(fairest_girl(A),1080));\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":1,"created_by":5390,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":18,"test_suite_updated_at":"2015-03-03T18:22:50.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2015-03-03T18:06:46.000Z","updated_at":"2026-04-01T09:44:49.000Z","published_at":"2015-03-03T18:13:07.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/media/image1.png\"}],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe Elo rating system was featured in the movie\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eThe Social Network\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e during the\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.youtube.com/watch?v=BzZRr4KV59I/\\\"\u003e\u003cw:r\u003e\u003cw:t\u003ealgorithm scene\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e where Mark Zuckerberg released Facemash.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eIn the scene Eduardo Saverin writes mathematical formulas for the Elo rating system on Zuckerberg's dorm room window. The Elo system is employed to rank coeds by their attractiveness. The equations driving the algorithm are shown briefly (Ea and Eb).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eYou should know these equations now (See problem\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://www.mathworks.com/matlabcentral/cody/problems/3056-chess-probability/\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e3056\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e) :\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId1\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eEa is the expected probability that Girl A will win the match against Girl B.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eRa is the rating of Girl A, which changes after tournament, according to the formula (Ra )n = (Ra )n-1 + 32 (W - Ea ) where W = {1,0.5,0}.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eNow imagine a single round-robin tournament where each girl plays (is compared with) every other girl once. A judge (me for the problem) gives a note :\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e1 if girl A is more attractive than girl B\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e0 if girl B is more attractive than girl A\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e0.5 if same attractiveness\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eI give you the tournament results (2 on the main diagonal).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFind the final rating of Snow White (she is unique).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eConsider that all girl begin the tournament with a rating of 1000.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eYou can observe that the total number of attractiveness (ELO) points remains constant.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"},{\"partUri\":\"/media/image1.png\",\"contentType\":\"image/png\",\"content\":\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAM4AAAArBAMAAADCuKrGAAAAMFBMVEX///90dHQEBAQwMDCenp5QUFAWFhbm5ubMzMyKioq2trZAQEAMDAwiIiJiYmIAAADHPVvyAAAAAXRSTlMAQObYZgAAAuJJREFUeNrtV0toE2EQ/pJs91+TZpuKKZ7aHDxZhKBo8WCNQj14qNHiAxFZRNIHVAPFi0UbFC8qEqh40cOePBUfUAoS0BQPvhByqXqoEK1CaauNXswWu3H+JF03TbV5dHPqwGYzM//u98/881qgOhoscZ29OhjnkRIXOqqCYdvmXqMmtKc2fiuZ1nHWcdZxikmrDU7Xq53hkhbagG8Nz7Cl0WO565xkuxS3/nwEHUinrMfJ9NLdbz2OPYUkVOtD+2GA+S0HEYDAzQ82nyEYe8R/+yxAfoc6671G+dM6If+U0oC4sEyXWSuQHzw5JQ0MdfRnPmxpvGk6Fam9lK5q9kzGQpwSqz4Y+beK71cq2rSDxwC9V6iPlrE/+T/GH6fLVWRPhpx3ia57v4Jl4NyIYv5pV8HODH4kx9ep0uETuOYly9m43dV/N7brShRS50xw9amWCwabaWEboO4f7THrDF4PABv4aKe3PMDn2SSJFFMi2ZSiCvt2JcFLDMNJWdYEHqV/yeB52vvBmtQRiAfjOFvQfybhWF6zWau6gkDuwXlVoD214MK0WWvwGnnHB5ZCH9gLFf1mnKvTGJpY3ivfLIWd2yRI+yAEFsnpKe+sD/fbpwL5RVkeUraeLPpxPRtdH42HS5me3SZBgwcOxRWAlEI7aSJCwhaLxR7nebjI0m76PGBRUW2C+EnBucr6djgCSaHSoSWxSDUjkolnOjo6DuV57KaYe4IDWDg9uekOxF4FxyrD4TVEEVTYPRiWcLHxfT6TcjzqGUUeWZTZuHVOCWOM4XfFc0gaepCdOglvEpvnt+djJMfLvgEIUcYFU7f1fZ344k1Wdj5DUbjjPH+yNAqxICgHvo/DFbGV2QCyOK5Q6Ewo1G+KA7diZHD3UvbnKYijuFX2V+JK9ohBiEk4cyVG1r+2FZiTkCZVDy6vAY6cQINaQV8oa6olgZaGrKwtTtFUywXa8+YdVnVDN2pDjqrf8Af8bczR/4tLjAAAAABJRU5ErkJggg==\"}]}"},{"id":306,"title":"Eight Queens Solution Checker","description":"Write a function to verify whether an arrangement of queens on a chessboard is a valid solution to the classic eight queens problem.\r\nIn the eight queens problem, eight queens must be placed on a chessboard such that no two queens attack each other. That is, no two queens can share the same row, column, or diagonal. The diagram below is one possible solution:\r\n\r\nYour function should take an 8-by-8 matrix of 0s and 1s, where the 1s represent the position of the queens, and return a logical 1 if the solution is valid or a logical 0 otherwise.\r\nEXAMPLE 1\r\n   in1 = [ ...\r\n       0 0 0 1 0 0 0 0\r\n       0 0 0 0 0 0 1 0\r\n       0 0 1 0 0 0 0 0\r\n       0 0 0 0 0 0 0 1\r\n       0 1 0 0 0 0 0 0\r\n       0 0 0 0 1 0 0 0\r\n       1 0 0 0 0 0 0 0\r\n       0 0 0 0 0 1 0 0 ];\r\n\r\n   isEightQueensSolution(in1)\r\nreturns 1.\r\nEXAMPLE 2\r\n   in2 = [ ...\r\n       0 0 0 1 0 0 0 0\r\n       0 0 0 0 0 0 1 0\r\n       0 0 1 0 0 0 0 0\r\n       0 0 0 0 0 0 0 1\r\n       0 1 0 0 0 0 0 0\r\n       1 0 0 0 0 0 0 0\r\n       0 0 0 0 1 0 0 0\r\n       0 0 0 0 0 1 0 0 ];\r\n\r\n   isEightQueensSolution(in2)\r\nreturns 0. (Notice that the queens on the bottom two rows share a diagonal.)","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.4333px; min-height: 0px; white-space: normal; color: rgb(0, 0, 0); font-family: Menlo, Monaco, Consolas, monospace; font-style: normal; font-size: 14px; font-weight: 400; text-decoration: rgb(0, 0, 0); white-space: normal; \"\u003e\u003cdiv style=\"block-size: 1032.03px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 516.017px; transform-origin: 407px 516.017px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 343.5px 8px; transform-origin: 343.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eWrite a function to verify whether an arrangement of queens on a chessboard is a valid solution to the classic\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 2px 8px; transform-origin: 2px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"/#null\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eeight queens problem\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 2px 8px; transform-origin: 2px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 377.5px 8px; transform-origin: 377.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eIn the eight queens problem, eight queens must be placed on a chessboard such that no two queens attack each other. That is, no two queens can share the same row, column, or diagonal. The diagram below is one possible solution:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 287.5px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 143.75px; text-align: center; transform-origin: 384px 143.75px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cimg class=\"imageNode\" style=\"vertical-align: baseline\" src=\"data:image/png;base64,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\" data-image-state=\"image-loaded\"\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 380px 8px; transform-origin: 380px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eYour function should take an 8-by-8 matrix of 0s and 1s, where the 1s represent the position of the queens, and return a logical 1 if the solution is valid or a logical 0 otherwise.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 39px 8px; transform-origin: 39px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eEXAMPLE 1\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgb(247, 247, 247); block-size: 224.767px; border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; border-end-end-radius: 4px; border-end-start-radius: 4px; border-start-end-radius: 4px; border-start-start-radius: 4px; border-top-left-radius: 4px; border-top-right-radius: 4px; margin-block-end: 10px; margin-block-start: 10px; margin-bottom: 10px; margin-inline-end: 3px; margin-inline-start: 3px; margin-left: 3px; margin-right: 3px; margin-top: 10px; perspective-origin: 404px 112.383px; transform-origin: 404px 112.383px; margin-left: 3px; margin-top: 10px; margin-bottom: 10px; margin-right: 3px; \"\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 56px 8.5px; tab-size: 4; transform-origin: 56px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; perspective-origin: 44px 8.5px; transform-origin: 44px 8.5px; \"\u003e   in1 = [ \u003c/span\u003e\u003cspan style=\"border-block-end-color: rgb(14, 0, 255); border-block-start-color: rgb(14, 0, 255); border-bottom-color: rgb(14, 0, 255); border-inline-end-color: rgb(14, 0, 255); border-inline-start-color: rgb(14, 0, 255); border-left-color: rgb(14, 0, 255); border-right-color: rgb(14, 0, 255); border-top-color: rgb(14, 0, 255); caret-color: rgb(14, 0, 255); color: rgb(14, 0, 255); column-rule-color: rgb(14, 0, 255); margin-inline-end: 0px; margin-right: 0px; outline-color: rgb(14, 0, 255); perspective-origin: 12px 8.5px; text-decoration: none; text-decoration-color: rgb(14, 0, 255); text-emphasis-color: rgb(14, 0, 255); transform-origin: 12px 8.5px; \"\u003e...\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 88px 8.5px; tab-size: 4; transform-origin: 88px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e       0 0 0 1 0 0 0 0\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 88px 8.5px; tab-size: 4; transform-origin: 88px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e       0 0 0 0 0 0 1 0\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 88px 8.5px; tab-size: 4; transform-origin: 88px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e       0 0 1 0 0 0 0 0\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 88px 8.5px; tab-size: 4; transform-origin: 88px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e       0 0 0 0 0 0 0 1\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 88px 8.5px; tab-size: 4; transform-origin: 88px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e       0 1 0 0 0 0 0 0\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 88px 8.5px; tab-size: 4; transform-origin: 88px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e       0 0 0 0 1 0 0 0\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 88px 8.5px; tab-size: 4; transform-origin: 88px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e       1 0 0 0 0 0 0 0\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 100px 8.5px; tab-size: 4; transform-origin: 100px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e       0 0 0 0 0 1 0 0 ];\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 0px 8.5px; tab-size: 4; transform-origin: 0px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 116px 8.5px; tab-size: 4; transform-origin: 116px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e   isEightQueensSolution(in1)\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 10px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 10px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 10px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 30.5px 8px; transform-origin: 30.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003ereturns 1.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 39px 8px; transform-origin: 39px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eEXAMPLE 2\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgb(247, 247, 247); block-size: 224.767px; border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; border-end-end-radius: 4px; border-end-start-radius: 4px; border-start-end-radius: 4px; border-start-start-radius: 4px; border-top-left-radius: 4px; border-top-right-radius: 4px; margin-block-end: 10px; margin-block-start: 10px; margin-bottom: 10px; margin-inline-end: 3px; margin-inline-start: 3px; margin-left: 3px; margin-right: 3px; margin-top: 10px; perspective-origin: 404px 112.383px; transform-origin: 404px 112.383px; margin-left: 3px; margin-top: 10px; margin-bottom: 10px; margin-right: 3px; \"\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 56px 8.5px; tab-size: 4; transform-origin: 56px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; perspective-origin: 44px 8.5px; transform-origin: 44px 8.5px; \"\u003e   in2 = [ \u003c/span\u003e\u003cspan style=\"border-block-end-color: rgb(14, 0, 255); border-block-start-color: rgb(14, 0, 255); border-bottom-color: rgb(14, 0, 255); border-inline-end-color: rgb(14, 0, 255); border-inline-start-color: rgb(14, 0, 255); border-left-color: rgb(14, 0, 255); border-right-color: rgb(14, 0, 255); border-top-color: rgb(14, 0, 255); caret-color: rgb(14, 0, 255); color: rgb(14, 0, 255); column-rule-color: rgb(14, 0, 255); margin-inline-end: 0px; margin-right: 0px; outline-color: rgb(14, 0, 255); perspective-origin: 12px 8.5px; text-decoration: none; text-decoration-color: rgb(14, 0, 255); text-emphasis-color: rgb(14, 0, 255); transform-origin: 12px 8.5px; \"\u003e...\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 88px 8.5px; tab-size: 4; transform-origin: 88px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e       0 0 0 1 0 0 0 0\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 88px 8.5px; tab-size: 4; transform-origin: 88px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e       0 0 0 0 0 0 1 0\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 88px 8.5px; tab-size: 4; transform-origin: 88px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e       0 0 1 0 0 0 0 0\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 88px 8.5px; tab-size: 4; transform-origin: 88px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e       0 0 0 0 0 0 0 1\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 88px 8.5px; tab-size: 4; transform-origin: 88px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e       0 1 0 0 0 0 0 0\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 88px 8.5px; tab-size: 4; transform-origin: 88px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e       1 0 0 0 0 0 0 0\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 88px 8.5px; tab-size: 4; transform-origin: 88px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e       0 0 0 0 1 0 0 0\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 100px 8.5px; tab-size: 4; transform-origin: 100px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e       0 0 0 0 0 1 0 0 ];\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 0px 8.5px; tab-size: 4; transform-origin: 0px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 116px 8.5px; tab-size: 4; transform-origin: 116px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e   isEightQueensSolution(in2)\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 10px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 10px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 10px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 240px 8px; transform-origin: 240px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003ereturns 0. (Notice that the queens on the bottom two rows share a diagonal.)\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function y = isEightQueensSolution(x)\r\n  y = x;\r\nend","test_suite":"%% Eight Queens Solution Checker Test Suite\r\n\r\n%%\r\n% Unique solution #6 from \r\n% http://en.wikipedia.org/wiki/Eight_queens_puzzle\r\nin1 = [ ...\r\n    0 0 0 0 1 0 0 0\r\n    0 0 1 0 0 0 0 0\r\n    0 0 0 0 0 0 0 1\r\n    0 0 0 1 0 0 0 0\r\n    0 0 0 0 0 0 1 0\r\n    1 0 0 0 0 0 0 0\r\n    0 0 0 0 0 1 0 0\r\n    0 1 0 0 0 0 0 0 ];\r\nout1 = isEightQueensSolution(in1);\r\nassert(islogical(out1));\r\nassert(isequal(out1, 1));\r\n\r\n%%\r\n% Unique solution #7\r\nin2 = [ ...\r\n    0 0 0 0 1 0 0 0\r\n    0 0 0 0 0 0 1 0\r\n    0 0 0 1 0 0 0 0\r\n    1 0 0 0 0 0 0 0\r\n    0 0 1 0 0 0 0 0\r\n    0 0 0 0 0 0 0 1\r\n    0 0 0 0 0 1 0 0\r\n    0 1 0 0 0 0 0 0 ];\r\nout2 = isEightQueensSolution(in2);\r\nassert(isequal(out2, 1));\r\n\r\n%%\r\n% Unique solution #10\r\nin3 = [ ...\r\n    0 0 0 0 0 1 0 0\r\n    0 1 0 0 0 0 0 0\r\n    0 0 0 0 0 0 1 0\r\n    1 0 0 0 0 0 0 0\r\n    0 0 0 1 0 0 0 0\r\n    0 0 0 0 0 0 0 1\r\n    0 0 0 0 1 0 0 0\r\n    0 0 1 0 0 0 0 0 ];\r\nout3 = isEightQueensSolution(in3);\r\nassert(isequal(out3, 1));\r\n\r\n%%\r\n% Unique solution #11\r\nin4 = [ ...\r\n    0 0 0 1 0 0 0 0\r\n    0 0 0 0 0 0 1 0\r\n    1 0 0 0 0 0 0 0\r\n    0 0 0 0 0 0 0 1\r\n    0 0 0 0 1 0 0 0\r\n    0 1 0 0 0 0 0 0\r\n    0 0 0 0 0 1 0 0\r\n    0 0 1 0 0 0 0 0 ];\r\nout4 = isEightQueensSolution(in4);\r\nassert(isequal(out4, 1));\r\n\r\n%%\r\nin5 = [ ...\r\n    0 0 0 0 1 0 0 0\r\n    0 0 1 0 0 0 0 0\r\n    0 0 0 1 0 0 0 0\r\n    0 0 0 0 0 0 0 1\r\n    0 0 0 0 0 0 1 0\r\n    1 0 0 0 0 0 0 0\r\n    0 0 0 0 0 1 0 0\r\n    0 1 0 0 0 0 0 0 ];\r\nout5 = isEightQueensSolution(in5);\r\nassert(isequal(out5, 0));\r\n\r\n%%\r\nin6 = [ ...\r\n    0 0 1 0 0 0 0 0\r\n    0 0 0 0 0 0 1 0\r\n    0 0 0 1 0 0 0 0\r\n    1 0 0 0 0 0 0 0\r\n    0 0 1 0 0 0 0 0\r\n    0 0 0 0 0 0 0 1\r\n    0 0 0 0 0 1 0 0\r\n    0 1 0 0 0 0 0 0 ];\r\nout6 = isEightQueensSolution(in6);\r\nassert(isequal(out6, 0));\r\n\r\n%%\r\nin7 = [ ...\r\n    0 0 0 0 0 1 0 0\r\n    0 1 0 0 0 0 0 0\r\n    0 0 0 0 0 0 1 0\r\n    1 0 0 0 0 0 0 0\r\n    0 0 0 1 0 0 0 0\r\n    0 0 0 0 0 0 0 1\r\n    0 0 1 0 0 0 0 0\r\n    0 0 0 0 1 0 0 0 ];\r\nout7 = isEightQueensSolution(in7);\r\nassert(isequal(out7, 0));\r\n\r\n%%\r\nin8 = [ ...\r\n    0 0 0 1 0 0 0 0\r\n    0 0 0 0 0 0 1 0\r\n    1 0 0 0 0 0 0 0\r\n    0 0 0 0 1 0 0 1\r\n    0 0 0 0 0 0 0 0\r\n    0 1 0 0 0 0 0 0\r\n    0 0 0 0 0 1 0 0\r\n    0 0 1 0 0 0 0 0 ];\r\nout8 = isEightQueensSolution(in8);\r\nassert(isequal(out8, 0));\r\n\r\n%%\r\n% Only 7 queens\r\nin9 = [ ...\r\n    0 0 0 0 1 0 0 0\r\n    0 0 1 0 0 0 0 0\r\n    0 0 0 0 0 0 0 1\r\n    0 0 0 1 0 0 0 0\r\n    0 0 0 0 0 0 0 0\r\n    1 0 0 0 0 0 0 0\r\n    0 0 0 0 0 1 0 0\r\n    0 1 0 0 0 0 0 0 ];\r\nout9 = isEightQueensSolution(in9);\r\nassert(isequal(out9, 0));\r\n\r\n%%\r\n% Row and column constraint satisfied but \r\n% not diagonal constraint.\r\nin10 = eye(8);\r\nout10 = isEightQueensSolution(in10);\r\nassert(isequal(out10, 0));\r\n\r\n%%\r\n% Row and column constraint satisfied but \r\n% not diagonal constraint.\r\nin10 = flip(eye(8));\r\nout10 = isEightQueensSolution(in10);\r\nassert(isequal(out10, 0));","published":true,"deleted":false,"likes_count":6,"comments_count":2,"created_by":4303371,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":168,"test_suite_updated_at":"2022-01-07T08:34:21.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2012-02-11T12:21:25.000Z","updated_at":"2026-03-23T21:10:35.000Z","published_at":"2012-02-11T12:55:24.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eWrite a function to verify whether an arrangement of queens on a chessboard is a valid solution to the classic\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eeight queens problem\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eIn the eight queens problem, eight queens must be placed on a chessboard such that no two queens attack each other. That is, no two queens can share the same row, column, or diagonal. The diagram below is one possible solution:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"center\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"verticalAlign\\\" w:val=\\\"baseline\\\"/\u003e\u003cw:attr w:name=\\\"altText\\\" w:val=\\\"\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId1\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eYour function should take an 8-by-8 matrix of 0s and 1s, where the 1s represent the position of the queens, and return a logical 1 if the solution is valid or a logical 0 otherwise.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eEXAMPLE 1\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[   in1 = [ ...\\n       0 0 0 1 0 0 0 0\\n       0 0 0 0 0 0 1 0\\n       0 0 1 0 0 0 0 0\\n       0 0 0 0 0 0 0 1\\n       0 1 0 0 0 0 0 0\\n       0 0 0 0 1 0 0 0\\n       1 0 0 0 0 0 0 0\\n       0 0 0 0 0 1 0 0 ];\\n\\n   isEightQueensSolution(in1)]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ereturns 1.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eEXAMPLE 2\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[   in2 = [ ...\\n       0 0 0 1 0 0 0 0\\n       0 0 0 0 0 0 1 0\\n       0 0 1 0 0 0 0 0\\n       0 0 0 0 0 0 0 1\\n       0 1 0 0 0 0 0 0\\n       1 0 0 0 0 0 0 0\\n       0 0 0 0 1 0 0 0\\n       0 0 0 0 0 1 0 0 ];\\n\\n   isEightQueensSolution(in2)]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ereturns 0. (Notice that the queens on the bottom two rows share a diagonal.)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\",\"relationship\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"target\":\"/media/image1.png\",\"relationshipId\":\"rId1\"}]},{\"partUri\":\"/media/image1.png\",\"contentType\":\"image/png\",\"content\":\"data:image/png;base64,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\",\"relationship\":null}],\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"target\":\"/matlab/document.xml\",\"relationshipId\":\"rId1\"}]}"},{"id":45237,"title":"Queen's move - 02","description":"In continuation with the problem-45236 ... \r\nIn the previous problem, it was assumed that there were no other chess pieces on the board... Now lets assume there is a number of king present on the board whose location is given in an array *p* . Now, check for the validity of Queen's moves.\r\n\r\n# x={'Qd1','Qh1','Qh8','Qd5','Qg5','Qc5','Qa7','Qf2','Qe7','Qh7'}\r\n# p={'Kd4','Ke5','Kh7','Ke7'}\r\n\r\noutput=[1,1,0,1,0,1,1,0,0,0]\r\n\r\nkindly see this problem for understanding\r\n\u003chttps://www.mathworks.com/matlabcentral/cody/problems/45236-queen-s-move\u003e\r\n","description_html":"\u003cp\u003eIn continuation with the problem-45236 ... \r\nIn the previous problem, it was assumed that there were no other chess pieces on the board... Now lets assume there is a number of king present on the board whose location is given in an array \u003cb\u003ep\u003c/b\u003e . Now, check for the validity of Queen's moves.\u003c/p\u003e\u003col\u003e\u003cli\u003ex={'Qd1','Qh1','Qh8','Qd5','Qg5','Qc5','Qa7','Qf2','Qe7','Qh7'}\u003c/li\u003e\u003cli\u003ep={'Kd4','Ke5','Kh7','Ke7'}\u003c/li\u003e\u003c/ol\u003e\u003cp\u003eoutput=[1,1,0,1,0,1,1,0,0,0]\u003c/p\u003e\u003cp\u003ekindly see this problem for understanding \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/45236-queen-s-move\"\u003ehttps://www.mathworks.com/matlabcentral/cody/problems/45236-queen-s-move\u003c/a\u003e\u003c/p\u003e","function_template":"function z = Queen_move_3(x,p)\r\n  y = x;\r\nend","test_suite":"%%\r\nx={'Qd1','Qh1','Qh8','Qd5','Qg5','Qc5','Qa7','Qf2','Qe7','Qh7'};\r\np={'Kd4','Ke5','Kh7','Ke7'};\r\ny_correct = [1,1,0,1,0,1,1,0,0,0];\r\nassert(isequal(Queen_move_3(x,p),y_correct))\r\n\r\n%%\r\nx={'Qd1','Qd5','Qf1','Qa8','Qf7','Qb2','Qc7'};\r\np={'Kd4','Ke5','Kh7','Ke7'};\r\ny_correct = [1,0,1,0,1,0,0];\r\nassert(isequal(Queen_move_3(x,p),y_correct))\r\n\r\n%%\r\nx={'Qh7','Qh1','Qh8','Qd5','Qg5','Qc5','Qa7','Qf2','Qe7'};\r\np={'Kd4','Ke5','Kh7','Ke7'};\r\ny_correct = [0,0,0,0,0,0,0,0,0];\r\nassert(isequal(Queen_move_3(x,p),y_correct))\r\n\r\n%%\r\nx={'Qh7','Qh1','Qh8','Qd5','Qg5','Qc5','Qa7','Qf2','Qe7'};\r\np={'Ka8','Kb2','Kd7','Kf3','Kg6'};\r\ny_correct = [1,1,1,0,0,0,0,0,0];\r\nassert(isequal(Queen_move_3(x,p),y_correct))\r\n\r\n%%\r\nx={'Qh7','Qh1','Qd5','Qg5','Qc5','Qa7','Qf2','Qe7','Qg2','Qg7','Qf1','Qf7','Qf2','Qa2'};\r\np={'Ka8','Kb2','Kd7','Kf3','Kg6'};\r\ny_correct = [1,1,0,0,0,0,0,0,1,0,1,0,1,0];\r\nassert(isequal(Queen_move_3(x,p),y_correct))\r\n","published":true,"deleted":false,"likes_count":2,"comments_count":3,"created_by":363598,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":8,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2019-12-20T23:00:44.000Z","updated_at":"2026-01-23T12:47:14.000Z","published_at":"2019-12-20T23:01:21.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eIn continuation with the problem-45236 ... In the previous problem, it was assumed that there were no other chess pieces on the board... Now lets assume there is a number of king present on the board whose location is given in an array\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ep\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e . Now, check for the validity of Queen's moves.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"2\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ex={'Qd1','Qh1','Qh8','Qd5','Qg5','Qc5','Qa7','Qf2','Qe7','Qh7'}\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"2\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ep={'Kd4','Ke5','Kh7','Ke7'}\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eoutput=[1,1,0,1,0,1,1,0,0,0]\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ekindly see this problem for understanding\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/45236-queen-s-move\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026lt;https://www.mathworks.com/matlabcentral/cody/problems/45236-queen-s-move\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026gt;\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":45332,"title":"Castling-03","description":"Given the position of different chess pieces on the chessboard, figure out whether castling is valid or not in the next move (white king).\r\n\r\n* a=position of white pieces\r\n* b=position of black pieces\r\n\r\n\u003chttps://en.wikipedia.org/wiki/Castling\u003e\r\n\r\nPrevious problem \u003chttps://www.mathworks.com/matlabcentral/cody/problems/45330-castling-02#\u003e\r\n\r\n\r\n","description_html":"\u003cp\u003eGiven the position of different chess pieces on the chessboard, figure out whether castling is valid or not in the next move (white king).\u003c/p\u003e\u003cul\u003e\u003cli\u003ea=position of white pieces\u003c/li\u003e\u003cli\u003eb=position of black pieces\u003c/li\u003e\u003c/ul\u003e\u003cp\u003e\u003ca href = \"https://en.wikipedia.org/wiki/Castling\"\u003ehttps://en.wikipedia.org/wiki/Castling\u003c/a\u003e\u003c/p\u003e\u003cp\u003ePrevious problem \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/45330-castling-02#\"\u003ehttps://www.mathworks.com/matlabcentral/cody/problems/45330-castling-02#\u003c/a\u003e\u003c/p\u003e","function_template":"function tf=castling_03(a,b)\r\n  y = x;\r\nend","test_suite":"%%\r\na={'Rd1','Rh1','Ke1'}\r\n b={'Nc6','Bg1','g5','Rh8'}\r\nassert(isequal(castling_03(a,b),0))\r\n\r\n%%\r\na={'Rd1','Rh1','Ke1'}\r\nb={'Nc6','d3','g5','Rh8','Qb8'}\r\nassert(isequal(castling_03(a,b),1))\r\n\r\n%%\r\na={'Qe1','Rh1','Kd2','Nf7'}\r\nb={'Nc6','d3','g5','Rh8','Qb8'}\r\nassert(isequal(castling_03(a,b),0))\r\n\r\n%%\r\na={'Qe1','Rh1','Kd2','Nf7'}\r\nb={'Nc6','d3','g5','Rh8','Qc1'}\r\nassert(isequal(castling_03(a,b),0))\r\n\r\n%%\r\na={'Qf1','Rh1','Ra1','Ke1'}\r\nb={'Ng1','h3','Rg5','Nb1','Qa8'}\r\nassert(isequal(castling_03(a,b),0))\r\n\r\n%%\r\na={'Qf1','Rh1','Ra1','Ke1'}\r\nb={'Ng1','h3','Rg5','Nb5','Qa8'}\r\nassert(isequal(castling_03(a,b),1))\r\n\r\n%%\r\na={'Qf1','Rh1','Ra1','Ke1'}\r\n b={'Ba8','Bg7','Rh6','Rb2'}\r\nassert(isequal(castling_03(a,b),1))\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":3,"created_by":363598,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":9,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2020-02-16T12:59:11.000Z","updated_at":"2026-01-23T14:02:57.000Z","published_at":"2020-02-16T13:24:25.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eGiven the position of different chess pieces on the chessboard, figure out whether castling is valid or not in the next move (white king).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ea=position of white pieces\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eb=position of black pieces\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:hyperlink w:docLocation=\\\"https://en.wikipedia.org/wiki/Castling\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026lt;https://en.wikipedia.org/wiki/Castling\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026gt;\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ePrevious problem\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/45330-castling-02#\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026lt;https://www.mathworks.com/matlabcentral/cody/problems/45330-castling-02#\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026gt;\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":447,"title":"swap sign sum \u0026 multiply castles","description":"It is an easy problem, if you know the answer.\r\nGiven a square matrix of NxN ordinary numbers.\r\nInitially place N identical indistinguishable castles or rooks (chess pieces) on the main diagonal.\r\nThen keep swapping any two rows or columns to exhaustively enumerate all possible unique patterns of castle formation.\r\nNot a single castle in any of these formations should be under threat of any other castle,\r\nonly one castle watches over an otherwise empty row and column.\r\nFor each pattern, find the product of all numbers covered by the castles.\r\nIf this pattern was obtained after even number (0,2,4,...) of swaps,\r\nthen add the product to an initially empty accumulator,\r\notherwise subtract the product from the accumulator.\r\nGive the final expected value of the accumulator,\r\ndoes not matter whether by hook or by crook,\r\nbut please give a general solution,\r\nthe test suite may be modified soon.","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.4333px; min-height: 0px; white-space: normal; color: rgb(0, 0, 0); font-family: Menlo, Monaco, Consolas, monospace; font-style: normal; font-size: 14px; font-weight: 400; text-decoration: rgb(0, 0, 0); white-space: normal; \"\u003e\u003cdiv style=\"block-size: 306.5px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 153.25px; transform-origin: 407px 153.25px; vertical-align: baseline; \"\u003e\u003cul style=\"counter-reset: list-item 0; font-family: Helvetica, Arial, sans-serif; list-style-type: square; margin-block-end: 20px; margin-block-start: 10px; margin-bottom: 20px; margin-top: 10px; perspective-origin: 391px 153.25px; transform-origin: 391px 153.25px; margin-top: 10px; margin-bottom: 20px; \"\u003e\u003cli style=\"background-position-x: 0px; background-position-y: 50%; block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.2167px; text-align: left; transform-origin: 363px 10.2167px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"background-position-x: 0%; background-position-y: 0%; block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 142px 8px; transform-origin: 142px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eIt is an easy problem, if you know the answer.\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"background-position-x: 0px; background-position-y: 50%; block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.2167px; text-align: left; transform-origin: 363px 10.2167px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"background-position-x: 0%; background-position-y: 0%; block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 150.5px 8px; transform-origin: 150.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eGiven a square matrix of NxN ordinary numbers.\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"background-position-x: 0px; background-position-y: 50%; block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.2167px; text-align: left; transform-origin: 363px 10.2167px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"background-position-x: 0%; background-position-y: 0%; block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 299px 8px; transform-origin: 299px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eInitially place N identical indistinguishable castles or rooks (chess pieces) on the main diagonal.\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"background-position-x: 0px; background-position-y: 50%; block-size: 40.8667px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 20.4333px; text-align: left; transform-origin: 363px 20.4333px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"background-position-x: 0%; background-position-y: 0%; block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 348px 8px; transform-origin: 348px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThen keep swapping any two rows or columns to exhaustively enumerate all possible unique patterns of castle formation.\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"background-position-x: 0px; background-position-y: 50%; block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.2167px; text-align: left; transform-origin: 363px 10.2167px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"background-position-x: 0%; background-position-y: 0%; block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 277.5px 8px; transform-origin: 277.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eNot a single castle in any of these formations should be under threat of any other castle,\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"background-position-x: 0px; background-position-y: 50%; block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.2167px; text-align: left; transform-origin: 363px 10.2167px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"background-position-x: 0%; background-position-y: 0%; block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 207.5px 8px; transform-origin: 207.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eonly one castle watches over an otherwise empty row and column.\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"background-position-x: 0px; background-position-y: 50%; block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.2167px; text-align: left; transform-origin: 363px 10.2167px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"background-position-x: 0%; background-position-y: 0%; block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 228px 8px; transform-origin: 228px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eFor each pattern, find the product of all numbers covered by the castles.\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"background-position-x: 0px; background-position-y: 50%; block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.2167px; text-align: left; transform-origin: 363px 10.2167px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"background-position-x: 0%; background-position-y: 0%; block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 207px 8px; transform-origin: 207px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eIf this pattern was obtained after even number (0,2,4,...) of swaps,\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"background-position-x: 0px; background-position-y: 50%; block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.2167px; text-align: left; transform-origin: 363px 10.2167px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"background-position-x: 0%; background-position-y: 0%; block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 170px 8px; transform-origin: 170px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003ethen add the product to an initially empty accumulator,\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"background-position-x: 0px; background-position-y: 50%; block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.2167px; text-align: left; transform-origin: 363px 10.2167px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"background-position-x: 0%; background-position-y: 0%; block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 165.5px 8px; transform-origin: 165.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eotherwise subtract the product from the accumulator.\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"background-position-x: 0px; background-position-y: 50%; block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.2167px; text-align: left; transform-origin: 363px 10.2167px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"background-position-x: 0%; background-position-y: 0%; block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 153px 8px; transform-origin: 153px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eGive the final expected value of the accumulator,\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"background-position-x: 0px; background-position-y: 50%; block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.2167px; text-align: left; transform-origin: 363px 10.2167px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"background-position-x: 0%; background-position-y: 0%; block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 143px 8px; transform-origin: 143px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003edoes not matter whether by hook or by crook,\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"background-position-x: 0px; background-position-y: 50%; block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.2167px; text-align: left; transform-origin: 363px 10.2167px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"background-position-x: 0%; background-position-y: 0%; block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 108.5px 8px; transform-origin: 108.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003ebut please give a general solution,\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"background-position-x: 0px; background-position-y: 50%; block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.2167px; text-align: left; transform-origin: 363px 10.2167px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"background-position-x: 0%; background-position-y: 0%; block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 113.5px 8px; transform-origin: 113.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003ethe test suite may be modified soon.\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003c/ul\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function y = swapsignsum(x)\r\n  y = prod(diag(x));\r\nend","test_suite":"%%\r\nx = [3 4; 1 2];\r\ny = round(swapsignsum(x))\r\ny_correct = 2;\r\nassert(y==y_correct)\r\n\r\n%%\r\nx = [3 1 3 2; 5 5 8 9; 7 1 3 3; 9 1 8 2];\r\ny = round(swapsignsum(x))\r\ny_correct = 12;\r\nassert(y==y_correct)\r\n\r\n%%\r\nx = [1 2;3 4];\r\ny = round(swapsignsum(x));\r\ny_correct = -2;\r\nassert(y==y_correct)\r\n\r\n%%\r\nx = eye(randi(7));\r\ny = round(swapsignsum(x));\r\ny_correct = 1;\r\nassert(y==y_correct)","published":true,"deleted":false,"likes_count":4,"comments_count":4,"created_by":166,"edited_by":223089,"edited_at":"2023-04-18T18:14:35.000Z","deleted_by":null,"deleted_at":null,"solvers_count":227,"test_suite_updated_at":"2023-04-18T18:14:35.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2012-03-04T09:15:20.000Z","updated_at":"2026-03-16T14:57:26.000Z","published_at":"2012-03-05T20:08:13.000Z","restored_at":null,"restored_by":null,"spam":null,"simulink":false,"admin_reviewed":false,"description_opc":"{\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eIt is an easy problem, if you know the answer.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eGiven a square matrix of NxN ordinary numbers.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eInitially place N identical indistinguishable castles or rooks (chess pieces) on the main diagonal.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThen keep swapping any two rows or columns to exhaustively enumerate all possible unique patterns of castle formation.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eNot a single castle in any of these formations should be under threat of any other castle,\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eonly one castle watches over an otherwise empty row and column.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFor each pattern, find the product of all numbers covered by the castles.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eIf this pattern was obtained after even number (0,2,4,...) of swaps,\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ethen add the product to an initially empty accumulator,\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eotherwise subtract the product from the accumulator.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eGive the final expected value of the accumulator,\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003edoes not matter whether by hook or by crook,\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ebut please give a general solution,\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ethe test suite may be modified soon.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\",\"relationship\":null}],\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"target\":\"/matlab/document.xml\",\"relationshipId\":\"rId1\"}]}"},{"id":45418,"title":"En passant - 01","description":"This is white's turn. The player moves his pawn.\r\n\r\nThe pawn's previous and current positions are given.\r\n\r\nDetermine whether the move was valid.\r\n\r\n pawn's previous pos = 'b2'\r\n pawn's previous pos = 'c3'\r\n\r\nSo this is a valid move provided there was an opponent piece on c3.\r\n\r\nBut for now, just check the validity of the move. Opponent's pieces will be added in the next problem.\r\n\r\n\u003chttps://en.wikipedia.org/wiki/Chess#Movement\u003e\r\n","description_html":"\u003cp\u003eThis is white's turn. The player moves his pawn.\u003c/p\u003e\u003cp\u003eThe pawn's previous and current positions are given.\u003c/p\u003e\u003cp\u003eDetermine whether the move was valid.\u003c/p\u003e\u003cpre\u003e pawn's previous pos = 'b2'\r\n pawn's previous pos = 'c3'\u003c/pre\u003e\u003cp\u003eSo this is a valid move provided there was an opponent piece on c3.\u003c/p\u003e\u003cp\u003eBut for now, just check the validity of the move. Opponent's pieces will be added in the next problem.\u003c/p\u003e\u003cp\u003e\u003ca href = \"https://en.wikipedia.org/wiki/Chess#Movement\"\u003ehttps://en.wikipedia.org/wiki/Chess#Movement\u003c/a\u003e\u003c/p\u003e","function_template":"function tf = en_passant(w1,w2)","test_suite":"%%\r\nassert(isequal(en_passant('b2','c3'),1))\r\n%%\r\nassert(isequal(en_passant('a2','a3'),1))\r\n%%\r\nassert(isequal(en_passant('d3','d5'),0))\r\n%%\r\nassert(isequal(en_passant('e5','d4'),0))\r\n%%\r\nassert(isequal(en_passant('e5','c6'),0))\r\n%%\r\nassert(isequal(en_passant('e5','d6'),1))\r\n%%\r\nassert(isequal(en_passant('b2','b4'),1))\r\n%%\r\nassert(isequal(en_passant('b2','c2'),0))\r\n%%\r\nassert(isequal(en_passant('a1','a2'),0))\r\n%%\r\nassert(isequal(en_passant('g7','g8'),1))\r\n%%\r\nassert(isequal(en_passant('g7','g6'),0))\r\n%%\r\nassert(isequal(en_passant('f5','h6'),0))\r\n\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":363598,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":17,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2020-04-02T03:21:50.000Z","updated_at":"2026-01-23T14:14:44.000Z","published_at":"2020-04-02T03:23:17.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis is white's turn. The player moves his pawn.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe pawn's previous and current positions are given.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eDetermine whether the move was valid.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[ pawn's previous pos = 'b2'\\n pawn's previous pos = 'c3']]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eSo this is a valid move provided there was an opponent piece on c3.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eBut for now, just check the validity of the move. Opponent's pieces will be added in the next problem.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:hyperlink w:docLocation=\\\"https://en.wikipedia.org/wiki/Chess#Movement\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026lt;https://en.wikipedia.org/wiki/Chess#Movement\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026gt;\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":42674,"title":"Cody meets Xiangqi: foresee the unseen (Part 1)","description":"This is the first part of the Xiangqi series. The second part in this series is: \u003chttp://www.mathworks.com/matlabcentral/cody/problems/42685-cody-meets-xiangqi-foresee-the-unseen-part-2 Cody meets Xiangqi: foresee the unseen (Part 2)\u003e\r\n\r\n\u003chttps://en.wikipedia.org/wiki/Xiangqi Xiangqi\u003e, also known as *Chinese Chess* (and 象棋 in Chinese characters), is one of the most popular board games in China. The modern Xiangqi board contains a middle section which divides two players' sides and is marked the \"Chu River–Han border\", in reference to the Chu–Han Contention between \u003chttps://en.wikipedia.org/wiki/Xiang_Yu Xiang Yu\u003e and \u003chttps://de.wikipedia.org/wiki/Han_Gaozu Liu Bang\u003e, two prominent warlords and opponents who fought thousands of battles against each other for supremacy over China in the late Qin dynasty (206–202 BC). Those interested in the story of the Chu–Han Contention and its relation to Xiangqi are referred to \u003chttps://en.wikipedia.org/wiki/Chu%E2%80%93Han_Contention here\u003e.\r\n\r\nFresh to Xiangqi, Cody becomes interested in Xiangqi by raising a question: _Who is the stronger player of Xiangqi between Xiang Yu and Liu Bang_? To answer this question, Cody designs a match for Xiang Yu and Liu Bang, in which Cody serves as the referee. The smart Cody referee also sets an intelligent rule to determine the winner: \r\n\r\n_In a succession of Xiangqi games, once Xiang Yu wins Na games *consecutively*, whereas Liu Bang has not won Nb games *consecutively*, Cody immediately announces Xiang Yu as the winner. Contrarily, once Liu Bang defeats Xiang Yu Nb times *consecutively*, whereas Xiang Yu has not won Na times *consecutively*, Liu Bang becomes the winner._ \r\n\r\nCody suggests that Na \u003e 1 and Nb \u003e 1, in order to enhance, to some extent, the confidence of the result of the match. Suppose in each individual game, the probability Xiang Yu would win is p, and the probability Liu Bang would win is 1 - p, which implicitly assumes that the probability of a tie is 0 (because they both refuse to draw and will fight to death). Unfortunately, this well-designed match has never taken place. Regretfully, Cody requests us --- active Cody players --- to foresee the outcome of this unseen match using Monte Carlo simulations. Our task is to write a function\r\n\r\n                                sol = Xiangqi(p, Na, Nb)\r\n\r\nwith input: 0 \u003c= p \u003c= 1, Na \u003e 1, Nb \u003e 1, and output: sol --- the probability that Xiang Yu wins. Your solution will be tested against its true value Q (which is computed but hided in the P-file EvaluateSolution.p) according to a hybrid absolute and relative error tolerance criterion:\r\n\r\n                      abs(sol - Q) \u003c= max(AbsTol, RelTol*abs(sol))\r\n\r\nwhere AbsTol and RelTol are absolute and relative error tolerances, respectively, which will be specified in the test suite. You are encouraged to optimize the performance (rather than the usual Cody size) of your code as much as possible, as the score of your solution will be measured based on the *speed* of your code. \r\n\r\nHave fun!\r\n","description_html":"\u003cp\u003eThis is the first part of the Xiangqi series. The second part in this series is: \u003ca href = \"http://www.mathworks.com/matlabcentral/cody/problems/42685-cody-meets-xiangqi-foresee-the-unseen-part-2\"\u003eCody meets Xiangqi: foresee the unseen (Part 2)\u003c/a\u003e\u003c/p\u003e\u003cp\u003e\u003ca href = \"https://en.wikipedia.org/wiki/Xiangqi\"\u003eXiangqi\u003c/a\u003e, also known as \u003cb\u003eChinese Chess\u003c/b\u003e (and 象棋 in Chinese characters), is one of the most popular board games in China. The modern Xiangqi board contains a middle section which divides two players' sides and is marked the \"Chu River–Han border\", in reference to the Chu–Han Contention between \u003ca href = \"https://en.wikipedia.org/wiki/Xiang_Yu\"\u003eXiang Yu\u003c/a\u003e and \u003ca href = \"https://de.wikipedia.org/wiki/Han_Gaozu\"\u003eLiu Bang\u003c/a\u003e, two prominent warlords and opponents who fought thousands of battles against each other for supremacy over China in the late Qin dynasty (206–202 BC). Those interested in the story of the Chu–Han Contention and its relation to Xiangqi are referred to \u003ca href = \"https://en.wikipedia.org/wiki/Chu%E2%80%93Han_Contention\"\u003ehere\u003c/a\u003e.\u003c/p\u003e\u003cp\u003eFresh to Xiangqi, Cody becomes interested in Xiangqi by raising a question: \u003ci\u003eWho is the stronger player of Xiangqi between Xiang Yu and Liu Bang\u003c/i\u003e? To answer this question, Cody designs a match for Xiang Yu and Liu Bang, in which Cody serves as the referee. The smart Cody referee also sets an intelligent rule to determine the winner:\u003c/p\u003e\u003cp\u003e\u003ci\u003eIn a succession of Xiangqi games, once Xiang Yu wins Na games \u003cb\u003econsecutively\u003c/b\u003e, whereas Liu Bang has not won Nb games \u003cb\u003econsecutively\u003c/b\u003e, Cody immediately announces Xiang Yu as the winner. Contrarily, once Liu Bang defeats Xiang Yu Nb times \u003cb\u003econsecutively\u003c/b\u003e, whereas Xiang Yu has not won Na times \u003cb\u003econsecutively\u003c/b\u003e, Liu Bang becomes the winner.\u003c/i\u003e\u003c/p\u003e\u003cp\u003eCody suggests that Na \u0026gt; 1 and Nb \u0026gt; 1, in order to enhance, to some extent, the confidence of the result of the match. Suppose in each individual game, the probability Xiang Yu would win is p, and the probability Liu Bang would win is 1 - p, which implicitly assumes that the probability of a tie is 0 (because they both refuse to draw and will fight to death). Unfortunately, this well-designed match has never taken place. Regretfully, Cody requests us --- active Cody players --- to foresee the outcome of this unseen match using Monte Carlo simulations. Our task is to write a function\u003c/p\u003e\u003cpre\u003e                                sol = Xiangqi(p, Na, Nb)\u003c/pre\u003e\u003cp\u003ewith input: 0 \u0026lt;= p \u0026lt;= 1, Na \u0026gt; 1, Nb \u0026gt; 1, and output: sol --- the probability that Xiang Yu wins. Your solution will be tested against its true value Q (which is computed but hided in the P-file EvaluateSolution.p) according to a hybrid absolute and relative error tolerance criterion:\u003c/p\u003e\u003cpre\u003e                      abs(sol - Q) \u0026lt;= max(AbsTol, RelTol*abs(sol))\u003c/pre\u003e\u003cp\u003ewhere AbsTol and RelTol are absolute and relative error tolerances, respectively, which will be specified in the test suite. You are encouraged to optimize the performance (rather than the usual Cody size) of your code as much as possible, as the score of your solution will be measured based on the \u003cb\u003espeed\u003c/b\u003e of your code.\u003c/p\u003e\u003cp\u003eHave fun!\u003c/p\u003e","function_template":"function sol = Xiangqi(p, Na, Nb)\r\n  sol = p;\r\nend","test_suite":"%%\r\n% By courtesy of Alfonso Nieto-Castanon\r\nurlwrite('https://sites.google.com/a/alfnie.com/alfnie/software/SetSolutionScore.p?attredirects=0\u0026amp;d=1','SetSolutionScore.p');\r\nrehash path;\r\n\r\n%%\r\nfh = fopen('EvaluateSolution.p','wb');\r\nfwrite(fh, hex2dec(reshape('7630312E30307630302E3030000E601C0AF25FB100000056000000A4000000D6820EB5B30514117A9E6E5DB36898AFFFCC5086DFAF59C2910AEB07B88523DABE546868AC2BDAC3795467A7BCD91A89E2F578F2EDE92D63472A3B8FCA3F216CB3B66B010B5B924A5F514E19B90225B0978A54DA881119917D211CB055361918CAA0670F6D0E8ED17B319492619F4361BFB4C3C31D68E11F4BA084C6456783C358296B3E63E16C78EF2B0279074BCB707265EB4C044BFF7F25BA0A9678B75D36B9ACEE6853',2,[]).')); rehash path; fclose(fh); \r\n\r\n%%\r\np = 0; Na = 2; Nb = 3;\r\nAbsTol = 1e-6; RelTol = 1e-5;\r\nsol = Xiangqi(p, Na, Nb);\r\nassert(EvaluateSolution(p,Na,Nb,sol,AbsTol,RelTol));\r\n\r\n%%\r\np = 1; Na = 3; Nb = 2;\r\nAbsTol = 1e-6; RelTol = 1e-5;\r\nsol = Xiangqi(p, Na, Nb);\r\nassert(EvaluateSolution(p,Na,Nb,sol,AbsTol,RelTol));\r\n\r\n%%\r\np = 0.4; Na = 2; Nb = 3;\r\nAbsTol = 5e-4; RelTol = 5e-4;\r\nsol = Xiangqi(p, Na, Nb);\r\nassert(EvaluateSolution(p,Na,Nb,sol,AbsTol,RelTol));\r\n\r\n%%\r\np = 0.7; Na = 4; Nb = 2;\r\nAbsTol = 5e-4; RelTol = 5e-4;\r\nsol = Xiangqi(p, Na, Nb);\r\nassert(EvaluateSolution(p,Na,Nb,sol,AbsTol,RelTol));\r\n\r\n%%\r\np = 0.15; Na = 4; Nb = 2;\r\nAbsTol = 5e-5; RelTol = 1e-6;\r\nt = builtin('tic');\r\nsol = Xiangqi(p, Na, Nb);\r\nscore = builtin('toc',t);\r\nassert(EvaluateSolution(p,Na,Nb,sol,AbsTol,RelTol));\r\nSetSolutionScore(round(500*score));","published":true,"deleted":false,"likes_count":3,"comments_count":1,"created_by":12569,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":9,"test_suite_updated_at":"2015-10-30T08:18:09.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2015-10-30T05:02:43.000Z","updated_at":"2025-11-30T16:38:45.000Z","published_at":"2015-10-30T05:45:36.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis is the first part of the Xiangqi series. The second part in this series is:\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://www.mathworks.com/matlabcentral/cody/problems/42685-cody-meets-xiangqi-foresee-the-unseen-part-2\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eCody meets Xiangqi: foresee the unseen (Part 2)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:hyperlink w:docLocation=\\\"https://en.wikipedia.org/wiki/Xiangqi\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eXiangqi\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e, also known as\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eChinese Chess\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e (and 象棋 in Chinese characters), is one of the most popular board games in China. The modern Xiangqi board contains a middle section which divides two players' sides and is marked the \\\"Chu River–Han border\\\", in reference to the Chu–Han Contention between\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://en.wikipedia.org/wiki/Xiang_Yu\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eXiang Yu\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e and\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://de.wikipedia.org/wiki/Han_Gaozu\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eLiu Bang\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e, two prominent warlords and opponents who fought thousands of battles against each other for supremacy over China in the late Qin dynasty (206–202 BC). Those interested in the story of the Chu–Han Contention and its relation to Xiangqi are referred to\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://en.wikipedia.org/wiki/Chu%E2%80%93Han_Contention\\\"\u003e\u003cw:r\u003e\u003cw:t\u003ehere\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFresh to Xiangqi, Cody becomes interested in Xiangqi by raising a question:\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eWho is the stronger player of Xiangqi between Xiang Yu and Liu Bang\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e? To answer this question, Cody designs a match for Xiang Yu and Liu Bang, in which Cody serves as the referee. The smart Cody referee also sets an intelligent rule to determine the winner:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eIn a succession of Xiangqi games, once Xiang Yu wins Na games\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003econsecutively\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e, whereas Liu Bang has not won Nb games\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003econsecutively\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e, Cody immediately announces Xiang Yu as the winner. Contrarily, once Liu Bang defeats Xiang Yu Nb times\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003econsecutively\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e, whereas Xiang Yu has not won Na times\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003econsecutively\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e, Liu Bang becomes the winner.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eCody suggests that Na \u0026gt; 1 and Nb \u0026gt; 1, in order to enhance, to some extent, the confidence of the result of the match. Suppose in each individual game, the probability Xiang Yu would win is p, and the probability Liu Bang would win is 1 - p, which implicitly assumes that the probability of a tie is 0 (because they both refuse to draw and will fight to death). Unfortunately, this well-designed match has never taken place. Regretfully, Cody requests us --- active Cody players --- to foresee the outcome of this unseen match using Monte Carlo simulations. Our task is to write a function\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[                                sol = Xiangqi(p, Na, Nb)]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ewith input: 0 \u0026lt;= p \u0026lt;= 1, Na \u0026gt; 1, Nb \u0026gt; 1, and output: sol --- the probability that Xiang Yu wins. Your solution will be tested against its true value Q (which is computed but hided in the P-file EvaluateSolution.p) according to a hybrid absolute and relative error tolerance criterion:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[                      abs(sol - Q) \u003c= max(AbsTol, RelTol*abs(sol))]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ewhere AbsTol and RelTol are absolute and relative error tolerances, respectively, which will be specified in the test suite. You are encouraged to optimize the performance (rather than the usual Cody size) of your code as much as possible, as the score of your solution will be measured based on the\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003espeed\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e of your code.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eHave fun!\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":54780,"title":"Trap a knight","description":"Consider a knight on an infinite chessboard labeled with numbers spiraling outward. A knight starting on the square labeled 1 can reach 8 squares, marked in green below (i.e., squares 10, 12, 14, 16, 18, 20, 22, and 24). Take the smallest of these numbers, or 10. Repeating the step while avoiding squares already visited puts the knight at squares 3, 6, 9, 4, 7, 2, 5, etc. This tour continues until step 2016, when the knight reaches square 2084. At that point the knight is trapped: it has visited all eight possible squares. \r\nWrite a function that takes the starting square and returns the sequence of squares visited by the knight on the tour. \r\n","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.4333px; min-height: 0px; white-space: normal; color: rgb(0, 0, 0); font-family: Menlo, Monaco, Consolas, monospace; font-style: normal; font-size: 14px; font-weight: 400; text-decoration: rgb(0, 0, 0); white-space: normal; \"\u003e\u003cdiv style=\"block-size: 415.7px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 207.85px; transform-origin: 407px 207.85px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 105px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 52.5px; text-align: left; transform-origin: 384px 52.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 35.7917px 8px; transform-origin: 35.7917px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eConsider a \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://en.wikipedia.org/wiki/Knight_(chess)#Movement\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eknight\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 327.942px 8px; transform-origin: 327.942px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e on an infinite chessboard labeled with numbers spiraling outward. A knight starting on the square labeled 1 can reach 8 squares, marked in green below (i.e., squares 10, 12, 14, 16, 18, 20, 22, and 24). Take the smallest of these numbers, or 10. Repeating the step while avoiding squares already visited puts the knight at squares 3, 6, 9, 4, 7, 2, 5, etc. This tour continues until step 2016, when the knight reaches square 2084. At that point the knight is trapped: it has visited all eight possible squares. \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 358.867px 8px; transform-origin: 358.867px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eWrite a function that takes the starting square and returns the sequence of squares visited by the knight on the tour. \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 271.7px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 135.85px; text-align: left; transform-origin: 384px 135.85px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cimg class=\"imageNode\" style=\"vertical-align: baseline;width: 275px;height: 266px\" src=\"data:image/png;base64,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\" data-image-state=\"image-loaded\" width=\"275\" height=\"266\"\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function y = trappedKnight(n)\r\n  y = randi(n^2,1,2016);\r\nend","test_suite":"%%\r\nn = 1;\r\ny = trappedKnight(n);\r\ny_correct = [1 10 3 6 9 4 7 2 5 8 11 14 29 32 15 12 27 24 45 20 23 44 41 18 35 38 19 16 33 30 53 26 47 22 43 70 21 40 17 34 13 28 25 46 75 42 69 104 37 62 95 58 55 86 51 48 77 114 73 108 151 68 103 64 67 36 39 66 63 96 59 56 87 52 49 78 115 74 71 106 149 102 99 140 61 94 31 54 85 50 79 116 161 76 113 72 107 150 201 146 65 98 139 60 93 90 129 176 125 82 119 164 217 160 111 154 205 264 331 200 101 142 97 138 187 92 89 128 175 84 81 118 163 216 159 110 153 204 105 148 199 144 147 100 141 190 137 186 91 130 57 88 127 174 83 80 117 162 215 112 109 152 203 262 329 198 195 252 143 192 249 188 135 132 179 234 297 230 123 120 165 218 279 214 157 208 267 334 263 330 259 196 253 318 191 248 313 244 133 180 235 298 177 126 173 122 167 220 281 350 277 158 155 206 265 202 261 328 197 254 145 194 251 316 189 136 185 182 131 134 181 184 239 242 305 238 183 304 237 178 233 296 229 124 121 166 219 280 349 276 211 156 207 266 333 408 491 404 257 322 395 476 317 390 247 312 243 240 303 236 299 232 295 172 169 222 283 352 429 278 213 210 269 336 411 332 407 260 327 256 321 394 475 564 389 246 311 384 241 310 245 314 387 468 309 306 377 302 373 452 369 294 171 168 221 282 351 428 347 212 209 268 335 410 493 406 489 326 323 258 255 320 193 250 315 388 469 558 383 380 459 376 301 372 451 368 231 370 449 366 227 224 285 354 431 516 427 346 273 340 415 270 337 412 495 586 409 492 405 488 325 398 479 568 393 474 563 470 385 308 379 382 461 378 307 460 381 466 555 462 465 554 551 464 553 648 463 550 645 458 375 300 371 450 367 228 225 286 355 432 517 610 513 348 275 272 339 414 497 588 687 494 585 490 403 324 397 478 319 392 473 562 659 764 557 654 759 650 653 552 647 548 457 374 453 540 635 448 293 170 223 284 353 430 515 426 345 342 271 274 341 344 419 422 505 418 343 424 509 420 423 508 599 504 417 338 413 496 587 686 583 682 487 400 481 396 477 566 391 472 561 386 467 556 657 560 471 660 559 656 761 652 649 752 549 644 545 454 541 636 537 446 291 288 357 434 519 612 713 514 425 510 421 598 503 416 499 590 689 796 685 582 681 486 483 402 399 480 569 666 565 662 767 658 763 876 655 760 651 754 865 646 547 456 543 638 539 634 447 292 289 358 435 520 613 714 609 512 605 706 507 604 511 608 709 818 603 506 597 502 593 498 589 688 795 584 683 580 401 482 571 668 567 664 769 882 661 766 879 762 875 758 755 866 751 862 643 544 639 742 853 738 535 364 361 226 287 356 433 518 611 712 607 708 817 602 701 704 811 600 699 596 501 592 691 798 913 794 909 684 581 680 485 574 671 570 667 772 663 768 881 1002 765 878 999 874 757 868 753 864 749 546 455 542 637 538 633 534 363 360 437 522 615 716 825 942 711 606 707 816 601 700 807 696 803 594 693 500 591 690 797 912 793 908 789 578 575 672 777 572 669 774 665 770 883 1004 1133 880 1001 1130 877 998 873 756 867 986 863 748 641 744 855 740 851 632 445 290 359 436 521 614 715 824 941 710 819 936 705 702 809 698 595 694 801 916 1039 1170 911 792 907 788 577 484 573 670 775 888 771 884 1005 1134 1271 1000 1129 996 871 990 1117 1252 985 750 861 642 745 856 741 852 737 536 365 444 441 526 619 438 523 616 717 826 943 822 939 1064 935 814 929 810 703 928 813 934 1059 930 933 812 815 932 1055 1058 1189 1054 927 808 697 804 919 692 799 914 1037 910 791 906 679 576 579 678 675 780 893 776 889 1010 773 886 1007 1136 1003 1132 1269 1128 995 870 989 1116 1251 984 1111 860 979 746 857 640 743 854 739 850 631 532 529 362 439 524 617 718 827 944 823 940 1065 820 937 1062 1195 1336 1057 1188 931 1060 1193 1056 1187 1052 925 806 695 802 917 1040 1171 1036 1167 1032 905 786 783 674 779 892 1013 1142 887 1008 1137 1274 1419 1270 1415 1266 997 872 869 988 1115 1250 983 1110 859 978 1105 974 1101 970 735 628 443 440 525 618 719 828 945 1070 1203 1066 821 938 1063 1196 1337 1192 1331 1334 1481 1190 1329 1186 1051 924 805 920 1043 800 915 1038 1169 1034 1165 1030 787 676 781 894 673 778 891 1012 1141 1278 1009 1138 885 1006 1135 1272 1131 1268 1127 994 991 1118 987 1114 1249 982 747 858 977 1104 973 1100 849 630 531 528 621 722 831 948 1073 1206 1069 1202 1343 1198 1061 1194 1335 1332 1479 1328 1053 926 1049 922 1045 918 1041 1172 1311 1168 1033 790 1031 904 677 782 895 1016 1145 890 1011 1140 1277 1422 1273 1418 1571 1414 1265 1124 1121 1256 1399 1550 1253 1396 1113 1248 981 1108 1243 976 1103 972 1099 848 629 442 527 620 721 830 947 1072 1205 1068 1201 1342 1197 1338 1487 1644 1333 1480 1191 1330 1477 1326 1183 1048 921 1044 1175 1314 1461 1310 1035 1166 1305 1162 903 784 897 1018 1147 1014 1143 1280 1139 1276 1421 1574 1417 1570 1267 1126 993 1120 1255 1398 1549 1394 1247 980 1107 1242 975 1102 971 736 533 734 627 624 725 834 951 720 829 946 1071 1204 1067 1200 1341 1490 1647 1486 1643 1482 1485 1642 1639 1484 1641 1804 1483 1638 1801 1478 1327 1184 1323 1050 923 1046 1177 1042 1173 1312 1459 1308 1455 1164 1029 902 899 1020 1149 896 1017 1146 1283 1428 1279 1424 1275 1420 1573 1416 1569 1412 1125 992 1119 1254 1397 1548 1393 1112 1395 1546 1391 1244 1109 1390 1541 1386 1239 1382 1235 968 733 530 623 724 833 950 1075 1208 1349 1498 1345 1494 1199 1340 1489 1646 1811 1984 1807 1640 1803 1636 1799 1476 1185 1324 1181 1320 1047 1178 1317 1174 1313 1460 1309 1456 1611 1304 1161 1026 785 898 1019 1148 1015 1144 1281 1426 1579 1740 1423 1576 1737 1572 1733 1568 1411 1262 1259 1402 1553 1712 1879 1708 1545 1246 1389 1106 1241 1384 1237 1098 847 732 625 726 835 622 723 832 949 1074 1207 1348 1497 1344 1493 1650 1339 1488 1645 1810 1983 1806 1809 1982 1979 1808 1805 1976 1637 1800 1633 1474 1629 1322 1179 1318 1465 1176 1315 1462 1617 1458 1307 1454 1163 1028 901 1022 1151 1288 1433 1284 1429 1582 1425 1578 1739 1908 1575 1736 1905 1732 1413 1264 1123 1258 1401 1552 1711 1878 1547 1392 1245 1388 1539 1240 1383 1236 969 846 731 728 837 954 1079 1212 1353 1076 1209 1350 1499 1346 1495 1652 1491 1648 1813 1986 2167 2356 1981 2160 1977 1802 1635 1798 1475 1630 1325 1182 1321 1468 1623 1316 1463 1618 1781 1614 1777 1610 1303 1160 1025 900 1021 1150 1287 1432 1585 1282 1427 1580 1741 1910 1577 1738 1907 1734 1903 1730 1565 1408 1263 1122 1257 1400 1551 1710 1877 1706 1543 1702 1387 1538 1697 1534 1379 1096 845 626 727 836 953 1078 1211 1352 1501 1658 1347 1496 1653 1492 1649 1814 1987 2168 2357 2164 2161 1978 2157 1974 2153 1970 1631 1472 1627 1790 1467 1622 1785 1464 1619 1782 1615 1778 1457 1306 1453 1302 1027 1024 1153 1290 1435 1286 1431 1584 1745 1914 1581 1742 1911 2088 2273 1906 2083 1902 1567 1410 1261 1404 1555 1714 1881 2056 1709 1876 1705 1542 1701 1868 1537 1238 1381 1234 967 844 729 838 955 1080 1213 952 1077 1210 1351 1500 1657 1822 1995 1654 1819 1992 1651 1816 1989 1812 1985 2166 2355 2162 2165 1980 2159 2346 1975 2154 1971 1632 1473 1628 1469 1180 1319 1466 1621 1784 1955 1616 1779 1612 1775 1452 1301 1158 1155 1292 1023 1152 1289 1434 1285 1430 1583 1744 1913 2090 1909 2086 1735 1904 1731 1566 1409 1260 1403 1554 1713 1880 2055 2238 1875 1544 1703 1540 1385 1536 1695 1380 1097 966 843 840 957 1082 1215 1356 1505 1662 1827 1502 1659 1824 1655 1820 1993 2174 1815 1988 2169 2358 2555 2354 2351 2546 2347 2156 1973 1634 1797 1968 1793 1470 1625 1788 1959 1620 1783 1954 2133 1780 1613 1776 1609 1450 1159 1156 1293 1438 1591 1752 1587 1748 1917 2094 1743 1912 2089 2274 2085 2270 2081 1900 1727 1562 1559 1718 1405 1556 1715 1882 2057 2240 2053 1874 1707 2052 1873 2048 1869 1698 1535 1694 1531 1232 965 730 839 956 1081 1214 1355 1504 1661 1826 1999 1656 1821 1994 1817 1990 2171 2360 2557 2762 2553 2352 2547 2348 2543 2158 2345 2540 2155 1972 2151 1796 1967 1792 1471 1626 1789 1960 2139 1786 1957 2136 1953 2132 1949 1774 1451 1300 1157 1294 1439 1154 1291 1436 1589 1750 1919 1586 1747 1916 2093 2278 2471 2672 2275 2468 2087 2272 2465 2082 1901 1728 1563 1406 1557 1716 1883 2058 2241 2054 2237 2050 1871 1700 1867 1696 1533 1378 1095 964 841 958 1083 1216 1357 1506 1663 1354 1503 1660 1825 1998 2179 2368 2175 1818 1991 2172 2361 2558 2763 2554 2163 2350 2545 2748 2541 2342 2537 2150 1795 1966 1791 1624 1787 1958 2137 2324 2519 2134 1951 2130 1947 1608 1449 1298 1295 1440 1593 1754 1437 1590 1751 1920 2097 1746 1915 2092 2277 2470 2671 2466 2269 2080 1729 1564 1407 1558 1717 1884 2059 2242 2433 2632 2239 2430 2051 1704 2049 1870 1699 1866 2041 1862 1691 1376 1093 842 959 1084 1217 1358 1507 1664 1829 2002 2183 2372 1997 2178 2367 2564 2173 2362 2559 2170 2359 2556 2761 2552 2549 2752 2349 2544 2747 2344 2539 2152 1969 1794 1965 2144 1961 2140 2327 1956 2135 1952 2131 1948 1773 1606 1299 1296 1441 1594 1755 1924 2101 2286 1921 1588 1749 1918 2095 2280 2091 2276 2469 2670 2271 2464 2267 2078 1897 1724 1721 1888 2063 2246 1885 2060 2243 2434 2633 2840 2429 2234 2047 1872 2233 2046 2229 2042 1863 1532 1233 1094 963 960 1085 1218 1359 1508 1665 1830 2003 2184 2373 2000 1823 1996 2177 2366 2563 2768 2363 2560 2765 2978 3199 2760 2353 2548 2751 2962 3181 2746 2343 2538 2339 2148 2335 1964 2143 2330 2525 2138 2325 2520 2321 1950 2129 1946 1607 1448 1297 1442 1595 1756 1925 1592 1753 1922 2099 2284 2477 2096 2281 2474 2675 2884 3101 2880 2467 2084];\r\nlen_correct = 2016;\r\nyend_correct = 2084;\r\nassert(isequal(y,y_correct) \u0026\u0026 isequal(length(y),len_correct) \u0026\u0026 isequal(y(end),yend_correct))\r\n\r\n%%\r\nY = NaN(1,100); len = NaN(1,100);\r\nfor n = 1:100\r\n    y = trappedKnight(n);\r\n    Y(n) = y(end);\r\n    len(n) = length(y);\r\nend\r\nY_correct = [2084 711 3915 556 3915 556 3915 3380 2086 1339 1464 1572 4772 582 3959 682 2309 385 330 1142 706 2750 4256 4322 1413 1488 1685 6335 5214 906 2616 1038 582 1608 2675 6266 1120 3955 936 2773 1861 2213 2223 262 1147 4428 1126 3319 1040 1693 3614 1647 4122 2121 3496 2555 2508 5174 2961 1338 1607 4252 2826 1731 3915 2130 938 762 835 3437 708 1653 1133 4168 3918 150 1204 3087 1438 445 3104 969 906 822 3404 2922 125 329 3214 6185 3912 2181 1093 1379 4586 5335 790 3038 5262 3141];\r\nlen_correct = [2016 880 2741 857 2741 857 2741 3611 2590 1540 1846 2061 4892 1047 4139 753 3559 590 426 1205 1140 2759 3830 4687 1839 2101 2861 5892 5500 1295 2674 1213 890 1839 2749 6531 1118 3632 1496 2888 1995 2574 2713 495 1479 5509 1414 3926 1078 2344 4244 1932 4054 3382 4084 3410 4144 4079 2223 1151 1799 4863 3162 2292 2741 2271 840 1087 1397 2752 990 1664 1775 3915 5704 263 1658 2840 1510 486 3620 1146 1288 969 3688 3745 311 586 3146 5480 5116 2472 1473 1910 5128 5938 1128 4367 4412 5036];\r\nassert(isequal(len,len_correct) \u0026\u0026 isequal(Y,Y_correct))\r\n\r\n%%\r\nY = NaN(1,800); len = NaN(1,800);\r\nfor n = 200:1000\r\n    y = trappedKnight(n);\r\n    Y(n-199) = y(end);\r\n    len(n-199) = length(y);\r\nend\r\n[lensort,isortlen] = sort(len,'descend');\r\n[Ysort,isortY] = sort(Y,'descend');\r\nisortlen_correct = [396 662 246 49 125 462 267 336 683 797];\r\nlenmax10_correct = [12072 11058 10654 10553 10337 10031 9552 9469 9292 9259];\r\nisortY_correct = [662 683 267 246 396 497 49 443 541 462];\r\nYmax10_correct = [14176 12571 12303 11858 11802 11456 11168 10624 9594 8857];\r\nassert(isequal(lensort(1:10),lenmax10_correct) \u0026\u0026 isequal(Ysort(1:10),Ymax10_correct) \u0026\u0026 isequal(isortlen(1:10),isortlen_correct) \u0026\u0026 isequal(isortY(1:10),isortY_correct))\r\n\r\n%%\r\nn = 9999;\r\ny = trappedKnight(n);\r\nsum_correct = 77968774;\r\nassert(isequal(sum(y),sum_correct))\r\n\r\n%%\r\nn = 11509;\r\ny = trappedKnight(n);\r\nlen_correct = 21346;\r\nassert(isequal(length(y),len_correct))\r\n\r\n%%\r\nfiletext = fileread('trappedKnight.m');\r\nillegal = contains(filetext, 'assignin') || contains(filetext, 'assert') || contains(filetext,'switch') || contains(filetext,'regexp'); \r\nassert(~illegal)\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":2,"created_by":46909,"edited_by":46909,"edited_at":"2024-01-04T14:21:04.000Z","deleted_by":null,"deleted_at":null,"solvers_count":7,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2022-07-07T04:01:20.000Z","updated_at":"2026-02-03T16:00:59.000Z","published_at":"2022-07-07T04:03:44.000Z","restored_at":null,"restored_by":null,"spam":null,"simulink":false,"admin_reviewed":false,"description_opc":"{\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eConsider a \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://en.wikipedia.org/wiki/Knight_(chess)#Movement\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eknight\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e on an infinite chessboard labeled with numbers spiraling outward. A knight starting on the square labeled 1 can reach 8 squares, marked in green below (i.e., squares 10, 12, 14, 16, 18, 20, 22, and 24). Take the smallest of these numbers, or 10. Repeating the step while avoiding squares already visited puts the knight at squares 3, 6, 9, 4, 7, 2, 5, etc. This tour continues until step 2016, when the knight reaches square 2084. At that point the knight is trapped: it has visited all eight possible squares. \u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eWrite a function that takes the starting square and returns the sequence of squares visited by the knight on the tour. \u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"266\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"275\\\"/\u003e\u003cw:attr w:name=\\\"verticalAlign\\\" w:val=\\\"baseline\\\"/\u003e\u003cw:attr w:name=\\\"altText\\\" w:val=\\\"\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId1\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\",\"relationship\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"target\":\"/media/image1.png\",\"relationshipId\":\"rId1\"}]},{\"partUri\":\"/media/image1.png\",\"contentType\":\"image/png\",\"content\":\"data:image/png;base64,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\",\"relationship\":null}],\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"target\":\"/matlab/document.xml\",\"relationshipId\":\"rId1\"}]}"},{"id":45389,"title":"Knight's Watch","description":"  \"Night gathers, and now my watch begins\"\r\n\r\nA knight is placed on an n-by-n sized chessboard at the position x. Find the probability that after k steps, the knight will remain within the chessboard.\r\n\r\nAny knight's move that places him outside the board should be considered invalid.\r\n\r\n For simplicity, the knight's position on the chessboard is defined with the numeric\r\n notation instead of algebraic notation. so 'Ka1' is represented as (1,1).\r\n\r\nBrief explanation:\r\n\r\n  Say the knight is placed in pos-(1,1). A knight has 8 possible moves. So in the next move, \r\nthe Knight can go to 8 different positions in the chessboard. But among them, only 2\r\n positions are valid i.e. the knight remains within the chessboard and they are -\r\n(3,2) \u0026 (2,3). So the prob. is 2/8 after 1 move. What will be the probability after k moves?\r\n\r\n","description_html":"\u003cpre class=\"language-matlab\"\u003e\"Night gathers, and now my watch begins\"\r\n\u003c/pre\u003e\u003cp\u003eA knight is placed on an n-by-n sized chessboard at the position x. Find the probability that after k steps, the knight will remain within the chessboard.\u003c/p\u003e\u003cp\u003eAny knight's move that places him outside the board should be considered invalid.\u003c/p\u003e\u003cpre\u003e For simplicity, the knight's position on the chessboard is defined with the numeric\r\n notation instead of algebraic notation. so 'Ka1' is represented as (1,1).\u003c/pre\u003e\u003cp\u003eBrief explanation:\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003eSay the knight is placed in pos-(1,1). A knight has 8 possible moves. So in the next move, \r\nthe Knight can go to 8 different positions in the chessboard. But among them, only 2\r\npositions are valid i.e. the knight remains within the chessboard and they are -\r\n(3,2) \u0026 (2,3). So the prob. is 2/8 after 1 move. What will be the probability after k moves?\r\n\u003c/pre\u003e","function_template":"function prob = knights_watch(x,n,k)","test_suite":"%%\r\nx =[1,1];\r\nassert(isequal(knights_watch(x,3,2),0.0625))\r\n%%\r\nx =[1,1];\r\nassert(isequal(knights_watch(x,4,4),0.0176))\r\n%%\r\nx =[6,4];\r\nassert(isequal(knights_watch(x,6,9),0.012))\r\n%%\r\nx =[6,4];\r\nassert(isequal(knights_watch(x,8,25),0.0011))\r\n%%\r\nx =[8,8];\r\nassert(isequal(knights_watch(x,8,15),0.0042))\r\n%%\r\nx =[8,8];\r\nassert(isequal(knights_watch(x,16,15),0.4666))\r\n%%\r\nx =[3,1];\r\nassert(isequal(knights_watch(x,16,50),0.0037))","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":363598,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":13,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2020-03-25T18:55:22.000Z","updated_at":"2026-01-23T12:14:39.000Z","published_at":"2020-03-25T18:55:22.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[\\\"Night gathers, and now my watch begins\\\"]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eA knight is placed on an n-by-n sized chessboard at the position x. Find the probability that after k steps, the knight will remain within the chessboard.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eAny knight's move that places him outside the board should be considered invalid.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[ For simplicity, the knight's position on the chessboard is defined with the numeric\\n notation instead of algebraic notation. so 'Ka1' is represented as (1,1).]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eBrief explanation:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[Say the knight is placed in pos-(1,1). A knight has 8 possible moves. So in the next move, \\nthe Knight can go to 8 different positions in the chessboard. But among them, only 2\\npositions are valid i.e. the knight remains within the chessboard and they are -\\n(3,2) \u0026 (2,3). So the prob. is 2/8 after 1 move. What will be the probability after k moves?]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":45239,"title":"Checkmate-02","description":"This is an extension of the problem \u003chttps://www.mathworks.com/matlabcentral/cody/problems/45238-checkmate\u003e\r\n\r\nIf the king is in check, examine the next move of the king. List all those possible moves by which king can avoid the check by the next move.\r\n\r\nOtherwise 'checkmate'.\r\n\r\n* r = king's location\r\n* p = position of opponent's pieces\r\n\r\n* if the king is currently not in check, then he doesn't need to move. so return empty. \r\n\r\n* for simplicity, assume that the king cannot take out opponent's pieces.\r\n","description_html":"\u003cp\u003eThis is an extension of the problem \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/45238-checkmate\"\u003ehttps://www.mathworks.com/matlabcentral/cody/problems/45238-checkmate\u003c/a\u003e\u003c/p\u003e\u003cp\u003eIf the king is in check, examine the next move of the king. List all those possible moves by which king can avoid the check by the next move.\u003c/p\u003e\u003cp\u003eOtherwise 'checkmate'.\u003c/p\u003e\u003cul\u003e\u003cli\u003er = king's location\u003c/li\u003e\u003cli\u003ep = position of opponent's pieces\u003c/li\u003e\u003c/ul\u003e\u003cul\u003e\u003cli\u003eif the king is currently not in check, then he doesn't need to move. so return empty.\u003c/li\u003e\u003c/ul\u003e\u003cul\u003e\u003cli\u003efor simplicity, assume that the king cannot take out opponent's pieces.\u003c/li\u003e\u003c/ul\u003e","function_template":"function pos=checkmate_2(r,p)\r\n  y = x;\r\nend","test_suite":"%%\r\nr = 'Kd4';\r\np={'Qe3','Rh3','Nc1','c6'};\r\npos = {'Kd5','Kc4'};\r\nassert(isequal(checkmate_2(r,p),pos))\r\n\r\n%%\r\nr = 'Kg6';\r\np={'Qe3','Rh3','Nc1','c6','Ke7'};\r\npos = [];\r\nassert(isequal(checkmate_2(r,p),pos))\r\n\r\n%%\r\nr = 'Kc8';\r\np={'Qe3','Rh3','Nc1','c6','Ke7','h5','Ba6'};\r\npos = {'Kc7','Kb8'};\r\nassert(isequal(checkmate_2(r,p),pos))\r\n\r\n%%\r\nr = 'Kh1';\r\np={'Qa3','Rb3','Nf2','c6','Kf7','h5','Ba6'};\r\npos = {'Kh2','Kg2','Kg1'};\r\nassert(isequal(checkmate_2(r,p),pos))\r\n\r\n%%\r\nr = 'Kg6';\r\np={'Qe3','Rh3','Nc1','c6'};\r\npos = [];\r\nassert(isequal(checkmate_2(r,p),pos))\r\n\r\n%%\r\nr = 'Kd4';\r\np={'Rh2','Na1','d1'};\r\npos = [];\r\nassert(isequal(checkmate_2(r,p),pos))\r\n\r\n%%\r\nr = 'Kb2';\r\np={'Na2','Na1','Na3'};\r\npos = [];\r\nassert(isequal(checkmate_2(r,p),pos))\r\n\r\n%%\r\nr = 'Kb2';\r\np={'Na2','Na1','Na3','c1','c3'};\r\npos = [];\r\nassert(isequal(checkmate_2(r,p),pos))\r\n\r\n%%\r\nr = 'Kb2';\r\np={'Na2','Na1','Na3','Bg7' };\r\npos = 'checkmate';\r\nassert(isequal(checkmate_2(r,p),pos))\r\n\r\n%%\r\nr = 'Kg6';\r\np={'Nf5','Rg1','g4','Qe2','Bf1','Kc3' };\r\npos =  {'Kh7','Kf7','Kf6'};\r\nassert(isequal(checkmate_2(r,p),pos))\r\n\r\n%%\r\nr = 'Ka1';\r\np={'Qa3','Rb3','Nf2','c6','Kf7','h5','Ba6'};\r\npos =  'checkmate';\r\nassert(isequal(checkmate_2(r,p),pos))\r\n\r\n%%\r\nfiletext = fileread('checkmate_2.m');\r\nassert(isempty(strfind(filetext, 'regexp')),'regexp() forbidden')\r\nassert(isempty(strfind(filetext, 'regexprep')),'regexprep() forbidden')\r\nassert(isempty(strfind(filetext, 'strfind')),'strfind() forbidden')\r\nassert(isempty(strfind(filetext, 'strcmp')),'strcmp() forbidden')\r\n","published":true,"deleted":false,"likes_count":0,"comments_count":14,"created_by":363598,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":10,"test_suite_updated_at":"2019-12-29T04:16:28.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2019-12-21T01:40:07.000Z","updated_at":"2026-01-23T13:22:55.000Z","published_at":"2019-12-21T21:38:46.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis is an extension of the problem\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/45238-checkmate\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026lt;https://www.mathworks.com/matlabcentral/cody/problems/45238-checkmate\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026gt;\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eIf the king is in check, examine the next move of the king. List all those possible moves by which king can avoid the check by the next move.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eOtherwise 'checkmate'.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003er = king's location\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ep = position of opponent's pieces\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eif the king is currently not in check, then he doesn't need to move. so return empty.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003efor simplicity, assume that the king cannot take out opponent's pieces.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":96,"title":"Knight's Tour Checker","description":"Given a matrix a, determine whether or not a legal \u003chttp://en.wikipedia.org/wiki/Knight's_tour knight's tour\u003e is present. The knight's tour always follows the pattern 1, 2, 3, ... but it need not fill the entire matrix. Any unused squares contain zeros. Your function should return true if the counting sequence from 1 to n represents a knight's tour, and false if not.\r\n\r\nExample\r\n\r\nThe matrix a as given below is a legal knight's tour. The middle square is unreachable, but since it contains a zero, it satisfies the condition. The function should return TRUE.\r\n\r\n  7     2     5\r\n  4     0     8\r\n  1     6     3\r\n\r\nHere is another legal (if short) knight's tour. The test suite will always contain at least one move (i.e. the counting sequence [1 2]). Note the matrix is not required to be square.\r\n\r\n  1     0     0\r\n  0     0     2\r\n \r\nHere is an illegal knight's tour. Everything is fine up until the jump from 14 to 15, which is illegal because it jumps from row 4 to row 1.\r\n\r\n 15     5    12     3\r\n  0     2     9     6\r\n  8    11     4    13\r\n  1    14     7    10","description_html":"\u003cp\u003eGiven a matrix a, determine whether or not a legal \u003ca href=\"http://en.wikipedia.org/wiki/Knight's_tour\"\u003eknight's tour\u003c/a\u003e is present. The knight's tour always follows the pattern 1, 2, 3, ... but it need not fill the entire matrix. Any unused squares contain zeros. Your function should return true if the counting sequence from 1 to n represents a knight's tour, and false if not.\u003c/p\u003e\u003cp\u003eExample\u003c/p\u003e\u003cp\u003eThe matrix a as given below is a legal knight's tour. The middle square is unreachable, but since it contains a zero, it satisfies the condition. The function should return TRUE.\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003e7     2     5\r\n4     0     8\r\n1     6     3\r\n\u003c/pre\u003e\u003cp\u003eHere is another legal (if short) knight's tour. The test suite will always contain at least one move (i.e. the counting sequence [1 2]). Note the matrix is not required to be square.\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003e1     0     0\r\n0     0     2\r\n\u003c/pre\u003e\u003cp\u003eHere is an illegal knight's tour. Everything is fine up until the jump from 14 to 15, which is illegal because it jumps from row 4 to row 1.\u003c/p\u003e\u003cpre\u003e 15     5    12     3\r\n  0     2     9     6\r\n  8    11     4    13\r\n  1    14     7    10\u003c/pre\u003e","function_template":"function tf = knights_tour(a)\r\n  tf = true;\r\nend","test_suite":"%%\r\n\r\na = ...\r\n[ 7     2     5\r\n  4     0     8\r\n  1     6     3];\r\ntf_correct = true;\r\nassert(isequal(knights_tour(a),tf_correct))\r\n\r\n%%\r\n\r\na = ...\r\n[ 1     0   0\r\n  0     0   2];\r\ntf_correct = true;\r\nassert(isequal(knights_tour(a),tf_correct))\r\n\r\n%%\r\n\r\na = ...\r\n[ 15     5    12     3\r\n   0     2     9     6\r\n   8    11     4    13\r\n   1    14     7    10];\r\ntf_correct = false;\r\nassert(isequal(knights_tour(a),tf_correct))\r\n\r\n%%\r\n\r\na = ...\r\n[  0     5    12     3\r\n  15     2     9     6\r\n   8    11     4    13\r\n   1    14     7    10];\r\ntf_correct = true;\r\nassert(isequal(knights_tour(a),tf_correct))\r\n\r\n%%\r\n\r\na = [22 29 4 31 16 35;3 32 23 34 5 14;28 21 30 15 36 17;9 2 33 24 13 6;20 27 8 11 18 25;1 10 19 26 7 12];\r\ntf_correct = true;\r\nassert(isequal(knights_tour(a),tf_correct))\r\n\r\n%%\r\n\r\na = [22 29 4 31 16 35;3 32 23 34 5 14;28 21 30 15 0 17;2 9 33 24 13 6;20 27 8 11 18 25;1 10 19 26 7 12];\r\ntf_correct = false;\r\nassert(isequal(knights_tour(a),tf_correct))\r\n\r\n%%\r\n\r\na = [1 0 0;0 0 0;2 0 0];\r\ntf_correct = false;\r\nassert(isequal(knights_tour(a),tf_correct))","published":true,"deleted":false,"likes_count":24,"comments_count":4,"created_by":1,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":1472,"test_suite_updated_at":"2016-01-13T18:56:25.000Z","rescore_all_solutions":false,"group_id":2,"created_at":"2012-01-18T01:00:30.000Z","updated_at":"2026-04-05T02:15:43.000Z","published_at":"2012-01-18T01:00:30.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eGiven a matrix a, determine whether or not a legal\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://en.wikipedia.org/wiki/Knight's_tour\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eknight's tour\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e is present. The knight's tour always follows the pattern 1, 2, 3, ... but it need not fill the entire matrix. Any unused squares contain zeros. Your function should return true if the counting sequence from 1 to n represents a knight's tour, and false if not.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eExample\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe matrix a as given below is a legal knight's tour. The middle square is unreachable, but since it contains a zero, it satisfies the condition. The function should return TRUE.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[7     2     5\\n4     0     8\\n1     6     3]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eHere is another legal (if short) knight's tour. The test suite will always contain at least one move (i.e. the counting sequence [1 2]). Note the matrix is not required to be square.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[1     0     0\\n0     0     2]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eHere is an illegal knight's tour. Everything is fine up until the jump from 14 to 15, which is illegal because it jumps from row 4 to row 1.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[ 15     5    12     3\\n  0     2     9     6\\n  8    11     4    13\\n  1    14     7    10]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":42685,"title":"Cody meets Xiangqi: foresee the unseen (Part 2)","description":"This is the second part of the Xiangqi series. The first part in this series is: \u003chttp://www.mathworks.com/matlabcentral/cody/problems/42674-cody-meets-xiangqi-foresee-the-unseen Cody meets Xiangqi: foresee the unseen (Part 1)\u003e\r\n\r\nBeing increasingly interested in \u003chttps://en.wikipedia.org/wiki/Xiangqi Xiangqi\u003e (a.k.a., *Chinese Chess*), Mr. Cody has designed a new Xiangqi match for \u003chttps://en.wikipedia.org/wiki/Xiang_Yu Xiang Yu\u003e and \u003chttps://de.wikipedia.org/wiki/Han_Gaozu Liu Bang\u003e by taking into account the likelihood of tie games. The new rule is described as follows:\r\n\r\nOnce\r\n\r\n   1) Xiang Yu wins Na games consecutively,\r\n   2) Liu Bang wins Nb games consecutively, \r\n   3) No ties occur consecutively, \r\n\r\n*whichever comes first*, Mr. Cody announces the outcome accordingly as follows:\r\n\r\n   1) Xiang Yu is the final winner,\r\n   2) Liu Bang is the final winner, \r\n   3) They end up with a final draw.\r\n\r\nAgain, Cody asks us --- active Cody players --- to foresee the outcome of this unseen match using Monte Carlo simulations. Our task is to write the following function\r\n\r\n                         [Pa, Pb, Pc] = Xiangqi2(a, b, Na, Nb, Nc)\r\n\r\nwhere \r\n\r\n* a: the probability that Xiang Yu wins one individual game\r\n* b: the probability that Liu Bang wins one individual game\r\n* Na: # of consecutive wins required for Xiang Yu to become the final winner\r\n* Nb: # of consecutive wins required for Liu Bang to become the final winner\r\n* Nc: # of consecutive ties required to result in a final draw\r\n* Pa: the probability that Xiang Yu wins the match\r\n* Pb: the probability that Liu Bang wins the match\r\n* Pc: the probability of a final draw\r\n\r\nThe main focus of this problem is on *Monte Carlo simulations*, rather than analytical approaches. Your provided solution Xiangqi2.m will be checked by a P-file EvaluateSolution.p, which mainly does 3 things as follows:\r\n\r\n1) Call your function [Pa, Pb, Pc] = Xiangqi2(a, b, Na, Nb, Nc) and then Check if the result P = [Pa, Pb, Pc] is within tolerance of its expected value Q. That is, If norm(P - Q) \u003c tol holds, it means that your solution is accurate enough. If this does not hold, your solution will be rejected. \r\n\r\n2) Check if your solution is based on *pure Monte Carlo simulations* or *analytical approaches*. If it is based on analytical approaches (i.e., using analytical expressions to directly compute the probabilities), then your solution will be rejected. EvaluateSolution.p accomplishes this goal by exploiting a combination of distinct features possessed by analytical solutions, but are generally not shared by Monte Carlo simulations. \r\n\r\n3) If your solution passes the above two checks, then the score of your solution will be determined based on the speed of your code. The faster your solution is, the smaller score you get. \r\n\r\nIf you have any concerns or suggestions on this problem, please feel free to leave me a comment. Thanks. \r\n\r\n ","description_html":"\u003cp\u003eThis is the second part of the Xiangqi series. The first part in this series is: \u003ca href = \"http://www.mathworks.com/matlabcentral/cody/problems/42674-cody-meets-xiangqi-foresee-the-unseen\"\u003eCody meets Xiangqi: foresee the unseen (Part 1)\u003c/a\u003e\u003c/p\u003e\u003cp\u003eBeing increasingly interested in \u003ca href = \"https://en.wikipedia.org/wiki/Xiangqi\"\u003eXiangqi\u003c/a\u003e (a.k.a., \u003cb\u003eChinese Chess\u003c/b\u003e), Mr. Cody has designed a new Xiangqi match for \u003ca href = \"https://en.wikipedia.org/wiki/Xiang_Yu\"\u003eXiang Yu\u003c/a\u003e and \u003ca href = \"https://de.wikipedia.org/wiki/Han_Gaozu\"\u003eLiu Bang\u003c/a\u003e by taking into account the likelihood of tie games. The new rule is described as follows:\u003c/p\u003e\u003cp\u003eOnce\u003c/p\u003e\u003cpre\u003e   1) Xiang Yu wins Na games consecutively,\r\n   2) Liu Bang wins Nb games consecutively, \r\n   3) No ties occur consecutively, \u003c/pre\u003e\u003cp\u003e\u003cb\u003ewhichever comes first\u003c/b\u003e, Mr. Cody announces the outcome accordingly as follows:\u003c/p\u003e\u003cpre\u003e   1) Xiang Yu is the final winner,\r\n   2) Liu Bang is the final winner, \r\n   3) They end up with a final draw.\u003c/pre\u003e\u003cp\u003eAgain, Cody asks us --- active Cody players --- to foresee the outcome of this unseen match using Monte Carlo simulations. Our task is to write the following function\u003c/p\u003e\u003cpre\u003e                         [Pa, Pb, Pc] = Xiangqi2(a, b, Na, Nb, Nc)\u003c/pre\u003e\u003cp\u003ewhere\u003c/p\u003e\u003cul\u003e\u003cli\u003ea: the probability that Xiang Yu wins one individual game\u003c/li\u003e\u003cli\u003eb: the probability that Liu Bang wins one individual game\u003c/li\u003e\u003cli\u003eNa: # of consecutive wins required for Xiang Yu to become the final winner\u003c/li\u003e\u003cli\u003eNb: # of consecutive wins required for Liu Bang to become the final winner\u003c/li\u003e\u003cli\u003eNc: # of consecutive ties required to result in a final draw\u003c/li\u003e\u003cli\u003ePa: the probability that Xiang Yu wins the match\u003c/li\u003e\u003cli\u003ePb: the probability that Liu Bang wins the match\u003c/li\u003e\u003cli\u003ePc: the probability of a final draw\u003c/li\u003e\u003c/ul\u003e\u003cp\u003eThe main focus of this problem is on \u003cb\u003eMonte Carlo simulations\u003c/b\u003e, rather than analytical approaches. Your provided solution Xiangqi2.m will be checked by a P-file EvaluateSolution.p, which mainly does 3 things as follows:\u003c/p\u003e\u003cp\u003e1) Call your function [Pa, Pb, Pc] = Xiangqi2(a, b, Na, Nb, Nc) and then Check if the result P = [Pa, Pb, Pc] is within tolerance of its expected value Q. That is, If norm(P - Q) \u0026lt; tol holds, it means that your solution is accurate enough. If this does not hold, your solution will be rejected.\u003c/p\u003e\u003cp\u003e2) Check if your solution is based on \u003cb\u003epure Monte Carlo simulations\u003c/b\u003e or \u003cb\u003eanalytical approaches\u003c/b\u003e. If it is based on analytical approaches (i.e., using analytical expressions to directly compute the probabilities), then your solution will be rejected. EvaluateSolution.p accomplishes this goal by exploiting a combination of distinct features possessed by analytical solutions, but are generally not shared by Monte Carlo simulations.\u003c/p\u003e\u003cp\u003e3) If your solution passes the above two checks, then the score of your solution will be determined based on the speed of your code. The faster your solution is, the smaller score you get.\u003c/p\u003e\u003cp\u003eIf you have any concerns or suggestions on this problem, please feel free to leave me a comment. Thanks.\u003c/p\u003e","function_template":"function [Pa, Pb, Pc] = Xiangqi2(a, b, Na, Nb, Nc)\r\n% a: the probability that Xiang Yu wins one individual game\r\n% b: the probability that Liu Bang wins one individual game\r\n% Na: # of consecutive wins required for Xiang Yu to become the final winner\r\n% Nb: # of consecutive wins required for Liu Bang to become the final winner\r\n% Nc: # of consecutive ties required to result in a final draw\r\n% Pa: the probability that Xiang Yu wins the match\r\n% Pb: the probability that Liu Bang wins the match\r\n% Pc: the probability of a final draw\r\n    Pa = ;\r\n    Pb = ;\r\n    Pc = ;\r\nend","test_suite":"%%\r\n% Thanks to Alfonso Nieto-Castanon\r\nurlwrite('https://sites.google.com/a/alfnie.com/alfnie/software/SetSolutionScore.p?attredirects=0\u0026amp;d=1','SetSolutionScore.p');\r\nrehash path;\r\n\r\n%%\r\nfh = fopen('EvaluateSolution.p','wb');\r\nfwrite(fh, hex2dec(reshape('7630312E30307630302E3030000C701C97F61FB1000002D5000001CF000004E73DD68930A391F7C60A534B45A03EAF72EB08941F39EE01BF25BAE04DF43CF342FC1A763DF6B8F26BBED0BD4F2ABBB5927B1EEBAE8795E487F6E4EF2737CBB6646BC4DF145E14664B3A4DACCD7CB01C4EC2328AD76F196231D2CA02CDC2B15466FBA5BDDF9E6C0E5DE12CF07B2AAA50BD2F04FFB92E9BECBE232E01031340A8EDCA5C10DAC01BBE43685ED0AB79D9C6F2A090FB4E0E75CAA236D3D73AD659E0705C42792BC77D85951B2FC49DE856FB97AFD74C1DB66C874EDF5517BCFA14C6706CA5E61DE60F2771B64F6D634B858A1A30AD7C49778534CCCE7551C637DC53846B02140046F729C5EB2DC9C65F16C2FC4F34EA9F03A2056B8218ACAB9A9A8BC5DC8F2F3312740F86626ABA38E00903CE76846DEE175BEE04DC0815E050E4CD95BA8E5BD27A0B57F2413B71A0E4837FB0F86328AA82732C584F1F55C6CCD79CBC69D052011BA93357AAE3568E0086F159C083D665645A38584955283925F900254A6562F0C755323C40805328D04F27FD863E8B774B52E27FC3AA30CE689AC57DEFEE274DBBC2A4D9D320CF19AD873AA0AE806721EE78496F7ADA99EA48060F26FDEE7ED5E9F85B27F79AE176A6E8EAC4DD5127299122FF88139BC4B56A2ED3C5338A72676C4C99AD6DEBCD8BB5EB09',2,[]).')); rehash path; fclose(fh);\r\n\r\n%%\r\nfid = fopen('Xiangqi2.m');\r\ndelim = {' ', '\\n', ',', '.', ';', '''', '@', '+', '-', '*', '/', '\\', '^', '\u003e', '\u003c', '=', '\u0026', '|', '~', '{', '}', '[', ']', '(', ')'};\r\nfile = textscan(fid, '%s', 'CommentStyle', '%', 'MultipleDelimsAsOne', 1, 'Delimiter', delim); fclose(fid); \r\nassert(~any(ismember({'rng','RandStream','seed','state','twister','shufle','default'},file{1})));\r\n\r\n%%\r\na = 0; b = 0; Na = 2; Nb = 3; Nc = 2; tol = 1e-6;\r\nEvaluateSolution(a, b, Na, Nb, Nc, tol); \r\n\r\n%%\r\na = 0; b = 1; Na = 1; Nb = 2; Nc = 1; tol = 1e-6;\r\nEvaluateSolution(a, b, Na, Nb, Nc, tol); \r\n\r\n%%\r\na = 1; b = 0; Na = 3; Nb = 2; Nc = 1; tol = 1e-6;\r\nEvaluateSolution(a, b, Na, Nb, Nc, tol); \r\n\r\n%%\r\na = 0.15; b = 0.85; Na = 4; Nb = 2; Nc = 1; tol = 1e-4;\r\nEvaluateSolution(a, b, Na, Nb, Nc, tol);\r\n\r\n%%\r\na = 0.9; b = 0; Na = 3; Nb = 1; Nc = 2; tol = 1e-3;\r\nEvaluateSolution(a, b, Na, Nb, Nc, tol);\r\n\r\n%%\r\na = 0.65; b = 0.3; Na = 3; Nb = 2; Nc = 2; tol = 1e-3;\r\nEvaluateSolution(a, b, Na, Nb, Nc, tol);\r\n\r\n%%\r\nNa = 3; Nb = 2; Nc = 1; tol = 2e-3; \r\np = sort(rand(2,30)); \r\np = sort([p(1,:);diff(p);1-p(2,:)]);\r\nfor k = size(p,2):-1:1\r\n    a = p(3,k); b = p(2,k);\r\n    score(k) = EvaluateSolution(a, b, Na, Nb, Nc, tol);    \r\nend\r\nSetSolutionScore(round(mean(score)));","published":true,"deleted":false,"likes_count":0,"comments_count":0,"created_by":12569,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":5,"test_suite_updated_at":"2015-11-12T00:41:35.000Z","rescore_all_solutions":true,"group_id":1,"created_at":"2015-11-08T20:51:55.000Z","updated_at":"2015-11-12T03:39:15.000Z","published_at":"2015-11-10T00:22:37.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis is the second part of the Xiangqi series. The first part in this series is:\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://www.mathworks.com/matlabcentral/cody/problems/42674-cody-meets-xiangqi-foresee-the-unseen\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eCody meets Xiangqi: foresee the unseen (Part 1)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eBeing increasingly interested in\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://en.wikipedia.org/wiki/Xiangqi\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eXiangqi\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e (a.k.a.,\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eChinese Chess\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e), Mr. Cody has designed a new Xiangqi match for\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://en.wikipedia.org/wiki/Xiang_Yu\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eXiang Yu\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e and\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://de.wikipedia.org/wiki/Han_Gaozu\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eLiu Bang\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e by taking into account the likelihood of tie games. The new rule is described as follows:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eOnce\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[   1) Xiang Yu wins Na games consecutively,\\n   2) Liu Bang wins Nb games consecutively, \\n   3) No ties occur consecutively,]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ewhichever comes first\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e, Mr. Cody announces the outcome accordingly as follows:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[   1) Xiang Yu is the final winner,\\n   2) Liu Bang is the final winner, \\n   3) They end up with a final draw.]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eAgain, Cody asks us --- active Cody players --- to foresee the outcome of this unseen match using Monte Carlo simulations. Our task is to write the following function\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[                         [Pa, Pb, Pc] = Xiangqi2(a, b, Na, Nb, Nc)]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ewhere\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ea: the probability that Xiang Yu wins one individual game\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eb: the probability that Liu Bang wins one individual game\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eNa: # of consecutive wins required for Xiang Yu to become the final winner\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eNb: # of consecutive wins required for Liu Bang to become the final winner\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eNc: # of consecutive ties required to result in a final draw\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ePa: the probability that Xiang Yu wins the match\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ePb: the probability that Liu Bang wins the match\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ePc: the probability of a final draw\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe main focus of this problem is on\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eMonte Carlo simulations\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e, rather than analytical approaches. Your provided solution Xiangqi2.m will be checked by a P-file EvaluateSolution.p, which mainly does 3 things as follows:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e1) Call your function [Pa, Pb, Pc] = Xiangqi2(a, b, Na, Nb, Nc) and then Check if the result P = [Pa, Pb, Pc] is within tolerance of its expected value Q. That is, If norm(P - Q) \u0026lt; tol holds, it means that your solution is accurate enough. If this does not hold, your solution will be rejected.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e2) Check if your solution is based on\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003epure Monte Carlo simulations\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e or\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eanalytical approaches\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e. If it is based on analytical approaches (i.e., using analytical expressions to directly compute the probabilities), then your solution will be rejected. EvaluateSolution.p accomplishes this goal by exploiting a combination of distinct features possessed by analytical solutions, but are generally not shared by Monte Carlo simulations.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e3) If your solution passes the above two checks, then the score of your solution will be determined based on the speed of your code. The faster your solution is, the smaller score you get.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eIf you have any concerns or suggestions on this problem, please feel free to leave me a comment. Thanks.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"}],"term":"tag:\"chess\"","current_player_id":null,"fields":[{"name":"page","type":"integer","callback":null,"default":1,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":null,"static":null,"prepend":true},{"name":"per_page","type":"integer","callback":null,"default":50,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":null,"static":null,"prepend":true},{"name":"sort","type":"string","callback":null,"default":null,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":null,"static":null,"prepend":true},{"name":"body","type":"text","callback":null,"default":"*:*","directive":null,"facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":false},{"name":"group","type":"string","callback":null,"default":null,"directive":"group","facet":true,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"difficulty_rating_bin","type":"string","callback":null,"default":null,"directive":"difficulty_rating_bin","facet":true,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"id","type":"integer","callback":null,"default":null,"directive":"id","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"tag","type":"string","callback":null,"default":null,"directive":"tag","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"product","type":"string","callback":null,"default":null,"directive":"product","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"created_at","type":"timeframe","callback":{},"default":null,"directive":"created_at","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"profile_id","type":"integer","callback":null,"default":null,"directive":"author_id","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"created_by","type":"string","callback":null,"default":null,"directive":"author","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"player_id","type":"integer","callback":null,"default":null,"directive":"solver_id","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"player","type":"string","callback":null,"default":null,"directive":"solver","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"solvers_count","type":"integer","callback":null,"default":null,"directive":"solvers_count","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"comments_count","type":"integer","callback":null,"default":null,"directive":"comments_count","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"likes_count","type":"integer","callback":null,"default":null,"directive":"likes_count","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"leader_id","type":"integer","callback":null,"default":null,"directive":"leader_id","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"leading_solution","type":"integer","callback":null,"default":null,"directive":"leading_solution","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true}],"filters":[{"name":"asset_type","type":"string","callback":null,"default":null,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":null,"static":"\"cody:problem\"","prepend":true},{"name":"profile_id","type":"integer","callback":{},"default":null,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":"author_id","static":null,"prepend":true}],"query":{"params":{"per_page":50,"term":"tag:\"chess\"","current_player":null,"sort":"map(difficulty_value,0,0,999) asc"},"parser":"MathWorks::Search::Solr::QueryParser","directives":{"term":{"directives":{"tag":[["tag:\"chess\"","","\"","chess","\""]]}}},"facets":{"#\u003cMathWorks::Search::Field:0x00007effc5e691c0\u003e":null,"#\u003cMathWorks::Search::Field:0x00007effc5e69120\u003e":null},"filters":{"#\u003cMathWorks::Search::Field:0x00007effc5e68540\u003e":"\"cody:problem\""},"fields":{"#\u003cMathWorks::Search::Field:0x00007effc5e698a0\u003e":1,"#\u003cMathWorks::Search::Field:0x00007effc5e69800\u003e":50,"#\u003cMathWorks::Search::Field:0x00007effc5e69620\u003e":"map(difficulty_value,0,0,999) asc","#\u003cMathWorks::Search::Field:0x00007effc5e69260\u003e":"tag:\"chess\""},"user_query":{"#\u003cMathWorks::Search::Field:0x00007effc5e69260\u003e":"tag:\"chess\""},"queried_facets":{}},"query_backend":{"connection":{"configuration":{"index_url":"http://index-op-v2/solr/","query_url":"http://search-op-v2/solr/","direct_access_index_urls":["http://index-op-v2/solr/"],"direct_access_query_urls":["http://search-op-v2/solr/"],"timeout":10,"vhost":"search","exchange":"search.topic","heartbeat":30,"pre_index_mode":false,"host":"rabbitmq-eks","port":5672,"username":"cody-search","password":"78X075ddcV44","virtual_host":"search","indexer":"amqp","http_logging":"true","core":"cody"},"query_connection":{"uri":"http://search-op-v2/solr/cody/","proxy":null,"connection":{"parallel_manager":null,"headers":{"User-Agent":"Faraday v1.0.1"},"params":{},"options":{"params_encoder":"Faraday::FlatParamsEncoder","proxy":null,"bind":null,"timeout":null,"open_timeout":null,"read_timeout":null,"write_timeout":null,"boundary":null,"oauth":null,"context":null,"on_data":null},"ssl":{"verify":true,"ca_file":null,"ca_path":null,"verify_mode":null,"cert_store":null,"client_cert":null,"client_key":null,"certificate":null,"private_key":null,"verify_depth":null,"version":null,"min_version":null,"max_version":null},"default_parallel_manager":null,"builder":{"adapter":{"name":"Faraday::Adapter::NetHttp","args":[],"block":null},"handlers":[{"name":"Faraday::Response::RaiseError","args":[],"block":null}],"app":{"app":{"ssl_cert_store":{"verify_callback":null,"error":null,"error_string":null,"chain":null,"time":null},"app":{},"connection_options":{},"config_block":null}}},"url_prefix":"http://search-op-v2/solr/cody/","manual_proxy":false,"proxy":null},"update_format":"RSolr::JSON::Generator","update_path":"update","options":{"url":"http://search-op-v2/solr/cody"}}},"query":{"params":{"per_page":50,"term":"tag:\"chess\"","current_player":null,"sort":"map(difficulty_value,0,0,999) asc"},"parser":"MathWorks::Search::Solr::QueryParser","directives":{"term":{"directives":{"tag":[["tag:\"chess\"","","\"","chess","\""]]}}},"facets":{"#\u003cMathWorks::Search::Field:0x00007effc5e691c0\u003e":null,"#\u003cMathWorks::Search::Field:0x00007effc5e69120\u003e":null},"filters":{"#\u003cMathWorks::Search::Field:0x00007effc5e68540\u003e":"\"cody:problem\""},"fields":{"#\u003cMathWorks::Search::Field:0x00007effc5e698a0\u003e":1,"#\u003cMathWorks::Search::Field:0x00007effc5e69800\u003e":50,"#\u003cMathWorks::Search::Field:0x00007effc5e69620\u003e":"map(difficulty_value,0,0,999) asc","#\u003cMathWorks::Search::Field:0x00007effc5e69260\u003e":"tag:\"chess\""},"user_query":{"#\u003cMathWorks::Search::Field:0x00007effc5e69260\u003e":"tag:\"chess\""},"queried_facets":{}},"options":{"fields":["id","difficulty_rating"]},"join":" "},"results":[{"id":54770,"difficulty_rating":"easy"},{"id":1172,"difficulty_rating":"easy-medium"},{"id":3054,"difficulty_rating":"easy-medium"},{"id":61144,"difficulty_rating":"easy-medium"},{"id":45240,"difficulty_rating":"easy-medium"},{"id":45427,"difficulty_rating":"easy-medium"},{"id":1174,"difficulty_rating":"easy-medium"},{"id":45329,"difficulty_rating":"easy-medium"},{"id":45336,"difficulty_rating":"easy-medium"},{"id":57660,"difficulty_rating":"easy-medium"},{"id":3057,"difficulty_rating":"easy-medium"},{"id":3056,"difficulty_rating":"easy-medium"},{"id":45330,"difficulty_rating":"easy-medium"},{"id":1684,"difficulty_rating":"easy-medium"},{"id":45236,"difficulty_rating":"easy-medium"},{"id":60541,"difficulty_rating":"easy-medium"},{"id":61155,"difficulty_rating":"easy-medium"},{"id":315,"difficulty_rating":"easy-medium"},{"id":45433,"difficulty_rating":"medium"},{"id":45238,"difficulty_rating":"medium"},{"id":3061,"difficulty_rating":"medium"},{"id":306,"difficulty_rating":"medium"},{"id":45237,"difficulty_rating":"medium"},{"id":45332,"difficulty_rating":"medium"},{"id":447,"difficulty_rating":"medium"},{"id":45418,"difficulty_rating":"medium"},{"id":42674,"difficulty_rating":"medium"},{"id":54780,"difficulty_rating":"medium"},{"id":45389,"difficulty_rating":"medium"},{"id":45239,"difficulty_rating":"medium-hard"},{"id":96,"difficulty_rating":"medium-hard"},{"id":42685,"difficulty_rating":"unrated"}]}}