{"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":509,"title":"Count photos","description":"Given n people, everyone must have pictures taken with everyone, each photo includes only two persons, please count the total number of pictures.","description_html":"\u003cp\u003eGiven n people, everyone must have pictures taken with everyone, each photo includes only two persons, please count the total number of pictures.\u003c/p\u003e","function_template":"function y = photos(x)\r\n  y = x^2;\r\nend","test_suite":"%%\r\nx = 10;\r\ny_correct = 45;\r\nassert(isequal(photos(x),y_correct))\r\n%%\r\nx = 100;\r\ny_correct = 4950;\r\nassert(isequal(photos(x),y_correct))\r\n%%\r\nx = 1000;\r\ny_correct = 499500;\r\nassert(isequal(photos(x),y_correct))\r\n","published":true,"deleted":false,"likes_count":6,"comments_count":1,"created_by":166,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":433,"test_suite_updated_at":"2012-03-19T09:23:23.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2012-03-19T09:23:23.000Z","updated_at":"2026-03-25T00:07:08.000Z","published_at":"2012-03-19T15:16:11.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\u003eGiven n people, everyone must have pictures taken with everyone, each photo includes only two persons, please count the total number of pictures.\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":61004,"title":"Rooky Towers","description":"You are wandering and as you realise something's off, you find yourself lost in a peculiar place -  Over a giant field which is laid in form of a checkered square base - with towering structures around you.\r\nTo safeguard yourself, you have to calculate the numbers of ways of a given number (x) of towering structures can be arranged on the filed (n,n) with a restriction - \r\nThe grid (n\u003e=x) will be set such that none of these structures are inline with each other in the 4 basic directions, but they could along the diagonal pathways.\r\n\r\n%Example\r\n%For a 2x2 (n,n) field - \r\n% 2 (x) towers can be arranged in 2 ways [|| 0; 0 ||] and [0 ||; || 0]\r\n% 1 (x) tower can be arranged in 4 ways [|| 0; 0 0], [0 ||; 0 0], [0 0; || 0 ] and [0 0; 0 ||]\r\n% and 0 (x) towers can be arranged in 1 way [0 0; 0 0]\r\n\r\nNote that there is a limit on the tools you can utilize for your calculation.","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: none; white-space: normal; \"\u003e\u003cdiv style=\"block-size: 347.167px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 408px 173.583px; transform-origin: 408px 173.583px; 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: 385px 21px; text-align: left; transform-origin: 385px 21px; 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: 381.383px 8px; transform-origin: 381.383px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eYou are wandering and as you realise something's off, you find yourself lost in a peculiar place -  Over a giant field which is laid in form of a checkered square base - with towering structures around you.\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: 385px 21px; text-align: left; transform-origin: 385px 21px; 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: 265.275px 8px; transform-origin: 265.275px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eTo safeguard yourself, you have to calculate the numbers of ways of a given number (\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: 3.5px 8px; transform-origin: 3.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003ex\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: 96.0667px 8px; transform-origin: 96.0667px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e) of towering structures can be arranged on the filed \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: 16.3333px 8px; transform-origin: 16.3333px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003e(n,n) \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: 56.7833px 8px; transform-origin: 56.7833px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003ewith a restriction - \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: 385px 21px; text-align: left; transform-origin: 385px 21px; 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: 27.6167px 8px; transform-origin: 27.6167px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe grid \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: 20.2417px 8px; transform-origin: 20.2417px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003e(n\u0026gt;=x)\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: 325.558px 8px; transform-origin: 325.558px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e will be set such that none of these structures are inline with each other in the 4 basic directions, but they could along the diagonal pathways.\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: 385px 10.5px; text-align: left; transform-origin: 385px 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: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e\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: 405px 51.0833px; transform-origin: 405px 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: 405px 10.2167px; text-wrap-mode: nowrap; transform-origin: 405px 10.2167px; \"\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: 30.8px 8.5px; tab-size: 4; transform-origin: 30.8px 8.5px; unicode-bidi: normal; white-space-collapse: preserve; margin-right: 45px; \"\u003e\u003cspan style=\"border-block-end-color: rgb(2, 128, 9); border-block-start-color: rgb(2, 128, 9); border-bottom-color: rgb(2, 128, 9); border-inline-end-color: rgb(2, 128, 9); border-inline-start-color: rgb(2, 128, 9); border-left-color: rgb(2, 128, 9); border-right-color: rgb(2, 128, 9); border-top-color: rgb(2, 128, 9); caret-color: rgb(2, 128, 9); color: rgb(2, 128, 9); column-rule-color: rgb(2, 128, 9); margin-inline-end: 0px; margin-right: 0px; outline-color: rgb(2, 128, 9); text-decoration-color: rgb(2, 128, 9); text-emphasis-color: rgb(2, 128, 9); \"\u003e%Example\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: 405px 10.2167px; text-wrap-mode: nowrap; transform-origin: 405px 10.2167px; \"\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: 96.25px 8.5px; tab-size: 4; transform-origin: 96.25px 8.5px; unicode-bidi: normal; white-space-collapse: preserve; margin-right: 45px; \"\u003e\u003cspan style=\"border-block-end-color: rgb(2, 128, 9); border-block-start-color: rgb(2, 128, 9); border-bottom-color: rgb(2, 128, 9); border-inline-end-color: rgb(2, 128, 9); border-inline-start-color: rgb(2, 128, 9); border-left-color: rgb(2, 128, 9); border-right-color: rgb(2, 128, 9); border-top-color: rgb(2, 128, 9); caret-color: rgb(2, 128, 9); color: rgb(2, 128, 9); column-rule-color: rgb(2, 128, 9); margin-inline-end: 0px; margin-right: 0px; outline-color: rgb(2, 128, 9); text-decoration-color: rgb(2, 128, 9); text-emphasis-color: rgb(2, 128, 9); \"\u003e%For a 2x2 (n,n) field - \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: 405px 10.2167px; text-wrap-mode: nowrap; transform-origin: 405px 10.2167px; \"\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: 269.5px 8.5px; tab-size: 4; transform-origin: 269.5px 8.5px; unicode-bidi: normal; white-space-collapse: preserve; margin-right: 45px; \"\u003e\u003cspan style=\"border-block-end-color: rgb(2, 128, 9); border-block-start-color: rgb(2, 128, 9); border-bottom-color: rgb(2, 128, 9); border-inline-end-color: rgb(2, 128, 9); border-inline-start-color: rgb(2, 128, 9); border-left-color: rgb(2, 128, 9); border-right-color: rgb(2, 128, 9); border-top-color: rgb(2, 128, 9); caret-color: rgb(2, 128, 9); color: rgb(2, 128, 9); column-rule-color: rgb(2, 128, 9); margin-inline-end: 0px; margin-right: 0px; outline-color: rgb(2, 128, 9); text-decoration-color: rgb(2, 128, 9); text-emphasis-color: rgb(2, 128, 9); \"\u003e% 2 (x) towers can be arranged in 2 ways [|| 0; 0 ||] and [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: 405px 10.2167px; text-wrap-mode: nowrap; transform-origin: 405px 10.2167px; \"\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: 361.9px 8.5px; tab-size: 4; transform-origin: 361.9px 8.5px; unicode-bidi: normal; white-space-collapse: preserve; margin-right: 45px; \"\u003e\u003cspan style=\"border-block-end-color: rgb(2, 128, 9); border-block-start-color: rgb(2, 128, 9); border-bottom-color: rgb(2, 128, 9); border-inline-end-color: rgb(2, 128, 9); border-inline-start-color: rgb(2, 128, 9); border-left-color: rgb(2, 128, 9); border-right-color: rgb(2, 128, 9); border-top-color: rgb(2, 128, 9); caret-color: rgb(2, 128, 9); color: rgb(2, 128, 9); column-rule-color: rgb(2, 128, 9); margin-inline-end: 0px; margin-right: 0px; outline-color: rgb(2, 128, 9); text-decoration-color: rgb(2, 128, 9); text-emphasis-color: rgb(2, 128, 9); \"\u003e% 1 (x) tower can be arranged in 4 ways [|| 0; 0 0], [0 ||; 0 0], [0 0; || 0 ] and [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: 405px 10.2167px; text-wrap-mode: nowrap; transform-origin: 405px 10.2167px; \"\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: 207.9px 8.5px; tab-size: 4; transform-origin: 207.9px 8.5px; unicode-bidi: normal; white-space-collapse: preserve; margin-right: 45px; \"\u003e\u003cspan style=\"border-block-end-color: rgb(2, 128, 9); border-block-start-color: rgb(2, 128, 9); border-bottom-color: rgb(2, 128, 9); border-inline-end-color: rgb(2, 128, 9); border-inline-start-color: rgb(2, 128, 9); border-left-color: rgb(2, 128, 9); border-right-color: rgb(2, 128, 9); border-top-color: rgb(2, 128, 9); caret-color: rgb(2, 128, 9); color: rgb(2, 128, 9); column-rule-color: rgb(2, 128, 9); margin-inline-end: 0px; margin-right: 0px; outline-color: rgb(2, 128, 9); text-decoration-color: rgb(2, 128, 9); text-emphasis-color: rgb(2, 128, 9); \"\u003e% and 0 (x) towers can be arranged in 1 way [0 0; 0 0]\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: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; 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: 0px 8px; transform-origin: 0px 8px; 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; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 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: 220.542px 8px; transform-origin: 220.542px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eNote that there is a limit on the tools you can utilize for your calculation.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function y = rookytowers(n,x)\r\n  y = x;\r\nend","test_suite":"%%\r\nfiletext = fileread('rookytowers.m');\r\nillegal = contains(filetext, 'assignin') || contains(filetext, 'regexp') || ...\r\n          contains(filetext, 'while') || contains(filetext, 'for ') || ...\r\n          contains(filetext, 'cellfun') || contains(filetext, 'arrayfun') || ...\r\n          contains(filetext, 'rowfun') || contains(filetext, 'structfun') || ...\r\n          contains(filetext, 'switch') || contains(filetext, 'elseif'); \r\nassert(~illegal)\r\n\r\n%%\r\nassert(isequal(rookytowers(1, randi([0 1])),1))\r\n\r\n%%\r\ny = [1 4 2];\r\nr = randi([0 2]);\r\nassert(isequal(rookytowers(2, r),y(r+1)))\r\n\r\n%%\r\nn = 3;\r\ny = [n^0 n^2 2*n^2 2*n];\r\nr = randi([0 n]);\r\nassert(isequal(rookytowers(n, r),y(r+1)))\r\n\r\n%%\r\ny = [16 72 96];\r\nr = randi([1 3]);\r\nassert(isequal(rookytowers(4, r),y(r)))\r\n\r\n%%\r\nn = 5;\r\ny = [n 200 600 600 120];\r\nr = randi([2 n]);\r\nassert(isequal(rookytowers(n, r),y(r)))\r\n\r\n%%\r\ny = abs([-1\t\t49\t\t-882\t\t7350\t\t-29400]);\r\nr = randi([0 4]);\r\nassert(isequal(rookytowers(7, r),y(r+1)))\r\n\r\n%%\r\ny = abs([1\t\t-64\t\t1568\t\t-18816\t\t117600\t\t-376320\t\t564480\t\t-322560\t\t40320]);\r\nn = 2^3;\r\nfor r=0:n\r\n    assert(isequal(rookytowers(n, r),y(r+1)))\r\nend\r\n\r\n%%\r\ny = [9^0 9^2 2592 42336 381024 1905120 5080320 6531840 3265920 factorial(9)]\r\nr = randi([0 9]);\r\nassert(isequal(rookytowers(9, r),y(r+1)))","published":true,"deleted":false,"likes_count":1,"comments_count":3,"created_by":223089,"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":"2025-09-18T15:25:35.000Z","updated_at":"2026-01-26T15:21:48.000Z","published_at":"2025-09-18T15:25:35.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\u003eYou are wandering and as you realise something's off, you find yourself lost in a peculiar place -  Over a giant field which is laid in form of a checkered square base - with towering structures around you.\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\u003eTo safeguard yourself, you have to calculate the numbers of ways of a given number (\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ex\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e) of towering structures can be arranged on the filed \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e(n,n) \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr/\u003e\u003cw:t\u003ewith a restriction - \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 grid \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e(n\u0026gt;=x)\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e will be set such that none of these structures are inline with each other in the 4 basic directions, but they could along the diagonal pathways.\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=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[%Example\\n%For a 2x2 (n,n) field - \\n% 2 (x) towers can be arranged in 2 ways [|| 0; 0 ||] and [0 ||; || 0]\\n% 1 (x) tower can be arranged in 4 ways [|| 0; 0 0], [0 ||; 0 0], [0 0; || 0 ] and [0 0; 0 ||]\\n% and 0 (x) towers can be arranged in 1 way [0 0; 0 0]]]\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\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 that there is a limit on the tools you can utilize for your calculation.\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":51820,"title":"Count unique orderings of vertices of a polygon","description":"Cody Problem 2671 asks us to determine whether four points can be the corners of a rectangle. The points are not necessarily input in order (either clockwise or counterclockwise). My initial attempt at the problem involved determining how the points might be presented. If the corners are numbered as shown below, then they can be input in 24 ways.\r\nHowever, for the rectangle problem, many of the 24 ways are essentially the same. For example, 2341, 3214, and 4123 are effectively the same as 1234 because the numbers of the corners could be shifted around the rectangle. In fact, only three of the 24 ways are different (1234, 1243, and 1324). \r\nWrite a function to determine the unique orderings of vertices of a polygon with  sides. \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: 356.917px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 178.458px; transform-origin: 407px 178.458px; 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\u003ca target='_blank' href = \"https://www.mathworks.com/matlabcentral/cody/problems/2671\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"text-decoration: underline; text-decoration-line: underline; \"\u003eCody Problem 2671\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: 294.433px 7.91667px; transform-origin: 294.433px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e asks us to determine whether four points can be the corners of a rectangle. The points are not necessarily input in order (either clockwise or counterclockwise). My initial attempt at the problem involved determining how the points might be presented. If the corners are numbered as shown below, then they can be input in 24 ways.\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: 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: 383.133px 7.91667px; transform-origin: 383.133px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eHowever, for the rectangle problem, many of the 24 ways are essentially the same. For example, 2341, 3214, and 4123 are effectively the same as 1234 because the numbers of the corners could be shifted around the rectangle. In fact, only three of the 24 ways are different (1234, 1243, and 1324). \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: 245.317px 7.91667px; transform-origin: 245.317px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eWrite a function to determine the unique orderings of vertices of a polygon with \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: 22.1667px 7.91667px; transform-origin: 22.1667px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e sides. \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 182.917px; 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 91.4583px; text-align: left; transform-origin: 384px 91.4583px; 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: 262px;height: 177px\" src=\"data:image/png;base64,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\" data-image-state=\"image-loaded\" width=\"262\" height=\"177\"\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function y = polyVert(n)\r\n  y = nchoosek(2*n,n);\r\nend","test_suite":"%% Rectangle\r\nassert(isequal(polyVert(4),3))\r\n\r\n%% Triangle\r\nassert(isequal(polyVert(3),1))\r\n\r\n%% Heptagon\r\nassert(isequal(polyVert(7),360))\r\n\r\n%% Dodecagon\r\nassert(isequal(polyVert(12),19958400))\r\n\r\n%% Heptadecagon\r\nassert(isequal(polyVert(17),10461394944000))\r\n\r\n%% \r\nd = num2str(polyVert(19))-'0';\r\np = polyval(d(1:3:end),4);\r\np_correct = 3760;\r\nassert(isequal(p,p_correct))\r\n\r\n%% \r\nd = num2str(polyVert(15));\r\ns = polyVert(str2num(d(4)))+polyVert(str2num(d(6:7)));\r\ns_correct = 3113512920;\r\nassert(isequal(s,s_correct))","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":46909,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":21,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2021-05-27T04:52:02.000Z","updated_at":"2026-01-15T18:13:53.000Z","published_at":"2021-05-27T04:56:25.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:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/2671\\\"\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:u/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eCody Problem 2671\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e asks us to determine whether four points can be the corners of a rectangle. The points are not necessarily input in order (either clockwise or counterclockwise). My initial attempt at the problem involved determining how the points might be presented. If the corners are numbered as shown below, then they can be input in 24 ways.\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\u003eHowever, for the rectangle problem, many of the 24 ways are essentially the same. For example, 2341, 3214, and 4123 are effectively the same as 1234 because the numbers of the corners could be shifted around the rectangle. In fact, only three of the 24 ways are different (1234, 1243, and 1324). \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 determine the unique orderings of vertices of a polygon with \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 sides. \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=\\\"177\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"262\\\"/\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":47838,"title":"Count the ways pairs of parentheses can be matched correctly","description":null,"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: 145.433px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 72.7167px; transform-origin: 407px 72.7167px; 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: 370.317px 7.91667px; transform-origin: 370.317px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eSeveral problems in Cody deal with the practical problem of checking whether parentheses are correctly matched (e.g., \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://www.mathworks.com/matlabcentral/cody/problems/80\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003e80\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: 3.88333px 7.91667px; transform-origin: 3.88333px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e, \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://www.mathworks.com/matlabcentral/cody/problems/465\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"perspective-origin: 11.675px 7.91667px; transform-origin: 11.675px 7.91667px; \"\u003e465\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: 3.88333px 7.91667px; transform-origin: 3.88333px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e, \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://www.mathworks.com/matlabcentral/cody/problems/1303\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003e1303\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: 3.88333px 7.91667px; transform-origin: 3.88333px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e, \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://www.mathworks.com/matlabcentral/cody/problems/2653-beauty-of-parentheses\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003e2653\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: 331.392px 7.91667px; transform-origin: 331.392px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e). In this problem you are asked to count the ways a given number of pairs of parentheses can be matched correctly in an expression. For example, three pairs can be matched in five ways: \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgb(247, 247, 247); block-size: 20.4333px; 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 10.2167px; transform-origin: 404px 10.2167px; margin-left: 3px; margin-top: 10px; margin-bottom: 10px; margin-right: 3px; \"\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); 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: 0.833333px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 0.833333px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 0.833333px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 0.833333px; 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; 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: 146.3px 7.91667px; transform-origin: 146.3px 7.91667px; 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\u003c/div\u003e\u003cdiv style=\"block-size: 42px; 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 21px; text-align: left; transform-origin: 384px 21px; 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: 361.992px 7.91667px; transform-origin: 361.992px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eWrite a function that takes the number of pairs and determines the number of ways the parentheses can be matched correctly. \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function y = parenMatches(n)\r\n  y = 4^n/(n^(3/2)*sqrt(pi));\r\nend","test_suite":"%%\r\nn = 0;\r\ny_correct = 1;\r\nassert(isequal(parenMatches(n),y_correct))\r\n\r\n%%\r\nn = 1;\r\ny_correct = 1;\r\nassert(isequal(parenMatches(n),y_correct))\r\n\r\n%%\r\nn = 2;\r\ny_correct = 2;\r\nassert(isequal(parenMatches(n),y_correct))\r\n\r\n%%\r\nn = 3;\r\ny_correct = 5;\r\nassert(isequal(parenMatches(n),y_correct))\r\n\r\n%%\r\nn = 5;\r\ny_correct = 42;\r\nassert(isequal(parenMatches(n),y_correct))\r\n\r\n%%\r\nn = 10;\r\ny_correct = 16796;\r\nassert(isequal(parenMatches(n),y_correct))\r\n\r\n%%\r\nn = 14;\r\ny_correct = 2674440;\r\nassert(isequal(parenMatches(n),y_correct))\r\n\r\n%%\r\nn = 19;\r\ny_correct = 1767263190;\r\nassert(isequal(parenMatches(n),y_correct))\r\n\r\n%%\r\nn = 23;\r\ny_correct = 343059613650;\r\nassert(isequal(parenMatches(n),y_correct))\r\n\r\n%%\r\nn = 28;\r\ny_correct = 263747951750360;\r\nassert(isequal(parenMatches(n),y_correct))\r\n\r\n%% \r\nn = 25;\r\nd = num2str(parenMatches(n))-'0';\r\ns_correct = 54;\r\np_correct = 6635520;\r\nassert(isequal(sum(d),s_correct) \u0026\u0026 isequal(prod(d(d\u003e0)),p_correct))","published":true,"deleted":false,"likes_count":0,"comments_count":0,"created_by":46909,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":7,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2020-12-06T16:54:03.000Z","updated_at":"2025-06-08T09:25:42.000Z","published_at":"2020-12-06T17:21:19.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 problems in Cody deal with the practical problem of checking whether parentheses are correctly matched (e.g., \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/80\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e80\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\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/465\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e465\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\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/1303\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e1303\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\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/2653-beauty-of-parentheses\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e2653\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e). In this problem you are asked to count the ways a given number of pairs of parentheses can be matched correctly in an expression. For example, three pairs can be matched in five ways: \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[()()(), (())(), (()()), ((())), ()(())]]\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\u003eWrite a function that takes the number of pairs and determines the number of ways the parentheses can be matched correctly. \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":46551,"title":"Solve a ballot counting problem","description":"","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: 185.167px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 92.5833px; transform-origin: 407px 92.5833px; 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: 181px 8px; transform-origin: 181px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eCandidate X and Candidate O receive the same number (\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: 182.5px 8px; transform-origin: 182.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e) of votes in an election. Write a function to determine the number of ways the ballots can be counted such that X is never behind O. For example, for \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: 75.5px 8px; transform-origin: 75.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e = 3 there are five ways:\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: 36px 8.5px; transform-origin: 36px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e   XXXOOO\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: 44px 8.5px; transform-origin: 44px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e   XXOXOO  \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: 36px 8.5px; transform-origin: 36px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e   XXOOXO\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: 36px 8.5px; transform-origin: 36px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e   XOXXOO\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: 36px 8.5px; transform-origin: 36px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e   XOXOXO\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: 188.5px 8px; transform-origin: 188.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e Optional: Identify the connection between this problem and \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://www.mathworks.com/matlabcentral/cody/problems/42821-polygon-division\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eCody Problem 42821\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: 4px 8px; transform-origin: 4px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e. \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function y = ballot1(n)\r\n% n = number of vote *each* candidate receives\r\n  y = f(n);\r\nend","test_suite":"%%\r\nn = 3;\r\ny_correct = 5;\r\nassert(isequal(ballot1(n),y_correct))\r\n\r\n%%\r\nn = 6;\r\ny_correct = 132;\r\nassert(isequal(ballot1(n),y_correct))\r\n\r\n%%\r\nn = 9;\r\ny_correct = 4862;\r\nassert(isequal(ballot1(n),y_correct))\r\n\r\n%%\r\nn1 = 11;\r\nn2 = 13;\r\ny1 = ballot1(n1);\r\ny2 = ballot1(n2);\r\nsum_correct = 801686;\r\nmod_correct = 37468;\r\nassert(isequal(y1+y2,sum_correct) \u0026\u0026 isequal(mod(y2,y1),mod_correct))\r\n\r\n%%\r\nn = 22;\r\ny_correct = 91482563640;\r\nassert(isequal(ballot1(n),y_correct))\r\n\r\n%%\r\nn = 26;\r\ny_correct = 18367353072152;\r\nassert(isequal(ballot1(n),y_correct))","published":true,"deleted":false,"likes_count":2,"comments_count":0,"created_by":46909,"edited_by":46909,"edited_at":"2023-01-10T23:04:02.000Z","deleted_by":null,"deleted_at":null,"solvers_count":13,"test_suite_updated_at":"2020-08-16T04:39:20.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2020-08-16T02:51:12.000Z","updated_at":"2023-01-10T23:04:02.000Z","published_at":"2020-08-16T04:39:20.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\u003eCandidate X and Candidate O receive the same number (\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) of votes in an election. Write a function to determine the number of ways the ballots can be counted such that X is never behind O. For example, for \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 = 3 there are five ways:\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[   XXXOOO\\n   XXOXOO  \\n   XXOOXO\\n   XOXXOO\\n   XOXOXO]]\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 Optional: Identify the connection between this problem and \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/42821-polygon-division\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eCody Problem 42821\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\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":54390,"title":"That's not my hat! ","description":"There exists a highly secretive hat consortium. Members possess identical hats. The members are invited to a meeting. All of them bring their hats, but are required to leave them in the shared cloakroom. During the meeting an earthquake strikes the region, leaving the cloakroom a mess. When the members return to the cloakroom, they find all the hats lying on the floor, rendering it impossible to determine the owners. Unwilling to dwell on this, the members each pick up a random hat and leave. Given the number of attendees n\u003e0, the function c computes the number of distinct events where none of the members pick up their original hat. Your task is to define this function.","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: 126px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 63px; transform-origin: 407px 63px; vertical-align: baseline; \"\u003e\u003cdiv style=\"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 63px; text-align: left; transform-origin: 384px 63px; 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=\"\"\u003eThere exists a highly secretive hat consortium. Members possess identical hats. The members are invited to a meeting. All of them bring their hats, but are required to leave them in the shared cloakroom. During the meeting an earthquake strikes the region, leaving the cloakroom a mess. When the members return to the cloakroom, they find all the hats lying on the floor, rendering it impossible to determine the owners. Unwilling to dwell on this, the members each pick up a random hat and leave. Given the number of attendees \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; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003en\u0026gt;0\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; \"\u003e\u003cspan style=\"\"\u003e, the function \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; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003ec \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; \"\u003e\u003cspan style=\"\"\u003ecomputes the number of distinct events where none of the members pick up their original hat. Your task is to define this function.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function y = c(n)\r\n    y = 0;\r\nend","test_suite":"%%\r\nn = 7;\r\ny_correct = 1854;\r\nassert(isequal(c(n),y_correct))\r\n\r\n%%\r\nn = 10;\r\ny_correct = 1334961;\r\nassert(isequal(c(n),y_correct))\r\n\r\n%%\r\nn = 4;\r\ny_correct = 9;\r\nassert(isequal(c(n),y_correct))\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":2242415,"edited_by":2242415,"edited_at":"2022-04-29T13:46:27.000Z","deleted_by":null,"deleted_at":null,"solvers_count":10,"test_suite_updated_at":"2022-04-29T13:46:28.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2022-04-29T13:43:22.000Z","updated_at":"2025-12-02T19:48:02.000Z","published_at":"2022-04-29T13:46:28.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\u003eThere exists a highly secretive hat consortium. Members possess identical hats. The members are invited to a meeting. All of them bring their hats, but are required to leave them in the shared cloakroom. During the meeting an earthquake strikes the region, leaving the cloakroom a mess. When the members return to the cloakroom, they find all the hats lying on the floor, rendering it impossible to determine the owners. Unwilling to dwell on this, the members each pick up a random hat and leave. Given the number of attendees \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003en\u0026gt;0\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e, the function \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ec \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003ecomputes the number of distinct events where none of the members pick up their original hat. Your task is to define this function.\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":54020,"title":"Circle Division","description":"A circle can be divided into 2 sections, by placing 2 points in arbitrary locations along its circumference and drawing a straight line between them. By adding more points and drawing a straight line from each point to every other point, the circle can be divided into more sections. For example, 3 points would divide the circle into 4 sections and 4 points into 8 sections.\r\nGiven a positive integer, n, representing the number of arbitrarily placed points on the circumference of a circle, return d, i and s, the number of straight lines, the number of intersections and the number of sections into which the circle is divided, respectively.\r\nThe only restriction on the positions of the points is that they must be placed such that no 3 lines can share a single intersection.\r\nn will always be greater than 3.\r\nExample:\r\nn = 4;\r\nd = 6\r\ni = 1\r\ns = 8\r\nExample:\r\nn = 5;\r\nd = 10\r\ni = 5\r\ns = 16","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: 460.5px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 230.25px; transform-origin: 407px 230.25px; 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: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eA circle can be divided into 2 sections, by placing 2 points in arbitrary locations along its circumference and drawing a straight line between them. By adding more points and drawing a straight line from each point to every other point, the circle can be divided into more sections. For example, 3 points would divide the circle into 4 sections and 4 points into 8 sections.\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: 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=\"\"\u003eGiven a positive integer, n, representing the number of arbitrarily placed points on the circumference of a circle, return d, i and s, the number of straight lines, the number of intersections and the number of sections into which the circle is divided, respectively.\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: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eThe only restriction on the positions of the points is that they must be placed such that no 3 lines can share a single intersection.\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: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003en will always be greater than 3.\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: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eExample:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgb(247, 247, 247); block-size: 81.75px; 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 40.875px; transform-origin: 404px 40.875px; 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.4375px; 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.2188px; transform-origin: 404px 10.2188px; 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 0px; tab-size: 4; transform-origin: 0px 0px; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003en = 4;\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4375px; 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.2188px; transform-origin: 404px 10.2188px; 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 0px; tab-size: 4; transform-origin: 0px 0px; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003ed = 6\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4375px; 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.2188px; transform-origin: 404px 10.2188px; 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 0px; tab-size: 4; transform-origin: 0px 0px; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003ei = 1\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4375px; 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.2188px; transform-origin: 404px 10.2188px; 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 0px; tab-size: 4; transform-origin: 0px 0px; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003es = 8\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: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eExample:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgb(247, 247, 247); block-size: 81.75px; 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 40.875px; transform-origin: 404px 40.875px; 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.4375px; 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.2188px; transform-origin: 404px 10.2188px; 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 0px; tab-size: 4; transform-origin: 0px 0px; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003en = 5;\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4375px; 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.2188px; transform-origin: 404px 10.2188px; 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 0px; tab-size: 4; transform-origin: 0px 0px; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003ed = 10\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4375px; 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.2188px; transform-origin: 404px 10.2188px; 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 0px; tab-size: 4; transform-origin: 0px 0px; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003ei = 5\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4375px; 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.2188px; transform-origin: 404px 10.2188px; 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 0px; tab-size: 4; transform-origin: 0px 0px; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003es = 16\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function [d,i,s] = your_fcn_name(n)\r\n    d = 1;\r\n    i = 1;\r\n    s = 1;\r\nend","test_suite":"%%\r\nfiletext = fileread('your_fcn_name.m');\r\nassert(isempty(strfind(filetext,'eval')))\r\nassert(isempty(strfind(filetext,'echo')))\r\nassert(isempty(strfind(filetext,'switch')))\r\nassert(isempty(strfind(filetext,'regexp')))\r\n\r\n%%\r\n[d,i,s] = your_fcn_name(4);\r\nassert(isequal([d i s],[6 1 8]))\r\n\r\n%%\r\n[d,i,s] = your_fcn_name(5);\r\nassert(isequal([d i s],[10 5 16]))\r\n\r\n%%\r\n[d,i,s] = your_fcn_name(7);\r\nassert(isequal([d i s],[21 35 57]))\r\n\r\n%%\r\n[d,i,s] = your_fcn_name(13);\r\nassert(isequal([d i s],[78 715 794]))\r\n\r\n%%\r\n[d,i,s] = your_fcn_name(53);\r\nassert(isequal([d i s],[1378 292825 294204]))\r\n\r\n%%\r\n[d,i,s] = your_fcn_name(100);\r\nassert(isequal([d i s],[4950 3921225 3926176]))","published":true,"deleted":false,"likes_count":0,"comments_count":0,"created_by":15521,"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":"2022-02-18T20:04:46.000Z","updated_at":"2025-12-02T20:17:27.000Z","published_at":"2022-02-18T20:04: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\u003eA circle can be divided into 2 sections, by placing 2 points in arbitrary locations along its circumference and drawing a straight line between them. By adding more points and drawing a straight line from each point to every other point, the circle can be divided into more sections. For example, 3 points would divide the circle into 4 sections and 4 points into 8 sections.\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 positive integer, n, representing the number of arbitrarily placed points on the circumference of a circle, return d, i and s, the number of straight lines, the number of intersections and the number of sections into which the circle is divided, respectively.\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 only restriction on the positions of the points is that they must be placed such that no 3 lines can share a single intersection.\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\u003en will always be greater than 3.\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\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[n = 4;\\nd = 6\\ni = 1\\ns = 8]]\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\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[n = 5;\\nd = 10\\ni = 5\\ns = 16]]\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":58946,"title":"Count block fountains","description":"A block fountain consists of rows of circles in which each row is a continuous block of circles (i.e., adjacent circles are tangent) and each circle in a row above the first touches exactly two circles on the previous row. \r\nWrite a function to compute the number of block fountains with  circles on the first row. For example, there are five block fountains with three circles on the first row. \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: 429.7px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 214.85px; transform-origin: 407px 214.85px; 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: 364.85px 8px; transform-origin: 364.85px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eA block fountain consists of rows of circles in which each row is a continuous block of circles (i.e., adjacent circles are tangent) and each circle in a row above the first touches exactly two circles on the previous row. \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: 195.125px 8px; transform-origin: 195.125px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eWrite a function to compute the number of block fountains with \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: 176.958px 8px; transform-origin: 176.958px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e circles on the first row. For example, there are five block fountains with three circles on the first row. \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 327.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 163.85px; text-align: left; transform-origin: 384px 163.85px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cimg class=\"imageNode\" width=\"543\" height=\"322\" style=\"vertical-align: baseline;width: 543px;height: 322px\" src=\"data:image/png;base64,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\" data-image-state=\"image-loaded\"\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function y = blockFountain(n)\r\n  y = factorial(n);\r\nend","test_suite":"%%\r\nassert(isequal(blockFountain(3),5))\r\n\r\n%%\r\nassert(isequal(blockFountain(5),34))\r\n\r\n%%\r\nassert(isequal(blockFountain(8),610))\r\n\r\n%%\r\nassert(isequal(blockFountain(14),196418))\r\n\r\n%%\r\nassert(isequal(blockFountain(14),196418))\r\n\r\n%%\r\nassert(isequal(blockFountain(23),1134903170))\r\n\r\n%%\r\nassert(isequal(blockFountain(28),139583862445))\r\n\r\n%%\r\nassert(isequal(blockFountain(33),17167680177565))\r\n\r\n%%\r\nassert(isequal(blockFountain(35),117669030460994))\r\n\r\n%%\r\nfiletext = fileread('blockFountain.m');\r\nillegal = contains(filetext, 'assignin') || contains(filetext, 'assert') || contains(filetext,'switch'); \r\nassert(~illegal)\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":4,"created_by":46909,"edited_by":46909,"edited_at":"2023-09-03T17:54:36.000Z","deleted_by":null,"deleted_at":null,"solvers_count":8,"test_suite_updated_at":"2023-09-03T17:54:19.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2023-09-02T14:47:44.000Z","updated_at":"2026-01-26T19:21:38.000Z","published_at":"2023-09-02T14:47:49.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\u003eA block fountain consists of rows of circles in which each row is a continuous block of circles (i.e., adjacent circles are tangent) and each circle in a row above the first touches exactly two circles on the previous row. \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 block fountains with \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 circles on the first row. For example, there are five block fountains with three circles on the first row. \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=\\\"322\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"543\\\"/\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":44735,"title":"Aztec Diamond domino tilings","description":"Consider a Cartesian grid, with verteces at integer x and y values, where every four vertices around a vacant space define a unit square. An Aztec Diamond of order d is the shape formed by all unit squares whose centers satisfy the equation:\r\n  \r\n  abs(x) + abs(y) \u003c= d\r\n\r\nGiven the order of an Aztec Diamond, d  (positive integer), return the number, n, of possible tilings using domino tiles, i.e. rectangles sized 1x2 and 2x1, such that:\r\n\r\n# The entire shape is covered\r\n# There are no overlapping tiles\r\n# None of the tiles stick out of the shape\r\n\r\nExample:\r\n\r\nAn Aztec Diamond of order 4 is shown at this \u003chttp://faculty.uml.edu/jpropp/tiling/www/aztec-definition.html URL\u003e.\r\n\r\nInput: d = 4\r\n\r\nOutput: n = 1024","description_html":"\u003cp\u003eConsider a Cartesian grid, with verteces at integer x and y values, where every four vertices around a vacant space define a unit square. An Aztec Diamond of order d is the shape formed by all unit squares whose centers satisfy the equation:\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003eabs(x) + abs(y) \u0026lt;= d\r\n\u003c/pre\u003e\u003cp\u003eGiven the order of an Aztec Diamond, d  (positive integer), return the number, n, of possible tilings using domino tiles, i.e. rectangles sized 1x2 and 2x1, such that:\u003c/p\u003e\u003col\u003e\u003cli\u003eThe entire shape is covered\u003c/li\u003e\u003cli\u003eThere are no overlapping tiles\u003c/li\u003e\u003cli\u003eNone of the tiles stick out of the shape\u003c/li\u003e\u003c/ol\u003e\u003cp\u003eExample:\u003c/p\u003e\u003cp\u003eAn Aztec Diamond of order 4 is shown at this \u003ca href = \"http://faculty.uml.edu/jpropp/tiling/www/aztec-definition.html\"\u003eURL\u003c/a\u003e.\u003c/p\u003e\u003cp\u003eInput: d = 4\u003c/p\u003e\u003cp\u003eOutput: n = 1024\u003c/p\u003e","function_template":"function n = AztecDiamond(d)\r\n  n = d;\r\nend","test_suite":"%%\r\nfiletext = fileread('AztecDiamond.m');\r\nassert(isempty(strfind(filetext,'eval')))\r\nassert(isempty(strfind(filetext,'assign')))\r\nassert(isempty(strfind(filetext,'echo')))\r\nassert(isempty(strfind(filetext,'switch')))\r\nassert(isempty(strfind(filetext,'regexp')))\r\n\r\n%%\r\nd = 1;\r\nassert(isequal(AztecDiamond(d),2))\r\n\r\n%%\r\nd = 3;\r\nassert(isequal(AztecDiamond(d),64))\r\n\r\n%%\r\nd = 6;\r\nassert(isequal(AztecDiamond(d),2097152))\r\n\r\n%%\r\nd = 7;\r\nassert(isequal(AztecDiamond(d),268435456))\r\n\r\n%%\r\nd = 9;\r\nassert(isequal(log2(AztecDiamond(d)),45))\r\n\r\n%%\r\nd = 12;\r\nassert(isequal(log2(AztecDiamond(d)),78))","published":true,"deleted":false,"likes_count":0,"comments_count":0,"created_by":15521,"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":"2018-09-01T13:12:57.000Z","updated_at":"2025-06-25T19:29:36.000Z","published_at":"2018-09-01T13:23:40.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\u003eConsider a Cartesian grid, with verteces at integer x and y values, where every four vertices around a vacant space define a unit square. An Aztec Diamond of order d is the shape formed by all unit squares whose centers satisfy the equation:\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(x) + abs(y) \u003c= d]]\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\u003eGiven the order of an Aztec Diamond, d (positive integer), return the number, n, of possible tilings using domino tiles, i.e. rectangles sized 1x2 and 2x1, such that:\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\u003eThe entire shape is covered\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\u003eThere are no overlapping tiles\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\u003eNone of the tiles stick out of the shape\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\u003eAn Aztec Diamond of order 4 is shown at this\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://faculty.uml.edu/jpropp/tiling/www/aztec-definition.html\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eURL\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\u003eInput: d = 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\u003eOutput: n = 1024\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":1483,"title":"Number of paths on a grid","description":"\r\nConsider a grid formed by n vertices vertically down, and m vertices horizontally right. Your starting point is at the top left vertex. \r\nYour destination is the bottom right vertex. You are permitted at each vertex to choose to move down or right, that is in the direction towards the destination. You are not to move on what constitutes a back step like moving left or up. If you hit the bottom boundary, or right boundary take it to be given there is only 1 way to the destination, that is following along the boundary. \r\n\r\nEx: in a 2x2 grid there are two ways. One way: First down, then right. The other way: First right, then down.   \r\n\r\n4x3 has 10 ways\r\n\r\n6x5 has 126 ways\r\n\r\nThis problem can be solved using dynamic programming but there are other methods too. \r\n\r\nProblem 7)\r\nPrev: \u003chttp://www.mathworks.com/matlabcentral/cody/problems/1482 1482\u003e\r\nNext: \u003chttp://www.mathworks.com/matlabcentral/cody/problems/1484 1484\u003e","description_html":"\u003cdiv style = \"text-align: start; line-height: 20px; 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: normal; text-decoration: none; white-space: normal; \"\u003e\u003cdiv style=\"display: block; min-width: 0px; padding-top: 0px; transform-origin: 332px 148.5px; vertical-align: baseline; perspective-origin: 332px 148.5px; \"\u003e\u003cdiv style=\"font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-bottom: 9px; margin-left: 4px; margin-right: 10px; margin-top: 2px; text-align: left; transform-origin: 309px 63px; white-space: pre-wrap; perspective-origin: 309px 63px; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"display: inline; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; transform-origin: 0px 0px; perspective-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eConsider a grid formed by n vertices vertically down, and m vertices horizontally right. Your starting point is at the top left vertex. Your destination is the bottom right vertex. You are permitted at each vertex to choose to move down or right, that is in the direction towards the destination. You are not to move on what constitutes a back step like moving left or up. If you hit the bottom boundary, or right boundary take it to be given there is only 1 way to the destination, that is following along the boundary.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-bottom: 9px; margin-left: 4px; margin-right: 10px; margin-top: 2px; text-align: left; transform-origin: 309px 21px; white-space: pre-wrap; perspective-origin: 309px 21px; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"display: inline; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; transform-origin: 0px 0px; perspective-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eEx: in a 2x2 grid there are two ways. One way: First down, then right. The other way: First right, then down.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-bottom: 9px; margin-left: 4px; margin-right: 10px; margin-top: 2px; text-align: left; transform-origin: 309px 10.5px; white-space: pre-wrap; perspective-origin: 309px 10.5px; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"display: inline; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; transform-origin: 0px 0px; perspective-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e4x3 has 10 ways\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-bottom: 9px; margin-left: 4px; margin-right: 10px; margin-top: 2px; text-align: left; transform-origin: 309px 10.5px; white-space: pre-wrap; perspective-origin: 309px 10.5px; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"display: inline; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; transform-origin: 0px 0px; perspective-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e6x5 has 126 ways\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-bottom: 9px; margin-left: 4px; margin-right: 10px; margin-top: 2px; text-align: left; transform-origin: 309px 10.5px; white-space: pre-wrap; perspective-origin: 309px 10.5px; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"display: inline; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; transform-origin: 0px 0px; perspective-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eThis problem can be solved using dynamic programming but there are other methods too.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-bottom: 9px; margin-left: 4px; margin-right: 10px; margin-top: 2px; text-align: left; transform-origin: 309px 10.5px; white-space: pre-wrap; perspective-origin: 309px 10.5px; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"display: inline; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; transform-origin: 0px 0px; perspective-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eProblem 7) Prev:\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display: inline; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; transform-origin: 0px 0px; perspective-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"http://www.mathworks.com/matlabcentral/cody/problems/1482\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003e1482\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"display: inline; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; transform-origin: 0px 0px; perspective-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e Next:\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display: inline; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; transform-origin: 0px 0px; perspective-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"http://www.mathworks.com/matlabcentral/cody/problems/1484\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003e1484\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function y = paths2dest_ongrid(n,m)\r\n  y = n+m;\r\nend","test_suite":"%%\r\nm = 1; n = 1 ;\r\ny_correct = 1;\r\nassert(isequal(paths2dest_ongrid(m,n),y_correct))\r\n\r\n%%\r\nm = 2; n = 2 ;\r\ny_correct = 2;\r\nassert(isequal(paths2dest_ongrid(m,n),y_correct))\r\n\r\n%%\r\nm = 4; n = 3 ;\r\ny_correct = 10;\r\nassert(isequal(paths2dest_ongrid(m,n),y_correct))\r\n\r\n%%\r\nm = 6; n = 5 ;\r\ny_correct = 126;\r\nassert(isequal(paths2dest_ongrid(m,n),y_correct))\r\n\r\n%%\r\nm = 5; n = 5 ;\r\ny_correct = 70;\r\nassert(isequal(paths2dest_ongrid(m,n),y_correct))\r\n\r\n%%\r\nm = 1; n = 100 ;\r\ny_correct = 1;\r\nassert(isequal(paths2dest_ongrid(m,n),y_correct))\r\n\r\n%%\r\nm = 100; n = 1 ;\r\ny_correct = 1;\r\nassert(isequal(paths2dest_ongrid(m,n),y_correct))\r\n\r\n%%\r\nm = 2; n = 100 ;\r\ny_correct = 100;\r\nassert(isequal(paths2dest_ongrid(m,n),y_correct))\r\n\r\n%%\r\nm = 100; n = 2 ;\r\ny_correct = 100;\r\nassert(isequal(paths2dest_ongrid(m,n),y_correct))\r\n\r\n%%\r\nm = 15; n = 20 ;\r\ny_correct = 818809200;\r\nassert(isequal(paths2dest_ongrid(m,n),y_correct))\r\n","published":true,"deleted":false,"likes_count":2,"comments_count":5,"created_by":11275,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":81,"test_suite_updated_at":"2020-09-28T20:02:06.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2013-05-01T14:58:23.000Z","updated_at":"2026-03-19T08:10:31.000Z","published_at":"2013-05-01T14:58:23.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\u003eConsider a grid formed by n vertices vertically down, and m vertices horizontally right. Your starting point is at the top left vertex. Your destination is the bottom right vertex. You are permitted at each vertex to choose to move down or right, that is in the direction towards the destination. You are not to move on what constitutes a back step like moving left or up. If you hit the bottom boundary, or right boundary take it to be given there is only 1 way to the destination, that is following along the boundary.\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\u003eEx: in a 2x2 grid there are two ways. One way: First down, then right. The other way: First right, then down.\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\u003e4x3 has 10 ways\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\u003e6x5 has 126 ways\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 can be solved using dynamic programming but there are other methods too.\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\u003eProblem 7) Prev:\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/1482\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e1482\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e Next:\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/1484\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e1484\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\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":44066,"title":"Number of paths on a 3d grid","description":"This problem is inspired by \u003chttps://www.mathworks.com/matlabcentral/cody/problems/1483-number-of-paths-on-a-grid\u003e, which you might want to solve first.\r\n\r\nConsider a 3d grid formed by n vertices vertically down, m vertices horizontally right, l vertices horizontally front. Your starting point is at the top left front vertex. Your destination is the bottom right back vertex. (From one corner to the furthest corner) You are permitted at each vertex to choose to move down,  right or back, that is in the direction towards the destination. You are not to move on what constitutes a back step like moving left, up, or front. If you hit the bottom boundary, right boundary, or back boundary, take it to be given that you move along the 2d boundary.\r\n\r\nEx: in a 2x2X2 grid there are 6 ways. (down, right, back), (d,b,r), (r,d,b), (r,b,d), (b,r,d), (b,d,r)\r\n\r\n4x3x2 has 60 ways\r\n\r\n6x5x4 has 27720 ways\r\n\r\nThis problem can be solved using dynamic programming but there are other methods too.\r\n\r\n","description_html":"\u003cp\u003eThis problem is inspired by \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/1483-number-of-paths-on-a-grid\"\u003ehttps://www.mathworks.com/matlabcentral/cody/problems/1483-number-of-paths-on-a-grid\u003c/a\u003e, which you might want to solve first.\u003c/p\u003e\u003cp\u003eConsider a 3d grid formed by n vertices vertically down, m vertices horizontally right, l vertices horizontally front. Your starting point is at the top left front vertex. Your destination is the bottom right back vertex. (From one corner to the furthest corner) You are permitted at each vertex to choose to move down,  right or back, that is in the direction towards the destination. You are not to move on what constitutes a back step like moving left, up, or front. If you hit the bottom boundary, right boundary, or back boundary, take it to be given that you move along the 2d boundary.\u003c/p\u003e\u003cp\u003eEx: in a 2x2X2 grid there are 6 ways. (down, right, back), (d,b,r), (r,d,b), (r,b,d), (b,r,d), (b,d,r)\u003c/p\u003e\u003cp\u003e4x3x2 has 60 ways\u003c/p\u003e\u003cp\u003e6x5x4 has 27720 ways\u003c/p\u003e\u003cp\u003eThis problem can be solved using dynamic programming but there are other methods too.\u003c/p\u003e","function_template":"function y = count3dPath(x)\r\n  y = x;\r\nend","test_suite":"%%\r\nm = 2; n = 2 ; l = 5;\r\ny_correct = 30;\r\nassert(isequal(count3dPath(m,n,l),y_correct))\r\n \t\t\r\n%%\r\nm = 8; n = 5 ; l = 2;\r\ny_correct = 3960;\r\nassert(isequal(count3dPath(m,n,l),y_correct))\r\n\t\r\n%%\r\nm = 5; n = 5 ; l = 10;\r\ny_correct = 1701700;\r\nassert(isequal(count3dPath(m,n,l),y_correct))\r\n\t\r\n%%\r\nm = 8; n = 4 ; l=2;\r\ny_correct = 1320;\r\nassert(isequal(count3dPath(m,n,l),y_correct))\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":1,"created_by":115733,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":53,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2017-02-14T00:01:08.000Z","updated_at":"2026-03-19T08:12:10.000Z","published_at":"2017-02-14T00:01:08.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 problem is inspired by\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/1483-number-of-paths-on-a-grid\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026lt;https://www.mathworks.com/matlabcentral/cody/problems/1483-number-of-paths-on-a-grid\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026gt;, which you might want to solve first.\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 a 3d grid formed by n vertices vertically down, m vertices horizontally right, l vertices horizontally front. Your starting point is at the top left front vertex. Your destination is the bottom right back vertex. (From one corner to the furthest corner) You are permitted at each vertex to choose to move down, right or back, that is in the direction towards the destination. You are not to move on what constitutes a back step like moving left, up, or front. If you hit the bottom boundary, right boundary, or back boundary, take it to be given that you move along the 2d boundary.\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\u003eEx: in a 2x2X2 grid there are 6 ways. (down, right, back), (d,b,r), (r,d,b), (r,b,d), (b,r,d), (b,d,r)\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\u003e4x3x2 has 60 ways\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\u003e6x5x4 has 27720 ways\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\u003eThis problem can be solved using dynamic programming but there are other methods too.\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":1463,"title":"Pascal's Matrix","description":"Given an integer n \u0026ge; 0, generate the ( _n_+1) \u0026times; ( _n_+1) lower triangular \u003chttp://en.wikipedia.org/wiki/Pascal_matrix Pascal's Matrix\u003e.\r\n\r\n*Examples*:\r\n\r\n pascalMat(0)\r\n ans =\r\n     1\r\n\r\n \r\n pascalMat(1)\r\n ans =\r\n     1     0 \r\n     1     1 \r\n \r\n pascalMat(2)\r\n ans =\r\n     1     0     0\r\n     1     1     0\r\n     1     2     1\r\n\r\nNeither *string operations* nor *interpolations* are allowed!\r\n","description_html":"\u003cp\u003eGiven an integer n \u0026ge; 0, generate the ( \u003ci\u003en\u003c/i\u003e+1) \u0026times; ( \u003ci\u003en\u003c/i\u003e+1) lower triangular \u003ca href = \"http://en.wikipedia.org/wiki/Pascal_matrix\"\u003ePascal's Matrix\u003c/a\u003e.\u003c/p\u003e\u003cp\u003e\u003cb\u003eExamples\u003c/b\u003e:\u003c/p\u003e\u003cpre\u003e pascalMat(0)\r\n ans =\r\n     1\u003c/pre\u003e\u003cpre\u003e pascalMat(1)\r\n ans =\r\n     1     0 \r\n     1     1 \u003c/pre\u003e\u003cpre\u003e pascalMat(2)\r\n ans =\r\n     1     0     0\r\n     1     1     0\r\n     1     2     1\u003c/pre\u003e\u003cp\u003eNeither \u003cb\u003estring operations\u003c/b\u003e nor \u003cb\u003einterpolations\u003c/b\u003e are allowed!\u003c/p\u003e","function_template":"function P = pascalMat(n)\r\n  P = n;\r\nend","test_suite":"%%\r\nuser_solution = fileread('pascalMat.m');\r\nassert(isempty(strfind(user_solution,'regexp')));\r\nassert(isempty(strfind(user_solution,'2str')));\r\nassert(isempty(strfind(user_solution,'str2')));\r\nassert(isempty(strfind(user_solution,'interp')));\r\nassert(isempty(strfind(user_solution,'printf')));\r\nassert(isempty(strfind(user_solution,'assert')));\r\n\r\n%%\r\nn = 0;\r\nP_correct = [\r\n    1\r\n    ];\r\nassert(isequal(pascalMat(n),P_correct));\r\n\r\n%%\r\nn = 1;\r\nP_correct = [\r\n    1  0\r\n    1  1\r\n    ];\r\nassert(isequal(pascalMat(n),P_correct));\r\n\r\n%%\r\nn = 2;\r\nP_correct = [\r\n    1  0  0\r\n    1  1  0\r\n    1  2  1\r\n    ];\r\nassert(isequal(pascalMat(n),P_correct));\r\n\r\n%%\r\nn = 3;\r\nP_correct = [\r\n    1  0  0  0\r\n    1  1  0  0\r\n    1  2  1  0\r\n    1  3  3  1\r\n    ];\r\nassert(isequal(pascalMat(n),P_correct));\r\n\r\n%%\r\nn = 4;\r\nP_correct = [\r\n    1  0  0  0  0\r\n    1  1  0  0  0\r\n    1  2  1  0  0\r\n    1  3  3  1  0\r\n    1  4  6  4  1\r\n    ];\r\nassert(isequal(pascalMat(n),P_correct));\r\n\r\n%%\r\nn = 5;\r\nP_correct = [\r\n    1   0   0   0   0   0\r\n    1   1   0   0   0   0\r\n    1   2   1   0   0   0\r\n    1   3   3   1   0   0\r\n    1   4   6   4   1   0\r\n    1   5  10  10   5   1\r\n    ];\r\nassert(isequal(pascalMat(n),P_correct));\r\n\r\n%%\r\nn = 6;\r\nP_correct = [\r\n    1   0   0   0   0   0   0\r\n    1   1   0   0   0   0   0\r\n    1   2   1   0   0   0   0\r\n    1   3   3   1   0   0   0\r\n    1   4   6   4   1   0   0\r\n    1   5  10  10   5   1   0\r\n    1   6  15  20  15   6   1\r\n    ];\r\nassert(isequal(pascalMat(n),P_correct));\r\n\r\n%%\r\nn = 7;\r\nP_correct = [\r\n    1   0   0   0   0   0   0   0\r\n    1   1   0   0   0   0   0   0\r\n    1   2   1   0   0   0   0   0\r\n    1   3   3   1   0   0   0   0\r\n    1   4   6   4   1   0   0   0\r\n    1   5  10  10   5   1   0   0\r\n    1   6  15  20  15   6   1   0\r\n    1   7  21  35  35  21   7   1\r\n    ];\r\nassert(isequal(pascalMat(n),P_correct));\r\n\r\n%%\r\nn = 8;\r\nP_correct = [\r\n    1   0   0   0   0   0   0   0   0\r\n    1   1   0   0   0   0   0   0   0\r\n    1   2   1   0   0   0   0   0   0\r\n    1   3   3   1   0   0   0   0   0\r\n    1   4   6   4   1   0   0   0   0\r\n    1   5  10  10   5   1   0   0   0\r\n    1   6  15  20  15   6   1   0   0\r\n    1   7  21  35  35  21   7   1   0\r\n    1   8  28  56  70  56  28   8   1\r\n    ];\r\nassert(isequal(pascalMat(n),P_correct));\r\n\r\n%%\r\nn = 9;\r\nP_correct = [\r\n    1    0    0    0    0    0    0    0    0    0\r\n    1    1    0    0    0    0    0    0    0    0\r\n    1    2    1    0    0    0    0    0    0    0\r\n    1    3    3    1    0    0    0    0    0    0\r\n    1    4    6    4    1    0    0    0    0    0\r\n    1    5   10   10    5    1    0    0    0    0\r\n    1    6   15   20   15    6    1    0    0    0\r\n    1    7   21   35   35   21    7    1    0    0\r\n    1    8   28   56   70   56   28    8    1    0\r\n    1    9   36   84  126  126   84   36    9    1\r\n    ];\r\nassert(isequal(pascalMat(n),P_correct));\r\n\r\n%%\r\nn = 10;\r\nP_correct = [\r\n    1    0    0    0    0    0    0    0    0    0    0\r\n    1    1    0    0    0    0    0    0    0    0    0\r\n    1    2    1    0    0    0    0    0    0    0    0\r\n    1    3    3    1    0    0    0    0    0    0    0\r\n    1    4    6    4    1    0    0    0    0    0    0\r\n    1    5   10   10    5    1    0    0    0    0    0\r\n    1    6   15   20   15    6    1    0    0    0    0\r\n    1    7   21   35   35   21    7    1    0    0    0\r\n    1    8   28   56   70   56   28    8    1    0    0\r\n    1    9   36   84  126  126   84   36    9    1    0\r\n    1   10   45  120  210  252  210  120   45   10    1\r\n    ];\r\nassert(isequal(pascalMat(n),P_correct));\r\n\r\n%%\r\nn = 11;\r\nP_correct = [\r\n    1    0    0    0    0    0    0    0    0    0    0    0\r\n    1    1    0    0    0    0    0    0    0    0    0    0\r\n    1    2    1    0    0    0    0    0    0    0    0    0\r\n    1    3    3    1    0    0    0    0    0    0    0    0\r\n    1    4    6    4    1    0    0    0    0    0    0    0\r\n    1    5   10   10    5    1    0    0    0    0    0    0\r\n    1    6   15   20   15    6    1    0    0    0    0    0\r\n    1    7   21   35   35   21    7    1    0    0    0    0\r\n    1    8   28   56   70   56   28    8    1    0    0    0\r\n    1    9   36   84  126  126   84   36    9    1    0    0\r\n    1   10   45  120  210  252  210  120   45   10    1    0\r\n    1   11   55  165  330  462  462  330  165   55   11    1\r\n    ];\r\nassert(isequal(pascalMat(n),P_correct));\r\n\r\n%%\r\nn = 12;\r\nP_correct = [\r\n    1    0    0    0    0    0    0    0    0    0    0    0    0\r\n    1    1    0    0    0    0    0    0    0    0    0    0    0\r\n    1    2    1    0    0    0    0    0    0    0    0    0    0\r\n    1    3    3    1    0    0    0    0    0    0    0    0    0\r\n    1    4    6    4    1    0    0    0    0    0    0    0    0\r\n    1    5   10   10    5    1    0    0    0    0    0    0    0\r\n    1    6   15   20   15    6    1    0    0    0    0    0    0\r\n    1    7   21   35   35   21    7    1    0    0    0    0    0\r\n    1    8   28   56   70   56   28    8    1    0    0    0    0\r\n    1    9   36   84  126  126   84   36    9    1    0    0    0\r\n    1   10   45  120  210  252  210  120   45   10    1    0    0\r\n    1   11   55  165  330  462  462  330  165   55   11    1    0\r\n    1   12   66  220  495  792  924  792  495  220   66   12    1\r\n    ];\r\nassert(isequal(pascalMat(n),P_correct));\r\n\r\n%%\r\nn = 13;\r\nP_correct = [\r\n    1     0     0     0     0     0     0     0     0     0     0     0     0     0\r\n    1     1     0     0     0     0     0     0     0     0     0     0     0     0\r\n    1     2     1     0     0     0     0     0     0     0     0     0     0     0\r\n    1     3     3     1     0     0     0     0     0     0     0     0     0     0\r\n    1     4     6     4     1     0     0     0     0     0     0     0     0     0\r\n    1     5    10    10     5     1     0     0     0     0     0     0     0     0\r\n    1     6    15    20    15     6     1     0     0     0     0     0     0     0\r\n    1     7    21    35    35    21     7     1     0     0     0     0     0     0\r\n    1     8    28    56    70    56    28     8     1     0     0     0     0     0\r\n    1     9    36    84   126   126    84    36     9     1     0     0     0     0\r\n    1    10    45   120   210   252   210   120    45    10     1     0     0     0\r\n    1    11    55   165   330   462   462   330   165    55    11     1     0     0\r\n    1    12    66   220   495   792   924   792   495   220    66    12     1     0\r\n    1    13    78   286   715  1287  1716  1716  1287   715   286    78    13     1\r\n    ];\r\nassert(isequal(pascalMat(n),P_correct));\r\n\r\n%%\r\nn = 14;\r\nP_correct = [\r\n    1              0              0              0              0              0              0              0              0              0              0              0              0              0              0\r\n    1              1              0              0              0              0              0              0              0              0              0              0              0              0              0\r\n    1              2              1              0              0              0              0              0              0              0              0              0              0              0              0\r\n    1              3              3              1              0              0              0              0              0              0              0              0              0              0              0\r\n    1              4              6              4              1              0              0              0              0              0              0              0              0              0              0\r\n    1              5             10             10              5              1              0              0              0              0              0              0              0              0              0\r\n    1              6             15             20             15              6              1              0              0              0              0              0              0              0              0\r\n    1              7             21             35             35             21              7              1              0              0              0              0              0              0              0\r\n    1              8             28             56             70             56             28              8              1              0              0              0              0              0              0\r\n    1              9             36             84            126            126             84             36              9              1              0              0              0              0              0\r\n    1             10             45            120            210            252            210            120             45             10              1              0              0              0              0\r\n    1             11             55            165            330            462            462            330            165             55             11              1              0              0              0\r\n    1             12             66            220            495            792            924            792            495            220             66             12              1              0              0\r\n    1             13             78            286            715           1287           1716           1716           1287            715            286             78             13              1              0\r\n    1             14             91            364           1001           2002           3003           3432           3003           2002           1001            364             91             14              1\r\n    ];\r\nassert(isequal(pascalMat(n),P_correct));\r\n\r\n%%\r\nn = 15;\r\nP_correct = [\r\n    1              0              0              0              0              0              0              0              0              0              0              0              0              0              0              0\r\n    1              1              0              0              0              0              0              0              0              0              0              0              0              0              0              0\r\n    1              2              1              0              0              0              0              0              0              0              0              0              0              0              0              0\r\n    1              3              3              1              0              0              0              0              0              0              0              0              0              0              0              0\r\n    1              4              6              4              1              0              0              0              0              0              0              0              0              0              0              0\r\n    1              5             10             10              5              1              0              0              0              0              0              0              0              0              0              0\r\n    1              6             15             20             15              6              1              0              0              0              0              0              0              0              0              0\r\n    1              7             21             35             35             21              7              1              0              0              0              0              0              0              0              0\r\n    1              8             28             56             70             56             28              8              1              0              0              0              0              0              0              0\r\n    1              9             36             84            126            126             84             36              9              1              0              0              0              0              0              0\r\n    1             10             45            120            210            252            210            120             45             10              1              0              0              0              0              0\r\n    1             11             55            165            330            462            462            330            165             55             11              1              0              0              0              0\r\n    1             12             66            220            495            792            924            792            495            220             66             12              1              0              0              0\r\n    1             13             78            286            715           1287           1716           1716           1287            715            286             78             13              1              0              0\r\n    1             14             91            364           1001           2002           3003           3432           3003           2002           1001            364             91             14              1              0\r\n    1             15            105            455           1365           3003           5005           6435           6435           5005           3003           1365            455            105             15              1\r\n    ];\r\nassert(isequal(pascalMat(n),P_correct));\r\n\r\n","published":true,"deleted":false,"likes_count":6,"comments_count":0,"created_by":10352,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":382,"test_suite_updated_at":"2013-04-28T07:09:30.000Z","rescore_all_solutions":false,"group_id":18,"created_at":"2013-04-27T13:20:43.000Z","updated_at":"2026-03-31T18:04:35.000Z","published_at":"2013-04-27T13:43: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=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eGiven an integer n ≥ 0, generate 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:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003en\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e+1) × (\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\u003en\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e+1) lower triangular\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/Pascal_matrix\\\"\u003e\u003cw:r\u003e\u003cw:t\u003ePascal's Matrix\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:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eExamples\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=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[ pascalMat(0)\\n ans =\\n     1\\n\\n pascalMat(1)\\n ans =\\n     1     0 \\n     1     1 \\n\\n pascalMat(2)\\n ans =\\n     1     0     0\\n     1     1     0\\n     1     2     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\u003eNeither\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\u003estring operations\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e nor\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\u003einterpolations\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e are allowed!\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":52629,"title":"Count the ways to draw non-intersecting chords between points on a circle","description":"There are 9 ways to draw non-intersecting chords between four points on the perimeter of a circle (including no chords at all). In this case there is no way to draw three chords between the four points because two would have to intersect at one of the points or elsewhere. \r\nWrite a function to count the ways to draw non-intersecting chords between a given number of points.\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: 467.517px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 233.758px; transform-origin: 407px 233.758px; 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: 375.758px 8.05px; transform-origin: 375.758px 8.05px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThere are 9 ways to draw non-intersecting chords between four points on the perimeter of a circle (including no chords at all). In this case there is no way to draw three chords between the four points because two would have to intersect at one of the points or elsewhere. \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: 313.383px 8.05px; transform-origin: 313.383px 8.05px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eWrite a function to count the ways to draw non-intersecting chords between a given number of points.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 365.517px; 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 182.758px; text-align: left; transform-origin: 384px 182.758px; 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: 640px;height: 360px\" src=\"data:image/png;base64,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\" data-image-state=\"image-loaded\" width=\"640\" height=\"360\"\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function y = numChords(n)\r\n  y = f(n)\r\nend","test_suite":"%%\r\nn = 4;\r\ny_correct = 9;\r\nassert(isequal(numChords(n),y_correct))\r\n\r\n%%\r\nn = 7;\r\ny_correct = 127;\r\nassert(isequal(numChords(n),y_correct))\r\n\r\n%%\r\nn = 9;\r\ny_correct = 835;\r\nassert(isequal(numChords(n),y_correct))\r\n\r\n%%\r\nn = 15;\r\ny_correct = 310572;\r\nassert(isequal(numChords(n),y_correct))\r\n\r\n%%\r\nn = 20;\r\ny_correct = 50852019;\r\nassert(isequal(numChords(n),y_correct))\r\n\r\n%%\r\nn = 25;\r\ny_correct = 9043402501;\r\nassert(isequal(numChords(n),y_correct))\r\n\r\n%%\r\nn = 30;\r\ny_correct = 1697385471211;\r\nassert(isequal(numChords(n),y_correct))\r\n\r\n%%\r\nn = 33;\r\ny_correct = 40002464776083;\r\nassert(isequal(numChords(n),y_correct))\r\n\r\n%%\r\nn1 = 5;\r\nyy_correct = 142547559;\r\nassert(isequal(numChords(numChords(n1)),yy_correct))\r\n\r\n%%\r\nfiletext = fileread('numChords.m');\r\nillegal = contains(filetext, 'assignin') || contains(filetext, 'regexp') || contains(filetext, 'oeis'); \r\nassert(~illegal)","published":true,"deleted":false,"likes_count":1,"comments_count":1,"created_by":46909,"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":"2021-08-26T04:40:18.000Z","updated_at":"2026-01-15T18:19:29.000Z","published_at":"2021-08-28T21:24:11.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\u003eThere are 9 ways to draw non-intersecting chords between four points on the perimeter of a circle (including no chords at all). In this case there is no way to draw three chords between the four points because two would have to intersect at one of the points or elsewhere. \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 count the ways to draw non-intersecting chords between a given number of points.\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=\\\"360\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"640\\\"/\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":44072,"title":"Number of paths on a n-dimensional grid","description":"This problem is inspired by \u003chttps://www.mathworks.com/matlabcentral/cody/problems/1483-number-of-paths-on-a-grid\u003e and  \u003chttps://www.mathworks.com/matlabcentral/cody/problems/44066-number-of-paths-on-a-3d-grid\u003e, which you might want to solve first.\r\n \r\nConsider n-dimensional grid, and you are moving from one corner to the farthest corner in a minimal number of moves. Each move corresponds to moving to a neighbouring hypercube (among possible up to 2*n neighbours). How many ways are there?\r\n\r\nInput format is a row array of size \"d\" (for d dimension) with number of grid points on each direction.\r\n\r\nOptional: can you solve it without loops?","description_html":"\u003cp\u003eThis problem is inspired by \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/1483-number-of-paths-on-a-grid\"\u003ehttps://www.mathworks.com/matlabcentral/cody/problems/1483-number-of-paths-on-a-grid\u003c/a\u003e and  \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/44066-number-of-paths-on-a-3d-grid\"\u003ehttps://www.mathworks.com/matlabcentral/cody/problems/44066-number-of-paths-on-a-3d-grid\u003c/a\u003e, which you might want to solve first.\u003c/p\u003e\u003cp\u003eConsider n-dimensional grid, and you are moving from one corner to the farthest corner in a minimal number of moves. Each move corresponds to moving to a neighbouring hypercube (among possible up to 2*n neighbours). How many ways are there?\u003c/p\u003e\u003cp\u003eInput format is a row array of size \"d\" (for d dimension) with number of grid points on each direction.\u003c/p\u003e\u003cp\u003eOptional: can you solve it without loops?\u003c/p\u003e","function_template":"function y = countNdPath(NdRowVector)\r\n  y = sum(NdRowVector);\r\nend","test_suite":"%%\r\nNdRowVector = [3,3,3,3,3];\r\ny_correct = 113400;\r\nassert(isequal(countNdPath(NdRowVector),y_correct))\r\n\r\n%%\r\nNdRowVector = [1,3,3,3,3,1,1,1,3,3];\r\ny_correct = 7484400;\r\nassert(isequal(countNdPath(NdRowVector),y_correct))\r\n\r\n%%\r\nNdRowVector = [2,2,2,2,2,2,2,1,1,2,2,2,2];\r\ny_correct = 39916800;\r\nassert(isequal(countNdPath(NdRowVector),y_correct))","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":115733,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":50,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2017-02-14T01:28:35.000Z","updated_at":"2025-12-16T03:16:34.000Z","published_at":"2017-02-14T01:28:35.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 problem is inspired by\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/1483-number-of-paths-on-a-grid\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026lt;https://www.mathworks.com/matlabcentral/cody/problems/1483-number-of-paths-on-a-grid\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026gt; 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://www.mathworks.com/matlabcentral/cody/problems/44066-number-of-paths-on-a-3d-grid\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026lt;https://www.mathworks.com/matlabcentral/cody/problems/44066-number-of-paths-on-a-3d-grid\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026gt;, which you might want to solve first.\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 n-dimensional grid, and you are moving from one corner to the farthest corner in a minimal number of moves. Each move corresponds to moving to a neighbouring hypercube (among possible up to 2*n neighbours). How many ways are there?\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\u003eInput format is a row array of size \\\"d\\\" (for d dimension) with number of grid points on each direction.\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\u003eOptional: can you solve it without loops?\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":37,"title":"Pascal's Triangle","description":"Given an integer n \u003e= 0, generate the length n+1 row vector representing the n-th row of \u003chttp://en.wikipedia.org/wiki/Pascals_triangle Pascal's Triangle\u003e.\r\n\r\nExamples:\r\n\r\n pascalTri(0)\r\n ans =\r\n     1\r\n\r\n pascalTri(1)\r\n ans =\r\n     1     1\r\n\r\n pascalTri(2)\r\n ans =\r\n     1     2     1\r\n","description_html":"\u003cp\u003eGiven an integer n \u003e= 0, generate the length n+1 row vector representing the n-th row of \u003ca href=\"http://en.wikipedia.org/wiki/Pascals_triangle\"\u003ePascal's Triangle\u003c/a\u003e.\u003c/p\u003e\u003cp\u003eExamples:\u003c/p\u003e\u003cpre\u003e pascalTri(0)\r\n ans =\r\n     1\u003c/pre\u003e\u003cpre\u003e pascalTri(1)\r\n ans =\r\n     1     1\u003c/pre\u003e\u003cpre\u003e pascalTri(2)\r\n ans =\r\n     1     2     1\u003c/pre\u003e","function_template":"function y = pascalTri(n)\r\ny = n;\r\nend","test_suite":"%%\r\nn = 0;\r\ncorrect = [1];\r\nassert(isequal(pascalTri(n),correct))\r\n\r\n\r\n%%\r\nn = 1;\r\ncorrect = [1 1];\r\nassert(isequal(pascalTri(n),correct))\r\n\r\n\r\n%%\r\nn = 2;\r\ncorrect = [1 2 1];\r\nassert(isequal(pascalTri(n),correct))\r\n\r\n\r\n%%\r\nn = 3;\r\ncorrect = [1 3 3 1];\r\nassert(isequal(pascalTri(n),correct))\r\n\r\n\r\n%%\r\nn = 10;\r\ncorrect = [1 10 45 120 210 252 210 120 45 10 1];\r\nassert(isequal(pascalTri(n),correct))\r\n\r\n","published":true,"deleted":false,"likes_count":26,"comments_count":5,"created_by":1,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":4491,"test_suite_updated_at":"2012-01-26T14:20:57.000Z","rescore_all_solutions":false,"group_id":2,"created_at":"2012-01-18T01:00:22.000Z","updated_at":"2026-03-10T07:00:26.000Z","published_at":"2012-01-18T01:00: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=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eGiven an integer n \u0026gt;= 0, generate the length n+1 row vector representing the n-th row 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=\\\"http://en.wikipedia.org/wiki/Pascals_triangle\\\"\u003e\u003cw:r\u003e\u003cw:t\u003ePascal's Triangle\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\u003eExamples:\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[ pascalTri(0)\\n ans =\\n     1\\n\\n pascalTri(1)\\n ans =\\n     1     1\\n\\n pascalTri(2)\\n ans =\\n     1     2     1]]\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":604,"title":"Next lexicographic - permutation","description":"Find next lexicographic - permutation (permutations as it would occur in a dictionary order).\r\nE.g: nextP('ABCD') = ABDC\r\nIf you can generate the next permutation, then you can also generate a 'cycle' of all permutations using a construct like,\r\n     cycle = +1;\r\n     curr = start;\r\n     while ( true )         \r\n         curr = nextP(curr);\r\n         if ( curr == start )\r\n             break;\r\n         end\r\n         cycle = cycle+1;\r\n     end\r\nFor fun, you could generate all the n! permutations of a, unique n-letter string.","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: 305.9px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 152.95px; transform-origin: 407px 152.95px; 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; 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: 285.5px 8px; transform-origin: 285.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eFind next lexicographic - permutation (permutations as it would occur in a dictionary order).\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: 86px 8px; transform-origin: 86px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eE.g: nextP('ABCD') = ABDC\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: 375.5px 8px; transform-origin: 375.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eIf you can generate the next permutation, then you can also generate a 'cycle' of all permutations using a construct like,\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgb(247, 247, 247); block-size: 183.9px; 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 91.95px; transform-origin: 404px 91.95px; 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: 64px 8.5px; tab-size: 4; transform-origin: 64px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e     cycle = +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: 72px 8.5px; tab-size: 4; transform-origin: 72px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e     curr = start;\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: 112px 8.5px; tab-size: 4; transform-origin: 112px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; perspective-origin: 20px 8.5px; transform-origin: 20px 8.5px; \"\u003e     \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: 24px 8.5px; text-decoration-color: rgb(14, 0, 255); text-emphasis-color: rgb(14, 0, 255); transform-origin: 24px 8.5px; \"\u003ewhile \u003c/span\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; perspective-origin: 68px 8.5px; transform-origin: 68px 8.5px; \"\u003e( 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: 112px 8.5px; tab-size: 4; transform-origin: 112px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e         curr = nextP(curr);\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; perspective-origin: 36px 8.5px; transform-origin: 36px 8.5px; \"\u003e         \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-color: rgb(14, 0, 255); text-emphasis-color: rgb(14, 0, 255); transform-origin: 12px 8.5px; \"\u003eif \u003c/span\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; perspective-origin: 68px 8.5px; transform-origin: 68px 8.5px; \"\u003e( curr == start )\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: 76px 8.5px; tab-size: 4; transform-origin: 76px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; perspective-origin: 52px 8.5px; transform-origin: 52px 8.5px; \"\u003e             \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: 20px 8.5px; text-decoration-color: rgb(14, 0, 255); text-emphasis-color: rgb(14, 0, 255); transform-origin: 20px 8.5px; \"\u003ebreak\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\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: 48px 8.5px; tab-size: 4; transform-origin: 48px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; perspective-origin: 36px 8.5px; transform-origin: 36px 8.5px; \"\u003e         \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-color: rgb(14, 0, 255); text-emphasis-color: rgb(14, 0, 255); transform-origin: 12px 8.5px; \"\u003eend\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         cycle = cycle+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: 32px 8.5px; tab-size: 4; transform-origin: 32px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; perspective-origin: 20px 8.5px; transform-origin: 20px 8.5px; \"\u003e     \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-color: rgb(14, 0, 255); text-emphasis-color: rgb(14, 0, 255); transform-origin: 12px 8.5px; \"\u003eend\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: 246px 8px; transform-origin: 246px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eFor fun, you could generate all the n! permutations of a, unique n-letter string.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function next = nextP(curr)\r\n    next = \r\nend\r\n","test_suite":"%%\r\nx = 'ABCD';\r\ny_correct = 'ABDC';\r\nassert(isequal(nextP(x),y_correct))\r\n%%\r\nx = 'ABDC';\r\ny_correct = 'ACBD';\r\nassert(isequal(nextP(x),y_correct))\r\n%%\r\nx = 'ACBD';\r\ny_correct = 'ACDB';\r\nassert(isequal(nextP(x),y_correct))\r\n%%\r\nx = 'ACDB';\r\ny_correct = 'ADBC';\r\nassert(isequal(nextP(x),y_correct))\r\n%%\r\nx = 'LOVE';\r\ny_correct = 'LVEO';\r\nassert(isequal(nextP(x),y_correct))\r\n%%\r\nx = 'CAST';\r\ny_correct = 'CATS';\r\nassert(isequal(nextP(x),y_correct))\r\n%%\r\nx = 'THEQUICKBROWNFOXJUMPEDOVERTHELAZYDOG';\r\ny_correct = 'THEQUICKBROWNFOXJUMPEDOVERTHELAZYGOD';\r\nassert(isequal(nextP(nextP(x)),y_correct));\r\n%%\r\ns = 1;\r\nx = 'ABCDE';\r\ny_correct = 120;\r\ny = x;\r\nwhile(1) \r\n  y = nextP(y);\r\n  if ( strcmp(x,y) ) break; end\r\n  s = s+1; \r\nend\r\nassert(s == y_correct)\r\n\r\n","published":true,"deleted":false,"likes_count":2,"comments_count":2,"created_by":3378,"edited_by":223089,"edited_at":"2023-07-21T07:24:22.000Z","deleted_by":null,"deleted_at":null,"solvers_count":53,"test_suite_updated_at":"2023-07-21T07:24:22.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2012-04-20T05:57:59.000Z","updated_at":"2026-02-13T01:03:40.000Z","published_at":"2012-04-20T17:36:03.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\u003eFind next lexicographic - permutation (permutations as it would occur in a dictionary order).\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\u003eE.g: nextP('ABCD') = ABDC\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 you can generate the next permutation, then you can also generate a 'cycle' of all permutations using a construct like,\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[     cycle = +1;\\n     curr = start;\\n     while ( true )         \\n         curr = nextP(curr);\\n         if ( curr == start )\\n             break;\\n         end\\n         cycle = cycle+1;\\n     end]]\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\u003eFor fun, you could generate all the n! permutations of a, unique n-letter string.\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":56448,"title":"nth permutation of 11...100...0","description":"Given some number of ones and zeros, numOnes and numZeros respectively, find the nth permutation of the vector [ones(1,numOnes), zeros(1,numZeros)] according to the lexicographical order.  For example, if numOnes = 3 and numZeros = 2 then there are nchoosek(5,3) = 10 permutations of 11100.  The lexicographic numbering is below\r\n1     11100\r\n2     11010\r\n3     11001\r\n4     10110\r\n5     10101\r\n6     10011\r\n7     01110\r\n8     01101\r\n9     01011\r\n10   00111\r\nso for instance nthPerm(3,2,8) = [0,1,1,0,1].  You can assume that numOnes and numZeros will always be greater than or equal to 1.  Lastly, your code should not enumerate all possibilities since one of the test cases contains billions of permutations.","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: 435px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 217.5px; transform-origin: 407px 217.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: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eGiven some number of ones and zeros, numOnes and numZeros respectively, find the nth permutation of the vector [ones(1,numOnes), zeros(1,numZeros)] according to the lexicographical order.  For example, if numOnes = 3 and numZeros = 2 then there are nchoosek(5,3) = 10 permutations of 11100.  The lexicographic numbering is below\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: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e1     11100\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: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e2     11010\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: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e3     11001\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: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e4     10110\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: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e5     10101\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: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e6     10011\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: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e7     01110\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: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e8     01101\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: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e9     01011\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: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e10   00111\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: 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=\"\"\u003eso for instance nthPerm(3,2,8) = [0,1,1,0,1].  You can assume that numOnes and numZeros will always be greater than or equal to 1.  Lastly, your code should not enumerate all possibilities since one of the test cases contains billions of permutations.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function y = nthPerm(numOnes,numZeros,n)\r\n  y = [];\r\nend","test_suite":"%%\r\nnumOnes = 1;\r\nnumZeros = 1;\r\nn = 1;\r\ny_correct = [1,0];\r\nassert(isequal(nthPerm(numOnes,numZeros,n),y_correct))\r\n\r\n%%\r\nnumOnes = 3;\r\nnumZeros = 2;\r\nn = 4;\r\ny_correct = [1,0,1,1,0];\r\nassert(isequal(nthPerm(numOnes,numZeros,n),y_correct))\r\n\r\n%%\r\nnumOnes = 10;\r\nnumZeros = 1;\r\nn = 11;\r\ny_correct = [0,1,1,1,1,1,1,1,1,1,1];\r\nassert(isequal(nthPerm(numOnes,numZeros,n),y_correct))\r\n\r\n%%\r\nnumOnes = 18;\r\nnumZeros = 7;\r\nn = 408913;\r\ny_correct = [0,1,1,0,1,1,1,0,0,0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1];\r\nassert(isequal(nthPerm(numOnes,numZeros,n),y_correct))\r\n\r\n%%\r\nnumOnes = 17;\r\nnumZeros = 23;\r\nn = 40207127;\r\ny_correct = [1,1,1,1,1,1,1,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,1,1,0,1,0,0,0,1];\r\nassert(isequal(nthPerm(numOnes,numZeros,n),y_correct))","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":2198965,"edited_by":2198965,"edited_at":"2022-11-04T08:56:28.000Z","deleted_by":null,"deleted_at":null,"solvers_count":3,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2022-11-03T23:19:23.000Z","updated_at":"2022-11-04T08:56:28.000Z","published_at":"2022-11-03T23:52:22.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\u003eGiven some number of ones and zeros, numOnes and numZeros respectively, find the nth permutation of the vector [ones(1,numOnes), zeros(1,numZeros)] according to the lexicographical order.  For example, if numOnes = 3 and numZeros = 2 then there are nchoosek(5,3) = 10 permutations of 11100.  The lexicographic numbering is below\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\u003e1     11100\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\u003e2     11010\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\u003e3     11001\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\u003e4     10110\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\u003e5     10101\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\u003e6     10011\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\u003e7     01110\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\u003e8     01101\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\u003e9     01011\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\u003e10   00111\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\u003eso for instance nthPerm(3,2,8) = [0,1,1,0,1].  You can assume that numOnes and numZeros will always be greater than or equal to 1.  Lastly, your code should not enumerate all possibilities since one of the test cases contains billions of permutations.\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":44787,"title":"What can you get for exactly amount of money(harder)","description":"Inspired by \"Problem 42996. what can you get for exactly amount of money\"\r\n\u003chttps://ww2.mathworks.cn/matlabcentral/cody/problems/42996-what-can-you-get-for-exactly-amount-of-money\u003e\r\nProblem 42996 is a good problem, but the test suit is too weak.\r\n\r\nYou go to store, where each product has price. Prices are in vector\r\n\r\nv = [ 195 125 260 440 395 290]\r\nand you have amount of money s=570\r\n\r\nQuestion is what can you buy, if you want to use whole amount of money\r\n\r\nFor this data answer is\r\n\r\nres=[ 125 125 125 195]\r\n\r\nThe answer may not be unique, return any feasible answer.\r\nDo not cheat please.\r\n\r\nIn this hard version, \r\n1 \u003c= length(v) \u003c= 50\r\n1 \u003c= s \u003c= 10000000019 (1e10 + 19)\r\n","description_html":"\u003cp\u003eInspired by \"Problem 42996. what can you get for exactly amount of money\" \u003ca href = \"https://ww2.mathworks.cn/matlabcentral/cody/problems/42996-what-can-you-get-for-exactly-amount-of-money\"\u003ehttps://ww2.mathworks.cn/matlabcentral/cody/problems/42996-what-can-you-get-for-exactly-amount-of-money\u003c/a\u003e\r\nProblem 42996 is a good problem, but the test suit is too weak.\u003c/p\u003e\u003cp\u003eYou go to store, where each product has price. Prices are in vector\u003c/p\u003e\u003cp\u003ev = [ 195 125 260 440 395 290]\r\nand you have amount of money s=570\u003c/p\u003e\u003cp\u003eQuestion is what can you buy, if you want to use whole amount of money\u003c/p\u003e\u003cp\u003eFor this data answer is\u003c/p\u003e\u003cp\u003eres=[ 125 125 125 195]\u003c/p\u003e\u003cp\u003eThe answer may not be unique, return any feasible answer.\r\nDo not cheat please.\u003c/p\u003e\u003cp\u003eIn this hard version, \r\n1 \u0026lt;= length(v) \u0026lt;= 50\r\n1 \u0026lt;= s \u0026lt;= 10000000019 (1e10 + 19)\u003c/p\u003e","function_template":"function res = buy(v, s)\r\nres = [1, 2, 3];\r\nend","test_suite":"%%\r\nv = [ 195 125 260 440 395 290];\r\ns = 570;\r\ntic\r\nres = buy(v, s);\r\ntoc\r\nassert(sum(res) == s);\r\nassert(all(ismember(res, v)))\r\n\t\r\n%%\r\nv = [ 150 180 60 40];\r\ns = 210;\r\ntic\r\nres = buy(v, s);\r\ntoc\r\nassert(sum(res) == s);\r\nassert(all(ismember(res, v)))\r\n\r\n%%\r\nv = [ 150 180 60 40];\r\ns = 1e10;\r\ntic\r\nres = buy(v, s);\r\ntoc\r\nassert(sum(res) == s);\r\nassert(all(ismember(res, v)))\r\n\r\n%%\r\nv = [123456, 963852, 753159, 7841, 122];\r\ns = 1e10+19;\r\ntic\r\nres = buy(v, s);\r\ntoc\r\nassert(sum(res) == s);\r\nassert(all(ismember(res, v)))\r\n\r\n%%\r\nv = [319,2770,462,972,8235,6949,3171,9503,345,4388,3816,7656,7952,1869,4898,4456,6464,7094,7547,2761,6798,6551,1627,1190,4984,9598,3404,5853,2239,7513];\r\ns = 1e10+19;\r\ntic;\r\nres = buy(v, s);\r\ntoc;\r\nassert(sum(res) == s);\r\nassert(all(ismember(res, v)))\r\n\r\n%%\r\nv = [3898,2417,4040,965,1320,9421,9562,5753,598,2348,3532,8212,155,431,1690,6492,7318,6478,4510,5471,2964,7447,1890,6868,1836,3685,6257,7803,812,9294,7758,4868,4359,4468,3064,5086,5108,8177,7949,6444,3787,8116,5329,3508,9391,8760,5502,6225,5871,2078];\r\ns = 1e10+19;\r\ntic;\r\nres = buy(v, s);\r\ntoc;\r\nassert(sum(res) == s);\r\nassert(all(ismember(res, v)))","published":true,"deleted":false,"likes_count":3,"comments_count":14,"created_by":8269,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":15,"test_suite_updated_at":"2018-11-12T07:09:17.000Z","rescore_all_solutions":false,"group_id":71,"created_at":"2018-11-12T06:38:43.000Z","updated_at":"2025-12-14T23:03:12.000Z","published_at":"2018-11-12T06:39: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=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eInspired by \\\"Problem 42996. what can you get for exactly amount of money\\\"\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://ww2.mathworks.cn/matlabcentral/cody/problems/42996-what-can-you-get-for-exactly-amount-of-money\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026lt;https://ww2.mathworks.cn/matlabcentral/cody/problems/42996-what-can-you-get-for-exactly-amount-of-money\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026gt; Problem 42996 is a good problem, but the test suit is too weak.\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 go to store, where each product has price. Prices are in vector\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\u003ev = [ 195 125 260 440 395 290] and you have amount of money s=570\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\u003eQuestion is what can you buy, if you want to use whole amount of money\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 this data answer 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:r\u003e\u003cw:t\u003eres=[ 125 125 125 195]\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 answer may not be unique, return any feasible answer. Do not cheat please.\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 this hard version, 1 \u0026lt;= length(v) \u0026lt;= 50 1 \u0026lt;= s \u0026lt;= 10000000019 (1e10 + 19)\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":52729,"title":"Easy Sequences 21: Combinatorial Summations","description":"Create the function S(n), defined by the following summation:\r\n                               \r\nThe symbol  is the combination function ('nchoosek(a,b)' in MATLAB). 'S(n)' always yields an integer value,  if 'n' is a positive integer. Present the output modulo 1234567.\r\nNOTE: S(n) may have positive or negative values. Therefore, please use the 'mod' function instead of the 'rem' function to ensure the result would be a positive modulus.","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.440000534057617px; 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: normal; text-decoration: none; white-space: normal; \"\u003e\u003cdiv style=\"block-size: 205px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; 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; text-align: left; 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; \"\u003e\u003cspan style=\"font-weight: bold; \"\u003eCreate the function S(n), defined by the following summation\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; \"\u003e\u003cspan style=\"\"\u003e:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 66px; 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; text-align: left; 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; \"\u003e\u003cspan style=\"\"\u003e                               \u003c/span\u003e\u003c/span\u003e\u003cimg class=\"imageNode\" width=\"224\" height=\"60\" style=\"vertical-align: baseline;width: 224px;height: 60px\" src=\"data:image/gif;base64,R0lGODlh4AA8ALMAAP///wAAALq6unZ2doiIiJiYmNzc3KqqqhAQEGZmZiIiIkRERFRUVDIyMszMzO7u7iH5BAEAAAAALAAAAADgADwAAAT+EMhJq704651fGQchcGRpnmiqrmy7PoMzHUJhAIbDAAKxHYfByEUsGo/IZEaQGBoGkh1ABEgYbhhHAfBQKL/gsDgslBR8AG9Vkig8OI7FeE6v2zHl6Ta9YmDvgIGCRXlnEmoXIQSLBDJmQ4ORkpMaeU9RKQIjB5SdnpECCzGPNigGCA0KUp+sra6vsLFjAbS1tre4ubiyvL2+v8DBEkB5wsbHKlpciMgAhrEGq80ncdMABwm9odYnftMCDS8EQthvYgXS3BkFkMdd5hPgjvEEH0NbATIgR/IWDHvqMGi61mwBQByN8lFwEE5CAyzVADCY18JAQooSHiD4E5DCqVT+6YAdYEZB4YQFnCQQyDYFDYIkJisMCNlRnYKDJSnGFPBSogwBftq5iEnhAdGa3A4EyBDTQYA/Tt/I4fIPydEJM5F2bAAFw86nE5xy/HI1YwB4WpsZAOt1nth4bMOUdYjmGAJaCPLq3Zs3l1BADxbUtTCAZIWYa+cpRash1ILHkCHjzJmBgGFgBWhN3WAAneZJDP5OUMCybUlIB3qKmYuDda8FtCZ3SBBXkGoLRlOaPgmQAE2YGCsgkK3hweDKczTSGvujNAbjRY4v41EA42INAdptc8hcSXYNC0IKGDDOxsHfuJ2DEUDrciXGFdCjeKAemwCLuiUMuF10ZgCuihH+EIRoR8DAwH+jXJAASftIwBMkVJRwAHFIDECLei1EiEI/FExIQQINELhAQ9NkRgETFTBDYgkrhtEALfm10CIJFjkV3IoKxBHjIfL9YuMEbcg0A4V47KiEcrWt4OEKVzXYxTVWYIRAV9OspVt4FfyxQHeN9WiEUv8RsSULVwElgQNQ0CddAET+YhRASjXQiAX8heBGAegEx18YtAVA5Qp7nlBWoBewqU4Ag8XRHlrMGCCAA8MNs9kESynIwKWYZvqnCQrQQmAJ7pVQVqUb5Hbopg6qMoEBK3JSACK+0QkfGGsFgMCsNM4oaHAA3MqBleogwNJYB5DIkAUJUMmAdAr+4PpFZgF4mUWLjkUWGU5lNQtHAEYaIywADghlZkaGIQBJkr0CcmC3HDxJJq+EZsntqVPEGBoF/K01QzhCEZpApgAzgKoJXLUQLwmDkvDmoT5gOcEzEzSAVgEkJuuMR5POcakLEpP5lwEZMyXdMfNCMcDJxUwgIAX1hAXCxG0iQYCuKKw8n38AUoCnqAN/oaizLKz1aZbSUrAA0EiMhDSNRZtwNKgYujBOAihVwNMX7PGKwdMlRFMHpFymwHURXpfAAM0rDIDFwlg1fUJmS68aNQYJxE3EKUObMrcKdZtAAKlF5AikijGrsN+G7OqstRI3odBzPImbUN0J7NlNQqT++gHuGguPpRC2R3WIgkIBe69KdgrffTEiXGdCTASi01B9An2pv0LaF4lhJYcDvB9MzeayzNyuowXAZmvwvq/QwEEAjvBA5H4nHwt7ulRfy+OdGLV42tgukLcKoiOzUgLkl2/++edbPojASOx8Yj4DhFwRumkZc7URAui2R/yHjLC9CSCqn00KB4cmaAIbDtmD4KDXLuAJUBvS48BdbMESbV3DZlKTnzECM7ILOEBAHWyFYIKhkc8F414kmIr7ZPEOYFQlIBEcV0R4AY5foKMjT6rB9lZypghSgnS9mKE67IMfGKDsiDAYlg9/GMJOlK0jIPreFFgCqQdakQ45qtonBsa1nSt68UhewEYOjHjEk72hISv8ohqLgCYuJKCJZxIQ9tY4hwgAADs=\" data-image-state=\"image-loaded\"\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 49px; 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; text-align: left; 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; \"\u003e\u003cspan style=\"\"\u003eThe symbol \u003c/span\u003e\u003c/span\u003e\u003cimg class=\"imageNode\" width=\"15\" height=\"22\" style=\"vertical-align: baseline;width: 15px;height: 22px\" src=\"data:image/gif;base64,R0lGODlhHgAsALMAAP///wAAAJiYmIiIiKqqqmZmZrq6ujIyMu7u7iIiIkRERHZ2dtzc3BAQEFRUVMzMzCH5BAEAAAAALAAAAAAeACwAAAT+EMgpxaAYMJe7JIVHGYo4HiYlcCaSICnlCKZCxxPSMB6R4JgFK5O4ZQYDwoNHQQQeGULAY5M4UMHh5LDoCErWLsYJmzACTEzD2DB0DpfJ4pc5Mx/TzoAuSYQyeBMDJW4YZ1AATgQeDRIIXABGFGsfAWUZBgUESgUClxQKLAuNQCIFdApYpV55CVqrFHhQDWKwhgGLAZK2jroAvrwYAQOKwcILZ4vGEw0FeMrLAM3J0RIBC067wcO/cdG4v7UdG2gmZ25+KYEmBk8AVylf8ZYAA3kiDt4eoxLtnxltUigA86vQOFwEknjg1uePlx0SGvwDIEsQqQ4OagXEMOBiIndHHTb+QgRK3DuTvSZIqVNuhEczfPJlKKCKQpEOdAzU7EXSZQcDCxLqIZhBgb4YOtJkcDERnzYMOoGswCHAoYgHROMdNfRqQgQAOw==\" data-image-state=\"image-loaded\"\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; \"\u003e\u003cspan style=\"\"\u003e is the combination function ('nchoosek(a,b)' in MATLAB). 'S(n)' always yields an integer value,  if 'n' is a positive integer. Present the output modulo 1234567.\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; text-align: left; 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; \"\u003e\u003cspan style=\"font-weight: bold; \"\u003eNOTE:\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; \"\u003e\u003cspan style=\"\"\u003e S(n) may have positive or negative values. Therefore, please use the 'mod' function instead of the 'rem' function to ensure the result would be a positive modulus.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function s = S(n)\r\n    s = mod(sum(arrayfun(@(k) (-1)^k*nchoosek((10^n-1),2*k),0:(10^n-2)/2)),1234567);\r\nend","test_suite":"%%\r\nn = 1;\r\ns_correct = 16;\r\nassert(isequal(S(n),s_correct))\r\n%%\r\nn = 2;\r\ns_correct = 1057020;\r\nassert(isequal(S(n),s_correct))\r\n%%\r\nn = 3;\r\ns_correct = 915039;\r\nassert(isequal(S(n),s_correct))\r\n%%\r\nn = 4;\r\ns_correct = 254383;\r\nassert(isequal(S(n),s_correct))\r\n%%\r\nn = 5;\r\ns_correct = 401225;\r\nassert(isequal(S(n),s_correct))\r\n%%\r\nns = 6:20;\r\nss = sum(arrayfun(@(n) S(n),ns))\r\nss_correct = 7742071;\r\nassert(isequal(ss,ss_correct))\r\n%%\r\nfiletext = fileread('S.m');\r\nnot_allowed = contains(filetext, 'BigInteger') || contains(filetext, 'java'); \r\nassert(~not_allowed)","published":true,"deleted":false,"likes_count":3,"comments_count":6,"created_by":255988,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":9,"test_suite_updated_at":"2021-09-19T20:21:05.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2021-09-18T16:25:58.000Z","updated_at":"2025-12-22T16:43:13.000Z","published_at":"2021-09-18T18:10:29.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:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eCreate the function S(n), defined by the following summation\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:r\u003e\u003cw:t\u003e                               \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"60\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"224\\\"/\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\u003eThe symbol \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"22\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"15\\\"/\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=\\\"rId2\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e is the combination function ('nchoosek(a,b)' in MATLAB). 'S(n)' always yields an integer value,  if 'n' is a positive integer. Present the output modulo 1234567.\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\u003eNOTE:\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e S(n) may have positive or negative values. Therefore, please use the 'mod' function instead of the 'rem' function to ensure the result would be a positive modulus.\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.gif\",\"relationshipId\":\"rId1\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"target\":\"/media/image2.gif\",\"relationshipId\":\"rId2\"}]},{\"partUri\":\"/media/image1.gif\",\"contentType\":\"image/gif\",\"content\":\"data:image/gif;base64,R0lGODlh4AA8ALMAAP///wAAALq6unZ2doiIiJiYmNzc3KqqqhAQEGZmZiIiIkRERFRUVDIyMszMzO7u7iH5BAEAAAAALAAAAADgADwAAAT+EMhJq704651fGQchcGRpnmiqrmy7PoMzHUJhAIbDAAKxHYfByEUsGo/IZEaQGBoGkh1ABEgYbhhHAfBQKL/gsDgslBR8AG9Vkig8OI7FeE6v2zHl6Ta9YmDvgIGCRXlnEmoXIQSLBDJmQ4ORkpMaeU9RKQIjB5SdnpECCzGPNigGCA0KUp+sra6vsLFjAbS1tre4ubiyvL2+v8DBEkB5wsbHKlpciMgAhrEGq80ncdMABwm9odYnftMCDS8EQthvYgXS3BkFkMdd5hPgjvEEH0NbATIgR/IWDHvqMGi61mwBQByN8lFwEE5CAyzVADCY18JAQooSHiD4E5DCqVT+6YAdYEZB4YQFnCQQyDYFDYIkJisMCNlRnYKDJSnGFPBSogwBftq5iEnhAdGa3A4EyBDTQYA/Tt/I4fIPydEJM5F2bAAFw86nE5xy/HI1YwB4WpsZAOt1nth4bMOUdYjmGAJaCPLq3Zs3l1BADxbUtTCAZIWYa+cpRash1ILHkCHjzJmBgGFgBWhN3WAAneZJDP5OUMCybUlIB3qKmYuDda8FtCZ3SBBXkGoLRlOaPgmQAE2YGCsgkK3hweDKczTSGvujNAbjRY4v41EA42INAdptc8hcSXYNC0IKGDDOxsHfuJ2DEUDrciXGFdCjeKAemwCLuiUMuF10ZgCuihH+EIRoR8DAwH+jXJAASftIwBMkVJRwAHFIDECLei1EiEI/FExIQQINELhAQ9NkRgETFTBDYgkrhtEALfm10CIJFjkV3IoKxBHjIfL9YuMEbcg0A4V47KiEcrWt4OEKVzXYxTVWYIRAV9OspVt4FfyxQHeN9WiEUv8RsSULVwElgQNQ0CddAET+YhRASjXQiAX8heBGAegEx18YtAVA5Qp7nlBWoBewqU4Ag8XRHlrMGCCAA8MNs9kESynIwKWYZvqnCQrQQmAJ7pVQVqUb5Hbopg6qMoEBK3JSACK+0QkfGGsFgMCsNM4oaHAA3MqBleogwNJYB5DIkAUJUMmAdAr+4PpFZgF4mUWLjkUWGU5lNQtHAEYaIywADghlZkaGIQBJkr0CcmC3HDxJJq+EZsntqVPEGBoF/K01QzhCEZpApgAzgKoJXLUQLwmDkvDmoT5gOcEzEzSAVgEkJuuMR5POcakLEpP5lwEZMyXdMfNCMcDJxUwgIAX1hAXCxG0iQYCuKKw8n38AUoCnqAN/oaizLKz1aZbSUrAA0EiMhDSNRZtwNKgYujBOAihVwNMX7PGKwdMlRFMHpFymwHURXpfAAM0rDIDFwlg1fUJmS68aNQYJxE3EKUObMrcKdZtAAKlF5AikijGrsN+G7OqstRI3odBzPImbUN0J7NlNQqT++gHuGguPpRC2R3WIgkIBe69KdgrffTEiXGdCTASi01B9An2pv0LaF4lhJYcDvB9MzeayzNyuowXAZmvwvq/QwEEAjvBA5H4nHwt7ulRfy+OdGLV42tgukLcKoiOzUgLkl2/++edbPojASOx8Yj4DhFwRumkZc7URAui2R/yHjLC9CSCqn00KB4cmaAIbDtmD4KDXLuAJUBvS48BdbMESbV3DZlKTnzECM7ILOEBAHWyFYIKhkc8F414kmIr7ZPEOYFQlIBEcV0R4AY5foKMjT6rB9lZypghSgnS9mKE67IMfGKDsiDAYlg9/GMJOlK0jIPreFFgCqQdakQ45qtonBsa1nSt68UhewEYOjHjEk72hISv8ohqLgCYuJKCJZxIQ9tY4hwgAADs=\",\"relationship\":null},{\"partUri\":\"/media/image2.gif\",\"contentType\":\"image/gif\",\"content\":\"data:image/gif;base64,R0lGODlhHgAsALMAAP///wAAAJiYmIiIiKqqqmZmZrq6ujIyMu7u7iIiIkRERHZ2dtzc3BAQEFRUVMzMzCH5BAEAAAAALAAAAAAeACwAAAT+EMgpxaAYMJe7JIVHGYo4HiYlcCaSICnlCKZCxxPSMB6R4JgFK5O4ZQYDwoNHQQQeGULAY5M4UMHh5LDoCErWLsYJmzACTEzD2DB0DpfJ4pc5Mx/TzoAuSYQyeBMDJW4YZ1AATgQeDRIIXABGFGsfAWUZBgUESgUClxQKLAuNQCIFdApYpV55CVqrFHhQDWKwhgGLAZK2jroAvrwYAQOKwcILZ4vGEw0FeMrLAM3J0RIBC067wcO/cdG4v7UdG2gmZ25+KYEmBk8AVylf8ZYAA3kiDt4eoxLtnxltUigA86vQOFwEknjg1uePlx0SGvwDIEsQqQ4OagXEMOBiIndHHTb+QgRK3DuTvSZIqVNuhEczfPJlKKCKQpEOdAzU7EXSZQcDCxLqIZhBgb4YOtJkcDERnzYMOoGswCHAoYgHROMdNfRqQgQAOw==\",\"relationship\":null}],\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"target\":\"/matlab/document.xml\",\"relationshipId\":\"rId1\"}]}"},{"id":45303,"title":"Combinatorics - 01","description":"* Input=[x,n]\r\n* where x is an array of numbers(or strings) and n is a +ve number.\r\n\r\n\r\nfor example, x=[1,2] and n=6.\r\n\r\nThe output will be a matrix containing all the possible permutations of the vector x having n elements(no of columns=n).\r\nbesides that - \r\n\r\n* each row should contain equal number of occurance of the elements of x. (3 ones, 3 twos)\r\n* no initial segment can have more 2's than 1's. e.g. [2 2 1 2 1 1] - is invalid.since there are more 2's in the 1st appearance than 1's.\r\n\r\n* y=[\r\n\r\n     1     1     1     2     2     2\r\n     1     1     2     1     2     2\r\n     1     1     2     2     1     2\r\n     1     2     1     1     2     2\r\n     1     2     1     2     1     2\r\n     1     2     1     2     2     1\r\n     2     1     1     1     2     2\r\n     2     1     1     2     1     2\r\n     2     1     1     2     2     1\r\n     2     1     2     1     1     2\r\n     2     1     2     1     2     1\r\n     2     1     2     2     1     1\r\n     2     2     1     1     1     2\r\n     2     2     1     1     2     1\r\n     2     2     2     1     1     1]\r\n\r\n\r\n\r\n\r\n\r\n\r\n","description_html":"\u003cul\u003e\u003cli\u003eInput=[x,n]\u003c/li\u003e\u003cli\u003ewhere x is an array of numbers(or strings) and n is a +ve number.\u003c/li\u003e\u003c/ul\u003e\u003cp\u003efor example, x=[1,2] and n=6.\u003c/p\u003e\u003cp\u003eThe output will be a matrix containing all the possible permutations of the vector x having n elements(no of columns=n).\r\nbesides that -\u003c/p\u003e\u003cul\u003e\u003cli\u003eeach row should contain equal number of occurance of the elements of x. (3 ones, 3 twos)\u003c/li\u003e\u003cli\u003eno initial segment can have more 2's than 1's. e.g. [2 2 1 2 1 1] - is invalid.since there are more 2's in the 1st appearance than 1's.\u003c/li\u003e\u003c/ul\u003e\u003cul\u003e\u003cli\u003ey=[\u003c/li\u003e\u003c/ul\u003e\u003cpre\u003e     1     1     1     2     2     2\r\n     1     1     2     1     2     2\r\n     1     1     2     2     1     2\r\n     1     2     1     1     2     2\r\n     1     2     1     2     1     2\r\n     1     2     1     2     2     1\r\n     2     1     1     1     2     2\r\n     2     1     1     2     1     2\r\n     2     1     1     2     2     1\r\n     2     1     2     1     1     2\r\n     2     1     2     1     2     1\r\n     2     1     2     2     1     1\r\n     2     2     1     1     1     2\r\n     2     2     1     1     2     1\r\n     2     2     2     1     1     1]\u003c/pre\u003e","function_template":"function y = combin(x,n)\r\n  y = x;\r\nend","test_suite":"%%\r\nx = [1,2];\r\nn=6;\r\ny_correct = [ 1     1     1     2     2     2\r\n     1     1     2     1     2     2\r\n     1     1     2     2     1     2\r\n     1     2     1     1     2     2\r\n     1     2     1     2     1     2\r\n     1     2     1     2     2     1\r\n     2     1     1     1     2     2\r\n     2     1     1     2     1     2\r\n     2     1     1     2     2     1\r\n     2     1     2     1     1     2\r\n     2     1     2     1     2     1\r\n     2     1     2     2     1     1\r\n     2     2     1     1     1     2\r\n     2     2     1     1     2     1\r\n     2     2     2     1     1     1];\r\nassert(isequal(combin(x,n),y_correct))\r\n%%\r\nx = [2,1];\r\nn=6;\r\ny_correct = [2     2     2     1     1     1\r\n     2     2     1     2     1     1\r\n     2     2     1     1     2     1\r\n     2     1     2     2     1     1\r\n     2     1     2     1     2     1\r\n     2     1     2     1     1     2\r\n     1     2     2     2     1     1\r\n     1     2     2     1     2     1\r\n     1     2     2     1     1     2\r\n     1     2     1     2     2     1\r\n     1     2     1     2     1     2\r\n     1     2     1     1     2     2\r\n     1     1     2     2     2     1\r\n     1     1     2     2     1     2\r\n     1     1     1     2     2     2];\r\nassert(isequal(combin(x,n),y_correct))\r\n%%\r\nx = [5,9];\r\nn=4;\r\ny_correct = [5     5     9     9\r\n     5     9     5     9\r\n     9     5     5     9\r\n     9     5     9     5\r\n     9     9     5     5];\r\nassert(isequal(combin(x,n),y_correct))\r\n%%\r\nx = [5,9];\r\nn=2;\r\ny_correct = [5     9\r\n     9     5];\r\nassert(isequal(combin(x,n),y_correct))\r\n%%\r\nx = [5,9];\r\nn=8;\r\ny_correct = [5     5     5     5     9     9     9     9\r\n     5     5     5     9     5     9     9     9\r\n     5     5     5     9     9     5     9     9\r\n     5     5     5     9     9     9     5     9\r\n     5     5     9     5     5     9     9     9\r\n     5     5     9     5     9     5     9     9\r\n     5     5     9     5     9     9     5     9\r\n     5     5     9     5     9     9     9     5\r\n     5     5     9     9     5     5     9     9\r\n     5     5     9     9     5     9     5     9\r\n     5     5     9     9     5     9     9     5\r\n     5     9     5     5     5     9     9     9\r\n     5     9     5     5     9     5     9     9\r\n     5     9     5     5     9     9     5     9\r\n     5     9     5     5     9     9     9     5\r\n     5     9     5     9     5     5     9     9\r\n     5     9     5     9     5     9     5     9\r\n     5     9     5     9     5     9     9     5\r\n     5     9     5     9     9     5     5     9\r\n     5     9     5     9     9     5     9     5\r\n     5     9     5     9     9     9     5     5\r\n     9     5     5     5     5     9     9     9\r\n     9     5     5     5     9     5     9     9\r\n     9     5     5     5     9     9     5     9\r\n     9     5     5     5     9     9     9     5\r\n     9     5     5     9     5     5     9     9\r\n     9     5     5     9     5     9     5     9\r\n     9     5     5     9     5     9     9     5\r\n     9     5     5     9     9     5     5     9\r\n     9     5     5     9     9     5     9     5\r\n     9     5     5     9     9     9     5     5\r\n     9     5     9     5     5     5     9     9\r\n     9     5     9     5     5     9     5     9\r\n     9     5     9     5     5     9     9     5\r\n     9     5     9     5     9     5     5     9\r\n     9     5     9     5     9     5     9     5\r\n     9     5     9     5     9     9     5     5\r\n     9     5     9     9     5     5     5     9\r\n     9     5     9     9     5     5     9     5\r\n     9     5     9     9     5     9     5     5\r\n     9     5     9     9     9     5     5     5\r\n     9     9     5     5     5     5     9     9\r\n     9     9     5     5     5     9     5     9\r\n     9     9     5     5     5     9     9     5\r\n     9     9     5     5     9     5     5     9\r\n     9     9     5     5     9     5     9     5\r\n     9     9     5     5     9     9     5     5\r\n     9     9     9     5     5     5     5     9\r\n     9     9     9     5     5     5     9     5\r\n     9     9     9     9     5     5     5     5];\r\nassert(isequal(combin(x,n),y_correct))\r\n","published":true,"deleted":false,"likes_count":0,"comments_count":4,"created_by":363598,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":5,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2020-01-31T16:34:35.000Z","updated_at":"2026-03-18T21:36:32.000Z","published_at":"2020-01-31T18:13:44.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\u003eInput=[x,n]\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\u003ewhere x is an array of numbers(or strings) and n is a +ve number.\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, x=[1,2] and n=6.\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 output will be a matrix containing all the possible permutations of the vector x having n elements(no of columns=n). besides that -\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\u003eeach row should contain equal number of occurance of the elements of x. (3 ones, 3 twos)\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\u003eno initial segment can have more 2's than 1's. e.g. [2 2 1 2 1 1] - is invalid.since there are more 2's in the 1st appearance than 1's.\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=[\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     1     1     2     2     2\\n     1     1     2     1     2     2\\n     1     1     2     2     1     2\\n     1     2     1     1     2     2\\n     1     2     1     2     1     2\\n     1     2     1     2     2     1\\n     2     1     1     1     2     2\\n     2     1     1     2     1     2\\n     2     1     1     2     2     1\\n     2     1     2     1     1     2\\n     2     1     2     1     2     1\\n     2     1     2     2     1     1\\n     2     2     1     1     1     2\\n     2     2     1     1     2     1\\n     2     2     2     1     1     1]]]\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\"}]}"}],"problem_search":{"errors":[],"problems":[{"id":509,"title":"Count photos","description":"Given n people, everyone must have pictures taken with everyone, each photo includes only two persons, please count the total number of pictures.","description_html":"\u003cp\u003eGiven n people, everyone must have pictures taken with everyone, each photo includes only two persons, please count the total number of pictures.\u003c/p\u003e","function_template":"function y = photos(x)\r\n  y = x^2;\r\nend","test_suite":"%%\r\nx = 10;\r\ny_correct = 45;\r\nassert(isequal(photos(x),y_correct))\r\n%%\r\nx = 100;\r\ny_correct = 4950;\r\nassert(isequal(photos(x),y_correct))\r\n%%\r\nx = 1000;\r\ny_correct = 499500;\r\nassert(isequal(photos(x),y_correct))\r\n","published":true,"deleted":false,"likes_count":6,"comments_count":1,"created_by":166,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":433,"test_suite_updated_at":"2012-03-19T09:23:23.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2012-03-19T09:23:23.000Z","updated_at":"2026-03-25T00:07:08.000Z","published_at":"2012-03-19T15:16:11.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\u003eGiven n people, everyone must have pictures taken with everyone, each photo includes only two persons, please count the total number of pictures.\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":61004,"title":"Rooky Towers","description":"You are wandering and as you realise something's off, you find yourself lost in a peculiar place -  Over a giant field which is laid in form of a checkered square base - with towering structures around you.\r\nTo safeguard yourself, you have to calculate the numbers of ways of a given number (x) of towering structures can be arranged on the filed (n,n) with a restriction - \r\nThe grid (n\u003e=x) will be set such that none of these structures are inline with each other in the 4 basic directions, but they could along the diagonal pathways.\r\n\r\n%Example\r\n%For a 2x2 (n,n) field - \r\n% 2 (x) towers can be arranged in 2 ways [|| 0; 0 ||] and [0 ||; || 0]\r\n% 1 (x) tower can be arranged in 4 ways [|| 0; 0 0], [0 ||; 0 0], [0 0; || 0 ] and [0 0; 0 ||]\r\n% and 0 (x) towers can be arranged in 1 way [0 0; 0 0]\r\n\r\nNote that there is a limit on the tools you can utilize for your calculation.","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: none; white-space: normal; \"\u003e\u003cdiv style=\"block-size: 347.167px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 408px 173.583px; transform-origin: 408px 173.583px; 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: 385px 21px; text-align: left; transform-origin: 385px 21px; 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: 381.383px 8px; transform-origin: 381.383px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eYou are wandering and as you realise something's off, you find yourself lost in a peculiar place -  Over a giant field which is laid in form of a checkered square base - with towering structures around you.\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: 385px 21px; text-align: left; transform-origin: 385px 21px; 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: 265.275px 8px; transform-origin: 265.275px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eTo safeguard yourself, you have to calculate the numbers of ways of a given number (\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: 3.5px 8px; transform-origin: 3.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003ex\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: 96.0667px 8px; transform-origin: 96.0667px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e) of towering structures can be arranged on the filed \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: 16.3333px 8px; transform-origin: 16.3333px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003e(n,n) \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: 56.7833px 8px; transform-origin: 56.7833px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003ewith a restriction - \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: 385px 21px; text-align: left; transform-origin: 385px 21px; 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: 27.6167px 8px; transform-origin: 27.6167px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe grid \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: 20.2417px 8px; transform-origin: 20.2417px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003e(n\u0026gt;=x)\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: 325.558px 8px; transform-origin: 325.558px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e will be set such that none of these structures are inline with each other in the 4 basic directions, but they could along the diagonal pathways.\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: 385px 10.5px; text-align: left; transform-origin: 385px 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: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e\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: 405px 51.0833px; transform-origin: 405px 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: 405px 10.2167px; text-wrap-mode: nowrap; transform-origin: 405px 10.2167px; \"\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: 30.8px 8.5px; tab-size: 4; transform-origin: 30.8px 8.5px; unicode-bidi: normal; white-space-collapse: preserve; margin-right: 45px; \"\u003e\u003cspan style=\"border-block-end-color: rgb(2, 128, 9); border-block-start-color: rgb(2, 128, 9); border-bottom-color: rgb(2, 128, 9); border-inline-end-color: rgb(2, 128, 9); border-inline-start-color: rgb(2, 128, 9); border-left-color: rgb(2, 128, 9); border-right-color: rgb(2, 128, 9); border-top-color: rgb(2, 128, 9); caret-color: rgb(2, 128, 9); color: rgb(2, 128, 9); column-rule-color: rgb(2, 128, 9); margin-inline-end: 0px; margin-right: 0px; outline-color: rgb(2, 128, 9); text-decoration-color: rgb(2, 128, 9); text-emphasis-color: rgb(2, 128, 9); \"\u003e%Example\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: 405px 10.2167px; text-wrap-mode: nowrap; transform-origin: 405px 10.2167px; \"\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: 96.25px 8.5px; tab-size: 4; transform-origin: 96.25px 8.5px; unicode-bidi: normal; white-space-collapse: preserve; margin-right: 45px; \"\u003e\u003cspan style=\"border-block-end-color: rgb(2, 128, 9); border-block-start-color: rgb(2, 128, 9); border-bottom-color: rgb(2, 128, 9); border-inline-end-color: rgb(2, 128, 9); border-inline-start-color: rgb(2, 128, 9); border-left-color: rgb(2, 128, 9); border-right-color: rgb(2, 128, 9); border-top-color: rgb(2, 128, 9); caret-color: rgb(2, 128, 9); color: rgb(2, 128, 9); column-rule-color: rgb(2, 128, 9); margin-inline-end: 0px; margin-right: 0px; outline-color: rgb(2, 128, 9); text-decoration-color: rgb(2, 128, 9); text-emphasis-color: rgb(2, 128, 9); \"\u003e%For a 2x2 (n,n) field - \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: 405px 10.2167px; text-wrap-mode: nowrap; transform-origin: 405px 10.2167px; \"\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: 269.5px 8.5px; tab-size: 4; transform-origin: 269.5px 8.5px; unicode-bidi: normal; white-space-collapse: preserve; margin-right: 45px; \"\u003e\u003cspan style=\"border-block-end-color: rgb(2, 128, 9); border-block-start-color: rgb(2, 128, 9); border-bottom-color: rgb(2, 128, 9); border-inline-end-color: rgb(2, 128, 9); border-inline-start-color: rgb(2, 128, 9); border-left-color: rgb(2, 128, 9); border-right-color: rgb(2, 128, 9); border-top-color: rgb(2, 128, 9); caret-color: rgb(2, 128, 9); color: rgb(2, 128, 9); column-rule-color: rgb(2, 128, 9); margin-inline-end: 0px; margin-right: 0px; outline-color: rgb(2, 128, 9); text-decoration-color: rgb(2, 128, 9); text-emphasis-color: rgb(2, 128, 9); \"\u003e% 2 (x) towers can be arranged in 2 ways [|| 0; 0 ||] and [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: 405px 10.2167px; text-wrap-mode: nowrap; transform-origin: 405px 10.2167px; \"\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: 361.9px 8.5px; tab-size: 4; transform-origin: 361.9px 8.5px; unicode-bidi: normal; white-space-collapse: preserve; margin-right: 45px; \"\u003e\u003cspan style=\"border-block-end-color: rgb(2, 128, 9); border-block-start-color: rgb(2, 128, 9); border-bottom-color: rgb(2, 128, 9); border-inline-end-color: rgb(2, 128, 9); border-inline-start-color: rgb(2, 128, 9); border-left-color: rgb(2, 128, 9); border-right-color: rgb(2, 128, 9); border-top-color: rgb(2, 128, 9); caret-color: rgb(2, 128, 9); color: rgb(2, 128, 9); column-rule-color: rgb(2, 128, 9); margin-inline-end: 0px; margin-right: 0px; outline-color: rgb(2, 128, 9); text-decoration-color: rgb(2, 128, 9); text-emphasis-color: rgb(2, 128, 9); \"\u003e% 1 (x) tower can be arranged in 4 ways [|| 0; 0 0], [0 ||; 0 0], [0 0; || 0 ] and [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: 405px 10.2167px; text-wrap-mode: nowrap; transform-origin: 405px 10.2167px; \"\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: 207.9px 8.5px; tab-size: 4; transform-origin: 207.9px 8.5px; unicode-bidi: normal; white-space-collapse: preserve; margin-right: 45px; \"\u003e\u003cspan style=\"border-block-end-color: rgb(2, 128, 9); border-block-start-color: rgb(2, 128, 9); border-bottom-color: rgb(2, 128, 9); border-inline-end-color: rgb(2, 128, 9); border-inline-start-color: rgb(2, 128, 9); border-left-color: rgb(2, 128, 9); border-right-color: rgb(2, 128, 9); border-top-color: rgb(2, 128, 9); caret-color: rgb(2, 128, 9); color: rgb(2, 128, 9); column-rule-color: rgb(2, 128, 9); margin-inline-end: 0px; margin-right: 0px; outline-color: rgb(2, 128, 9); text-decoration-color: rgb(2, 128, 9); text-emphasis-color: rgb(2, 128, 9); \"\u003e% and 0 (x) towers can be arranged in 1 way [0 0; 0 0]\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: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; 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: 0px 8px; transform-origin: 0px 8px; 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; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 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: 220.542px 8px; transform-origin: 220.542px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eNote that there is a limit on the tools you can utilize for your calculation.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function y = rookytowers(n,x)\r\n  y = x;\r\nend","test_suite":"%%\r\nfiletext = fileread('rookytowers.m');\r\nillegal = contains(filetext, 'assignin') || contains(filetext, 'regexp') || ...\r\n          contains(filetext, 'while') || contains(filetext, 'for ') || ...\r\n          contains(filetext, 'cellfun') || contains(filetext, 'arrayfun') || ...\r\n          contains(filetext, 'rowfun') || contains(filetext, 'structfun') || ...\r\n          contains(filetext, 'switch') || contains(filetext, 'elseif'); \r\nassert(~illegal)\r\n\r\n%%\r\nassert(isequal(rookytowers(1, randi([0 1])),1))\r\n\r\n%%\r\ny = [1 4 2];\r\nr = randi([0 2]);\r\nassert(isequal(rookytowers(2, r),y(r+1)))\r\n\r\n%%\r\nn = 3;\r\ny = [n^0 n^2 2*n^2 2*n];\r\nr = randi([0 n]);\r\nassert(isequal(rookytowers(n, r),y(r+1)))\r\n\r\n%%\r\ny = [16 72 96];\r\nr = randi([1 3]);\r\nassert(isequal(rookytowers(4, r),y(r)))\r\n\r\n%%\r\nn = 5;\r\ny = [n 200 600 600 120];\r\nr = randi([2 n]);\r\nassert(isequal(rookytowers(n, r),y(r)))\r\n\r\n%%\r\ny = abs([-1\t\t49\t\t-882\t\t7350\t\t-29400]);\r\nr = randi([0 4]);\r\nassert(isequal(rookytowers(7, r),y(r+1)))\r\n\r\n%%\r\ny = abs([1\t\t-64\t\t1568\t\t-18816\t\t117600\t\t-376320\t\t564480\t\t-322560\t\t40320]);\r\nn = 2^3;\r\nfor r=0:n\r\n    assert(isequal(rookytowers(n, r),y(r+1)))\r\nend\r\n\r\n%%\r\ny = [9^0 9^2 2592 42336 381024 1905120 5080320 6531840 3265920 factorial(9)]\r\nr = randi([0 9]);\r\nassert(isequal(rookytowers(9, r),y(r+1)))","published":true,"deleted":false,"likes_count":1,"comments_count":3,"created_by":223089,"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":"2025-09-18T15:25:35.000Z","updated_at":"2026-01-26T15:21:48.000Z","published_at":"2025-09-18T15:25:35.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\u003eYou are wandering and as you realise something's off, you find yourself lost in a peculiar place -  Over a giant field which is laid in form of a checkered square base - with towering structures around you.\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\u003eTo safeguard yourself, you have to calculate the numbers of ways of a given number (\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ex\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e) of towering structures can be arranged on the filed \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e(n,n) \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr/\u003e\u003cw:t\u003ewith a restriction - \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 grid \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e(n\u0026gt;=x)\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e will be set such that none of these structures are inline with each other in the 4 basic directions, but they could along the diagonal pathways.\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=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[%Example\\n%For a 2x2 (n,n) field - \\n% 2 (x) towers can be arranged in 2 ways [|| 0; 0 ||] and [0 ||; || 0]\\n% 1 (x) tower can be arranged in 4 ways [|| 0; 0 0], [0 ||; 0 0], [0 0; || 0 ] and [0 0; 0 ||]\\n% and 0 (x) towers can be arranged in 1 way [0 0; 0 0]]]\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\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 that there is a limit on the tools you can utilize for your calculation.\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":51820,"title":"Count unique orderings of vertices of a polygon","description":"Cody Problem 2671 asks us to determine whether four points can be the corners of a rectangle. The points are not necessarily input in order (either clockwise or counterclockwise). My initial attempt at the problem involved determining how the points might be presented. If the corners are numbered as shown below, then they can be input in 24 ways.\r\nHowever, for the rectangle problem, many of the 24 ways are essentially the same. For example, 2341, 3214, and 4123 are effectively the same as 1234 because the numbers of the corners could be shifted around the rectangle. In fact, only three of the 24 ways are different (1234, 1243, and 1324). \r\nWrite a function to determine the unique orderings of vertices of a polygon with  sides. \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: 356.917px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 178.458px; transform-origin: 407px 178.458px; 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\u003ca target='_blank' href = \"https://www.mathworks.com/matlabcentral/cody/problems/2671\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"text-decoration: underline; text-decoration-line: underline; \"\u003eCody Problem 2671\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: 294.433px 7.91667px; transform-origin: 294.433px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e asks us to determine whether four points can be the corners of a rectangle. The points are not necessarily input in order (either clockwise or counterclockwise). My initial attempt at the problem involved determining how the points might be presented. If the corners are numbered as shown below, then they can be input in 24 ways.\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: 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: 383.133px 7.91667px; transform-origin: 383.133px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eHowever, for the rectangle problem, many of the 24 ways are essentially the same. For example, 2341, 3214, and 4123 are effectively the same as 1234 because the numbers of the corners could be shifted around the rectangle. In fact, only three of the 24 ways are different (1234, 1243, and 1324). \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: 245.317px 7.91667px; transform-origin: 245.317px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eWrite a function to determine the unique orderings of vertices of a polygon with \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: 22.1667px 7.91667px; transform-origin: 22.1667px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e sides. \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 182.917px; 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 91.4583px; text-align: left; transform-origin: 384px 91.4583px; 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: 262px;height: 177px\" src=\"data:image/png;base64,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\" data-image-state=\"image-loaded\" width=\"262\" height=\"177\"\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function y = polyVert(n)\r\n  y = nchoosek(2*n,n);\r\nend","test_suite":"%% Rectangle\r\nassert(isequal(polyVert(4),3))\r\n\r\n%% Triangle\r\nassert(isequal(polyVert(3),1))\r\n\r\n%% Heptagon\r\nassert(isequal(polyVert(7),360))\r\n\r\n%% Dodecagon\r\nassert(isequal(polyVert(12),19958400))\r\n\r\n%% Heptadecagon\r\nassert(isequal(polyVert(17),10461394944000))\r\n\r\n%% \r\nd = num2str(polyVert(19))-'0';\r\np = polyval(d(1:3:end),4);\r\np_correct = 3760;\r\nassert(isequal(p,p_correct))\r\n\r\n%% \r\nd = num2str(polyVert(15));\r\ns = polyVert(str2num(d(4)))+polyVert(str2num(d(6:7)));\r\ns_correct = 3113512920;\r\nassert(isequal(s,s_correct))","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":46909,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":21,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2021-05-27T04:52:02.000Z","updated_at":"2026-01-15T18:13:53.000Z","published_at":"2021-05-27T04:56:25.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:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/2671\\\"\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:u/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eCody Problem 2671\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e asks us to determine whether four points can be the corners of a rectangle. The points are not necessarily input in order (either clockwise or counterclockwise). My initial attempt at the problem involved determining how the points might be presented. If the corners are numbered as shown below, then they can be input in 24 ways.\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\u003eHowever, for the rectangle problem, many of the 24 ways are essentially the same. For example, 2341, 3214, and 4123 are effectively the same as 1234 because the numbers of the corners could be shifted around the rectangle. In fact, only three of the 24 ways are different (1234, 1243, and 1324). \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 determine the unique orderings of vertices of a polygon with \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 sides. \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=\\\"177\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"262\\\"/\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":47838,"title":"Count the ways pairs of parentheses can be matched correctly","description":null,"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: 145.433px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 72.7167px; transform-origin: 407px 72.7167px; 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: 370.317px 7.91667px; transform-origin: 370.317px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eSeveral problems in Cody deal with the practical problem of checking whether parentheses are correctly matched (e.g., \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://www.mathworks.com/matlabcentral/cody/problems/80\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003e80\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: 3.88333px 7.91667px; transform-origin: 3.88333px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e, \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://www.mathworks.com/matlabcentral/cody/problems/465\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"perspective-origin: 11.675px 7.91667px; transform-origin: 11.675px 7.91667px; \"\u003e465\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: 3.88333px 7.91667px; transform-origin: 3.88333px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e, \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://www.mathworks.com/matlabcentral/cody/problems/1303\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003e1303\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: 3.88333px 7.91667px; transform-origin: 3.88333px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e, \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://www.mathworks.com/matlabcentral/cody/problems/2653-beauty-of-parentheses\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003e2653\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: 331.392px 7.91667px; transform-origin: 331.392px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e). In this problem you are asked to count the ways a given number of pairs of parentheses can be matched correctly in an expression. For example, three pairs can be matched in five ways: \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgb(247, 247, 247); block-size: 20.4333px; 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 10.2167px; transform-origin: 404px 10.2167px; margin-left: 3px; margin-top: 10px; margin-bottom: 10px; margin-right: 3px; \"\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); 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: 0.833333px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 0.833333px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 0.833333px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 0.833333px; 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; 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: 146.3px 7.91667px; transform-origin: 146.3px 7.91667px; 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\u003c/div\u003e\u003cdiv style=\"block-size: 42px; 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 21px; text-align: left; transform-origin: 384px 21px; 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: 361.992px 7.91667px; transform-origin: 361.992px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eWrite a function that takes the number of pairs and determines the number of ways the parentheses can be matched correctly. \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function y = parenMatches(n)\r\n  y = 4^n/(n^(3/2)*sqrt(pi));\r\nend","test_suite":"%%\r\nn = 0;\r\ny_correct = 1;\r\nassert(isequal(parenMatches(n),y_correct))\r\n\r\n%%\r\nn = 1;\r\ny_correct = 1;\r\nassert(isequal(parenMatches(n),y_correct))\r\n\r\n%%\r\nn = 2;\r\ny_correct = 2;\r\nassert(isequal(parenMatches(n),y_correct))\r\n\r\n%%\r\nn = 3;\r\ny_correct = 5;\r\nassert(isequal(parenMatches(n),y_correct))\r\n\r\n%%\r\nn = 5;\r\ny_correct = 42;\r\nassert(isequal(parenMatches(n),y_correct))\r\n\r\n%%\r\nn = 10;\r\ny_correct = 16796;\r\nassert(isequal(parenMatches(n),y_correct))\r\n\r\n%%\r\nn = 14;\r\ny_correct = 2674440;\r\nassert(isequal(parenMatches(n),y_correct))\r\n\r\n%%\r\nn = 19;\r\ny_correct = 1767263190;\r\nassert(isequal(parenMatches(n),y_correct))\r\n\r\n%%\r\nn = 23;\r\ny_correct = 343059613650;\r\nassert(isequal(parenMatches(n),y_correct))\r\n\r\n%%\r\nn = 28;\r\ny_correct = 263747951750360;\r\nassert(isequal(parenMatches(n),y_correct))\r\n\r\n%% \r\nn = 25;\r\nd = num2str(parenMatches(n))-'0';\r\ns_correct = 54;\r\np_correct = 6635520;\r\nassert(isequal(sum(d),s_correct) \u0026\u0026 isequal(prod(d(d\u003e0)),p_correct))","published":true,"deleted":false,"likes_count":0,"comments_count":0,"created_by":46909,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":7,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2020-12-06T16:54:03.000Z","updated_at":"2025-06-08T09:25:42.000Z","published_at":"2020-12-06T17:21:19.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 problems in Cody deal with the practical problem of checking whether parentheses are correctly matched (e.g., \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/80\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e80\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\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/465\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e465\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\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/1303\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e1303\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\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/2653-beauty-of-parentheses\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e2653\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e). In this problem you are asked to count the ways a given number of pairs of parentheses can be matched correctly in an expression. For example, three pairs can be matched in five ways: \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[()()(), (())(), (()()), ((())), ()(())]]\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\u003eWrite a function that takes the number of pairs and determines the number of ways the parentheses can be matched correctly. \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":46551,"title":"Solve a ballot counting problem","description":"","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: 185.167px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 92.5833px; transform-origin: 407px 92.5833px; 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: 181px 8px; transform-origin: 181px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eCandidate X and Candidate O receive the same number (\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: 182.5px 8px; transform-origin: 182.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e) of votes in an election. Write a function to determine the number of ways the ballots can be counted such that X is never behind O. For example, for \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: 75.5px 8px; transform-origin: 75.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e = 3 there are five ways:\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: 36px 8.5px; transform-origin: 36px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e   XXXOOO\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: 44px 8.5px; transform-origin: 44px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e   XXOXOO  \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: 36px 8.5px; transform-origin: 36px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e   XXOOXO\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: 36px 8.5px; transform-origin: 36px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e   XOXXOO\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: 36px 8.5px; transform-origin: 36px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e   XOXOXO\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: 188.5px 8px; transform-origin: 188.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e Optional: Identify the connection between this problem and \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://www.mathworks.com/matlabcentral/cody/problems/42821-polygon-division\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eCody Problem 42821\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: 4px 8px; transform-origin: 4px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e. \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function y = ballot1(n)\r\n% n = number of vote *each* candidate receives\r\n  y = f(n);\r\nend","test_suite":"%%\r\nn = 3;\r\ny_correct = 5;\r\nassert(isequal(ballot1(n),y_correct))\r\n\r\n%%\r\nn = 6;\r\ny_correct = 132;\r\nassert(isequal(ballot1(n),y_correct))\r\n\r\n%%\r\nn = 9;\r\ny_correct = 4862;\r\nassert(isequal(ballot1(n),y_correct))\r\n\r\n%%\r\nn1 = 11;\r\nn2 = 13;\r\ny1 = ballot1(n1);\r\ny2 = ballot1(n2);\r\nsum_correct = 801686;\r\nmod_correct = 37468;\r\nassert(isequal(y1+y2,sum_correct) \u0026\u0026 isequal(mod(y2,y1),mod_correct))\r\n\r\n%%\r\nn = 22;\r\ny_correct = 91482563640;\r\nassert(isequal(ballot1(n),y_correct))\r\n\r\n%%\r\nn = 26;\r\ny_correct = 18367353072152;\r\nassert(isequal(ballot1(n),y_correct))","published":true,"deleted":false,"likes_count":2,"comments_count":0,"created_by":46909,"edited_by":46909,"edited_at":"2023-01-10T23:04:02.000Z","deleted_by":null,"deleted_at":null,"solvers_count":13,"test_suite_updated_at":"2020-08-16T04:39:20.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2020-08-16T02:51:12.000Z","updated_at":"2023-01-10T23:04:02.000Z","published_at":"2020-08-16T04:39:20.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\u003eCandidate X and Candidate O receive the same number (\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) of votes in an election. Write a function to determine the number of ways the ballots can be counted such that X is never behind O. For example, for \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 = 3 there are five ways:\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[   XXXOOO\\n   XXOXOO  \\n   XXOOXO\\n   XOXXOO\\n   XOXOXO]]\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 Optional: Identify the connection between this problem and \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/42821-polygon-division\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eCody Problem 42821\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\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":54390,"title":"That's not my hat! ","description":"There exists a highly secretive hat consortium. Members possess identical hats. The members are invited to a meeting. All of them bring their hats, but are required to leave them in the shared cloakroom. During the meeting an earthquake strikes the region, leaving the cloakroom a mess. When the members return to the cloakroom, they find all the hats lying on the floor, rendering it impossible to determine the owners. Unwilling to dwell on this, the members each pick up a random hat and leave. Given the number of attendees n\u003e0, the function c computes the number of distinct events where none of the members pick up their original hat. Your task is to define this function.","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: 126px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 63px; transform-origin: 407px 63px; vertical-align: baseline; \"\u003e\u003cdiv style=\"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 63px; text-align: left; transform-origin: 384px 63px; 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=\"\"\u003eThere exists a highly secretive hat consortium. Members possess identical hats. The members are invited to a meeting. All of them bring their hats, but are required to leave them in the shared cloakroom. During the meeting an earthquake strikes the region, leaving the cloakroom a mess. When the members return to the cloakroom, they find all the hats lying on the floor, rendering it impossible to determine the owners. Unwilling to dwell on this, the members each pick up a random hat and leave. Given the number of attendees \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; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003en\u0026gt;0\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; \"\u003e\u003cspan style=\"\"\u003e, the function \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; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003ec \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; \"\u003e\u003cspan style=\"\"\u003ecomputes the number of distinct events where none of the members pick up their original hat. Your task is to define this function.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function y = c(n)\r\n    y = 0;\r\nend","test_suite":"%%\r\nn = 7;\r\ny_correct = 1854;\r\nassert(isequal(c(n),y_correct))\r\n\r\n%%\r\nn = 10;\r\ny_correct = 1334961;\r\nassert(isequal(c(n),y_correct))\r\n\r\n%%\r\nn = 4;\r\ny_correct = 9;\r\nassert(isequal(c(n),y_correct))\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":2242415,"edited_by":2242415,"edited_at":"2022-04-29T13:46:27.000Z","deleted_by":null,"deleted_at":null,"solvers_count":10,"test_suite_updated_at":"2022-04-29T13:46:28.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2022-04-29T13:43:22.000Z","updated_at":"2025-12-02T19:48:02.000Z","published_at":"2022-04-29T13:46:28.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\u003eThere exists a highly secretive hat consortium. Members possess identical hats. The members are invited to a meeting. All of them bring their hats, but are required to leave them in the shared cloakroom. During the meeting an earthquake strikes the region, leaving the cloakroom a mess. When the members return to the cloakroom, they find all the hats lying on the floor, rendering it impossible to determine the owners. Unwilling to dwell on this, the members each pick up a random hat and leave. Given the number of attendees \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003en\u0026gt;0\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e, the function \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ec \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003ecomputes the number of distinct events where none of the members pick up their original hat. Your task is to define this function.\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":54020,"title":"Circle Division","description":"A circle can be divided into 2 sections, by placing 2 points in arbitrary locations along its circumference and drawing a straight line between them. By adding more points and drawing a straight line from each point to every other point, the circle can be divided into more sections. For example, 3 points would divide the circle into 4 sections and 4 points into 8 sections.\r\nGiven a positive integer, n, representing the number of arbitrarily placed points on the circumference of a circle, return d, i and s, the number of straight lines, the number of intersections and the number of sections into which the circle is divided, respectively.\r\nThe only restriction on the positions of the points is that they must be placed such that no 3 lines can share a single intersection.\r\nn will always be greater than 3.\r\nExample:\r\nn = 4;\r\nd = 6\r\ni = 1\r\ns = 8\r\nExample:\r\nn = 5;\r\nd = 10\r\ni = 5\r\ns = 16","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: 460.5px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 230.25px; transform-origin: 407px 230.25px; 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: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eA circle can be divided into 2 sections, by placing 2 points in arbitrary locations along its circumference and drawing a straight line between them. By adding more points and drawing a straight line from each point to every other point, the circle can be divided into more sections. For example, 3 points would divide the circle into 4 sections and 4 points into 8 sections.\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: 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=\"\"\u003eGiven a positive integer, n, representing the number of arbitrarily placed points on the circumference of a circle, return d, i and s, the number of straight lines, the number of intersections and the number of sections into which the circle is divided, respectively.\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: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eThe only restriction on the positions of the points is that they must be placed such that no 3 lines can share a single intersection.\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: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003en will always be greater than 3.\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: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eExample:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgb(247, 247, 247); block-size: 81.75px; 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 40.875px; transform-origin: 404px 40.875px; 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.4375px; 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.2188px; transform-origin: 404px 10.2188px; 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 0px; tab-size: 4; transform-origin: 0px 0px; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003en = 4;\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4375px; 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.2188px; transform-origin: 404px 10.2188px; 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 0px; tab-size: 4; transform-origin: 0px 0px; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003ed = 6\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4375px; 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.2188px; transform-origin: 404px 10.2188px; 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 0px; tab-size: 4; transform-origin: 0px 0px; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003ei = 1\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4375px; 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.2188px; transform-origin: 404px 10.2188px; 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 0px; tab-size: 4; transform-origin: 0px 0px; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003es = 8\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: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eExample:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgb(247, 247, 247); block-size: 81.75px; 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 40.875px; transform-origin: 404px 40.875px; 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.4375px; 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.2188px; transform-origin: 404px 10.2188px; 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 0px; tab-size: 4; transform-origin: 0px 0px; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003en = 5;\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4375px; 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.2188px; transform-origin: 404px 10.2188px; 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 0px; tab-size: 4; transform-origin: 0px 0px; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003ed = 10\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4375px; 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.2188px; transform-origin: 404px 10.2188px; 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 0px; tab-size: 4; transform-origin: 0px 0px; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003ei = 5\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4375px; 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.2188px; transform-origin: 404px 10.2188px; 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 0px; tab-size: 4; transform-origin: 0px 0px; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003es = 16\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function [d,i,s] = your_fcn_name(n)\r\n    d = 1;\r\n    i = 1;\r\n    s = 1;\r\nend","test_suite":"%%\r\nfiletext = fileread('your_fcn_name.m');\r\nassert(isempty(strfind(filetext,'eval')))\r\nassert(isempty(strfind(filetext,'echo')))\r\nassert(isempty(strfind(filetext,'switch')))\r\nassert(isempty(strfind(filetext,'regexp')))\r\n\r\n%%\r\n[d,i,s] = your_fcn_name(4);\r\nassert(isequal([d i s],[6 1 8]))\r\n\r\n%%\r\n[d,i,s] = your_fcn_name(5);\r\nassert(isequal([d i s],[10 5 16]))\r\n\r\n%%\r\n[d,i,s] = your_fcn_name(7);\r\nassert(isequal([d i s],[21 35 57]))\r\n\r\n%%\r\n[d,i,s] = your_fcn_name(13);\r\nassert(isequal([d i s],[78 715 794]))\r\n\r\n%%\r\n[d,i,s] = your_fcn_name(53);\r\nassert(isequal([d i s],[1378 292825 294204]))\r\n\r\n%%\r\n[d,i,s] = your_fcn_name(100);\r\nassert(isequal([d i s],[4950 3921225 3926176]))","published":true,"deleted":false,"likes_count":0,"comments_count":0,"created_by":15521,"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":"2022-02-18T20:04:46.000Z","updated_at":"2025-12-02T20:17:27.000Z","published_at":"2022-02-18T20:04: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\u003eA circle can be divided into 2 sections, by placing 2 points in arbitrary locations along its circumference and drawing a straight line between them. By adding more points and drawing a straight line from each point to every other point, the circle can be divided into more sections. For example, 3 points would divide the circle into 4 sections and 4 points into 8 sections.\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 positive integer, n, representing the number of arbitrarily placed points on the circumference of a circle, return d, i and s, the number of straight lines, the number of intersections and the number of sections into which the circle is divided, respectively.\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 only restriction on the positions of the points is that they must be placed such that no 3 lines can share a single intersection.\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\u003en will always be greater than 3.\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\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[n = 4;\\nd = 6\\ni = 1\\ns = 8]]\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\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[n = 5;\\nd = 10\\ni = 5\\ns = 16]]\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":58946,"title":"Count block fountains","description":"A block fountain consists of rows of circles in which each row is a continuous block of circles (i.e., adjacent circles are tangent) and each circle in a row above the first touches exactly two circles on the previous row. \r\nWrite a function to compute the number of block fountains with  circles on the first row. For example, there are five block fountains with three circles on the first row. \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: 429.7px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 214.85px; transform-origin: 407px 214.85px; 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: 364.85px 8px; transform-origin: 364.85px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eA block fountain consists of rows of circles in which each row is a continuous block of circles (i.e., adjacent circles are tangent) and each circle in a row above the first touches exactly two circles on the previous row. \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: 195.125px 8px; transform-origin: 195.125px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eWrite a function to compute the number of block fountains with \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: 176.958px 8px; transform-origin: 176.958px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e circles on the first row. For example, there are five block fountains with three circles on the first row. \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 327.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 163.85px; text-align: left; transform-origin: 384px 163.85px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cimg class=\"imageNode\" width=\"543\" height=\"322\" style=\"vertical-align: baseline;width: 543px;height: 322px\" src=\"data:image/png;base64,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\" data-image-state=\"image-loaded\"\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function y = blockFountain(n)\r\n  y = factorial(n);\r\nend","test_suite":"%%\r\nassert(isequal(blockFountain(3),5))\r\n\r\n%%\r\nassert(isequal(blockFountain(5),34))\r\n\r\n%%\r\nassert(isequal(blockFountain(8),610))\r\n\r\n%%\r\nassert(isequal(blockFountain(14),196418))\r\n\r\n%%\r\nassert(isequal(blockFountain(14),196418))\r\n\r\n%%\r\nassert(isequal(blockFountain(23),1134903170))\r\n\r\n%%\r\nassert(isequal(blockFountain(28),139583862445))\r\n\r\n%%\r\nassert(isequal(blockFountain(33),17167680177565))\r\n\r\n%%\r\nassert(isequal(blockFountain(35),117669030460994))\r\n\r\n%%\r\nfiletext = fileread('blockFountain.m');\r\nillegal = contains(filetext, 'assignin') || contains(filetext, 'assert') || contains(filetext,'switch'); \r\nassert(~illegal)\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":4,"created_by":46909,"edited_by":46909,"edited_at":"2023-09-03T17:54:36.000Z","deleted_by":null,"deleted_at":null,"solvers_count":8,"test_suite_updated_at":"2023-09-03T17:54:19.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2023-09-02T14:47:44.000Z","updated_at":"2026-01-26T19:21:38.000Z","published_at":"2023-09-02T14:47:49.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\u003eA block fountain consists of rows of circles in which each row is a continuous block of circles (i.e., adjacent circles are tangent) and each circle in a row above the first touches exactly two circles on the previous row. \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 block fountains with \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 circles on the first row. For example, there are five block fountains with three circles on the first row. \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=\\\"322\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"543\\\"/\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":44735,"title":"Aztec Diamond domino tilings","description":"Consider a Cartesian grid, with verteces at integer x and y values, where every four vertices around a vacant space define a unit square. An Aztec Diamond of order d is the shape formed by all unit squares whose centers satisfy the equation:\r\n  \r\n  abs(x) + abs(y) \u003c= d\r\n\r\nGiven the order of an Aztec Diamond, d  (positive integer), return the number, n, of possible tilings using domino tiles, i.e. rectangles sized 1x2 and 2x1, such that:\r\n\r\n# The entire shape is covered\r\n# There are no overlapping tiles\r\n# None of the tiles stick out of the shape\r\n\r\nExample:\r\n\r\nAn Aztec Diamond of order 4 is shown at this \u003chttp://faculty.uml.edu/jpropp/tiling/www/aztec-definition.html URL\u003e.\r\n\r\nInput: d = 4\r\n\r\nOutput: n = 1024","description_html":"\u003cp\u003eConsider a Cartesian grid, with verteces at integer x and y values, where every four vertices around a vacant space define a unit square. An Aztec Diamond of order d is the shape formed by all unit squares whose centers satisfy the equation:\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003eabs(x) + abs(y) \u0026lt;= d\r\n\u003c/pre\u003e\u003cp\u003eGiven the order of an Aztec Diamond, d  (positive integer), return the number, n, of possible tilings using domino tiles, i.e. rectangles sized 1x2 and 2x1, such that:\u003c/p\u003e\u003col\u003e\u003cli\u003eThe entire shape is covered\u003c/li\u003e\u003cli\u003eThere are no overlapping tiles\u003c/li\u003e\u003cli\u003eNone of the tiles stick out of the shape\u003c/li\u003e\u003c/ol\u003e\u003cp\u003eExample:\u003c/p\u003e\u003cp\u003eAn Aztec Diamond of order 4 is shown at this \u003ca href = \"http://faculty.uml.edu/jpropp/tiling/www/aztec-definition.html\"\u003eURL\u003c/a\u003e.\u003c/p\u003e\u003cp\u003eInput: d = 4\u003c/p\u003e\u003cp\u003eOutput: n = 1024\u003c/p\u003e","function_template":"function n = AztecDiamond(d)\r\n  n = d;\r\nend","test_suite":"%%\r\nfiletext = fileread('AztecDiamond.m');\r\nassert(isempty(strfind(filetext,'eval')))\r\nassert(isempty(strfind(filetext,'assign')))\r\nassert(isempty(strfind(filetext,'echo')))\r\nassert(isempty(strfind(filetext,'switch')))\r\nassert(isempty(strfind(filetext,'regexp')))\r\n\r\n%%\r\nd = 1;\r\nassert(isequal(AztecDiamond(d),2))\r\n\r\n%%\r\nd = 3;\r\nassert(isequal(AztecDiamond(d),64))\r\n\r\n%%\r\nd = 6;\r\nassert(isequal(AztecDiamond(d),2097152))\r\n\r\n%%\r\nd = 7;\r\nassert(isequal(AztecDiamond(d),268435456))\r\n\r\n%%\r\nd = 9;\r\nassert(isequal(log2(AztecDiamond(d)),45))\r\n\r\n%%\r\nd = 12;\r\nassert(isequal(log2(AztecDiamond(d)),78))","published":true,"deleted":false,"likes_count":0,"comments_count":0,"created_by":15521,"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":"2018-09-01T13:12:57.000Z","updated_at":"2025-06-25T19:29:36.000Z","published_at":"2018-09-01T13:23:40.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\u003eConsider a Cartesian grid, with verteces at integer x and y values, where every four vertices around a vacant space define a unit square. An Aztec Diamond of order d is the shape formed by all unit squares whose centers satisfy the equation:\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(x) + abs(y) \u003c= d]]\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\u003eGiven the order of an Aztec Diamond, d (positive integer), return the number, n, of possible tilings using domino tiles, i.e. rectangles sized 1x2 and 2x1, such that:\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\u003eThe entire shape is covered\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\u003eThere are no overlapping tiles\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\u003eNone of the tiles stick out of the shape\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\u003eAn Aztec Diamond of order 4 is shown at this\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://faculty.uml.edu/jpropp/tiling/www/aztec-definition.html\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eURL\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\u003eInput: d = 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\u003eOutput: n = 1024\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":1483,"title":"Number of paths on a grid","description":"\r\nConsider a grid formed by n vertices vertically down, and m vertices horizontally right. Your starting point is at the top left vertex. \r\nYour destination is the bottom right vertex. You are permitted at each vertex to choose to move down or right, that is in the direction towards the destination. You are not to move on what constitutes a back step like moving left or up. If you hit the bottom boundary, or right boundary take it to be given there is only 1 way to the destination, that is following along the boundary. \r\n\r\nEx: in a 2x2 grid there are two ways. One way: First down, then right. The other way: First right, then down.   \r\n\r\n4x3 has 10 ways\r\n\r\n6x5 has 126 ways\r\n\r\nThis problem can be solved using dynamic programming but there are other methods too. \r\n\r\nProblem 7)\r\nPrev: \u003chttp://www.mathworks.com/matlabcentral/cody/problems/1482 1482\u003e\r\nNext: \u003chttp://www.mathworks.com/matlabcentral/cody/problems/1484 1484\u003e","description_html":"\u003cdiv style = \"text-align: start; line-height: 20px; 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: normal; text-decoration: none; white-space: normal; \"\u003e\u003cdiv style=\"display: block; min-width: 0px; padding-top: 0px; transform-origin: 332px 148.5px; vertical-align: baseline; perspective-origin: 332px 148.5px; \"\u003e\u003cdiv style=\"font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-bottom: 9px; margin-left: 4px; margin-right: 10px; margin-top: 2px; text-align: left; transform-origin: 309px 63px; white-space: pre-wrap; perspective-origin: 309px 63px; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"display: inline; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; transform-origin: 0px 0px; perspective-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eConsider a grid formed by n vertices vertically down, and m vertices horizontally right. Your starting point is at the top left vertex. Your destination is the bottom right vertex. You are permitted at each vertex to choose to move down or right, that is in the direction towards the destination. You are not to move on what constitutes a back step like moving left or up. If you hit the bottom boundary, or right boundary take it to be given there is only 1 way to the destination, that is following along the boundary.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-bottom: 9px; margin-left: 4px; margin-right: 10px; margin-top: 2px; text-align: left; transform-origin: 309px 21px; white-space: pre-wrap; perspective-origin: 309px 21px; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"display: inline; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; transform-origin: 0px 0px; perspective-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eEx: in a 2x2 grid there are two ways. One way: First down, then right. The other way: First right, then down.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-bottom: 9px; margin-left: 4px; margin-right: 10px; margin-top: 2px; text-align: left; transform-origin: 309px 10.5px; white-space: pre-wrap; perspective-origin: 309px 10.5px; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"display: inline; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; transform-origin: 0px 0px; perspective-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e4x3 has 10 ways\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-bottom: 9px; margin-left: 4px; margin-right: 10px; margin-top: 2px; text-align: left; transform-origin: 309px 10.5px; white-space: pre-wrap; perspective-origin: 309px 10.5px; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"display: inline; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; transform-origin: 0px 0px; perspective-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e6x5 has 126 ways\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-bottom: 9px; margin-left: 4px; margin-right: 10px; margin-top: 2px; text-align: left; transform-origin: 309px 10.5px; white-space: pre-wrap; perspective-origin: 309px 10.5px; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"display: inline; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; transform-origin: 0px 0px; perspective-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eThis problem can be solved using dynamic programming but there are other methods too.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-bottom: 9px; margin-left: 4px; margin-right: 10px; margin-top: 2px; text-align: left; transform-origin: 309px 10.5px; white-space: pre-wrap; perspective-origin: 309px 10.5px; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"display: inline; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; transform-origin: 0px 0px; perspective-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eProblem 7) Prev:\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display: inline; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; transform-origin: 0px 0px; perspective-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"http://www.mathworks.com/matlabcentral/cody/problems/1482\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003e1482\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"display: inline; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; transform-origin: 0px 0px; perspective-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e Next:\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display: inline; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; transform-origin: 0px 0px; perspective-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"http://www.mathworks.com/matlabcentral/cody/problems/1484\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003e1484\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function y = paths2dest_ongrid(n,m)\r\n  y = n+m;\r\nend","test_suite":"%%\r\nm = 1; n = 1 ;\r\ny_correct = 1;\r\nassert(isequal(paths2dest_ongrid(m,n),y_correct))\r\n\r\n%%\r\nm = 2; n = 2 ;\r\ny_correct = 2;\r\nassert(isequal(paths2dest_ongrid(m,n),y_correct))\r\n\r\n%%\r\nm = 4; n = 3 ;\r\ny_correct = 10;\r\nassert(isequal(paths2dest_ongrid(m,n),y_correct))\r\n\r\n%%\r\nm = 6; n = 5 ;\r\ny_correct = 126;\r\nassert(isequal(paths2dest_ongrid(m,n),y_correct))\r\n\r\n%%\r\nm = 5; n = 5 ;\r\ny_correct = 70;\r\nassert(isequal(paths2dest_ongrid(m,n),y_correct))\r\n\r\n%%\r\nm = 1; n = 100 ;\r\ny_correct = 1;\r\nassert(isequal(paths2dest_ongrid(m,n),y_correct))\r\n\r\n%%\r\nm = 100; n = 1 ;\r\ny_correct = 1;\r\nassert(isequal(paths2dest_ongrid(m,n),y_correct))\r\n\r\n%%\r\nm = 2; n = 100 ;\r\ny_correct = 100;\r\nassert(isequal(paths2dest_ongrid(m,n),y_correct))\r\n\r\n%%\r\nm = 100; n = 2 ;\r\ny_correct = 100;\r\nassert(isequal(paths2dest_ongrid(m,n),y_correct))\r\n\r\n%%\r\nm = 15; n = 20 ;\r\ny_correct = 818809200;\r\nassert(isequal(paths2dest_ongrid(m,n),y_correct))\r\n","published":true,"deleted":false,"likes_count":2,"comments_count":5,"created_by":11275,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":81,"test_suite_updated_at":"2020-09-28T20:02:06.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2013-05-01T14:58:23.000Z","updated_at":"2026-03-19T08:10:31.000Z","published_at":"2013-05-01T14:58:23.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\u003eConsider a grid formed by n vertices vertically down, and m vertices horizontally right. Your starting point is at the top left vertex. Your destination is the bottom right vertex. You are permitted at each vertex to choose to move down or right, that is in the direction towards the destination. You are not to move on what constitutes a back step like moving left or up. If you hit the bottom boundary, or right boundary take it to be given there is only 1 way to the destination, that is following along the boundary.\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\u003eEx: in a 2x2 grid there are two ways. One way: First down, then right. The other way: First right, then down.\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\u003e4x3 has 10 ways\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\u003e6x5 has 126 ways\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 can be solved using dynamic programming but there are other methods too.\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\u003eProblem 7) Prev:\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/1482\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e1482\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e Next:\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/1484\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e1484\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\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":44066,"title":"Number of paths on a 3d grid","description":"This problem is inspired by \u003chttps://www.mathworks.com/matlabcentral/cody/problems/1483-number-of-paths-on-a-grid\u003e, which you might want to solve first.\r\n\r\nConsider a 3d grid formed by n vertices vertically down, m vertices horizontally right, l vertices horizontally front. Your starting point is at the top left front vertex. Your destination is the bottom right back vertex. (From one corner to the furthest corner) You are permitted at each vertex to choose to move down,  right or back, that is in the direction towards the destination. You are not to move on what constitutes a back step like moving left, up, or front. If you hit the bottom boundary, right boundary, or back boundary, take it to be given that you move along the 2d boundary.\r\n\r\nEx: in a 2x2X2 grid there are 6 ways. (down, right, back), (d,b,r), (r,d,b), (r,b,d), (b,r,d), (b,d,r)\r\n\r\n4x3x2 has 60 ways\r\n\r\n6x5x4 has 27720 ways\r\n\r\nThis problem can be solved using dynamic programming but there are other methods too.\r\n\r\n","description_html":"\u003cp\u003eThis problem is inspired by \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/1483-number-of-paths-on-a-grid\"\u003ehttps://www.mathworks.com/matlabcentral/cody/problems/1483-number-of-paths-on-a-grid\u003c/a\u003e, which you might want to solve first.\u003c/p\u003e\u003cp\u003eConsider a 3d grid formed by n vertices vertically down, m vertices horizontally right, l vertices horizontally front. Your starting point is at the top left front vertex. Your destination is the bottom right back vertex. (From one corner to the furthest corner) You are permitted at each vertex to choose to move down,  right or back, that is in the direction towards the destination. You are not to move on what constitutes a back step like moving left, up, or front. If you hit the bottom boundary, right boundary, or back boundary, take it to be given that you move along the 2d boundary.\u003c/p\u003e\u003cp\u003eEx: in a 2x2X2 grid there are 6 ways. (down, right, back), (d,b,r), (r,d,b), (r,b,d), (b,r,d), (b,d,r)\u003c/p\u003e\u003cp\u003e4x3x2 has 60 ways\u003c/p\u003e\u003cp\u003e6x5x4 has 27720 ways\u003c/p\u003e\u003cp\u003eThis problem can be solved using dynamic programming but there are other methods too.\u003c/p\u003e","function_template":"function y = count3dPath(x)\r\n  y = x;\r\nend","test_suite":"%%\r\nm = 2; n = 2 ; l = 5;\r\ny_correct = 30;\r\nassert(isequal(count3dPath(m,n,l),y_correct))\r\n \t\t\r\n%%\r\nm = 8; n = 5 ; l = 2;\r\ny_correct = 3960;\r\nassert(isequal(count3dPath(m,n,l),y_correct))\r\n\t\r\n%%\r\nm = 5; n = 5 ; l = 10;\r\ny_correct = 1701700;\r\nassert(isequal(count3dPath(m,n,l),y_correct))\r\n\t\r\n%%\r\nm = 8; n = 4 ; l=2;\r\ny_correct = 1320;\r\nassert(isequal(count3dPath(m,n,l),y_correct))\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":1,"created_by":115733,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":53,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2017-02-14T00:01:08.000Z","updated_at":"2026-03-19T08:12:10.000Z","published_at":"2017-02-14T00:01:08.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 problem is inspired by\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/1483-number-of-paths-on-a-grid\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026lt;https://www.mathworks.com/matlabcentral/cody/problems/1483-number-of-paths-on-a-grid\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026gt;, which you might want to solve first.\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 a 3d grid formed by n vertices vertically down, m vertices horizontally right, l vertices horizontally front. Your starting point is at the top left front vertex. Your destination is the bottom right back vertex. (From one corner to the furthest corner) You are permitted at each vertex to choose to move down, right or back, that is in the direction towards the destination. You are not to move on what constitutes a back step like moving left, up, or front. If you hit the bottom boundary, right boundary, or back boundary, take it to be given that you move along the 2d boundary.\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\u003eEx: in a 2x2X2 grid there are 6 ways. (down, right, back), (d,b,r), (r,d,b), (r,b,d), (b,r,d), (b,d,r)\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\u003e4x3x2 has 60 ways\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\u003e6x5x4 has 27720 ways\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\u003eThis problem can be solved using dynamic programming but there are other methods too.\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":1463,"title":"Pascal's Matrix","description":"Given an integer n \u0026ge; 0, generate the ( _n_+1) \u0026times; ( _n_+1) lower triangular \u003chttp://en.wikipedia.org/wiki/Pascal_matrix Pascal's Matrix\u003e.\r\n\r\n*Examples*:\r\n\r\n pascalMat(0)\r\n ans =\r\n     1\r\n\r\n \r\n pascalMat(1)\r\n ans =\r\n     1     0 \r\n     1     1 \r\n \r\n pascalMat(2)\r\n ans =\r\n     1     0     0\r\n     1     1     0\r\n     1     2     1\r\n\r\nNeither *string operations* nor *interpolations* are allowed!\r\n","description_html":"\u003cp\u003eGiven an integer n \u0026ge; 0, generate the ( \u003ci\u003en\u003c/i\u003e+1) \u0026times; ( \u003ci\u003en\u003c/i\u003e+1) lower triangular \u003ca href = \"http://en.wikipedia.org/wiki/Pascal_matrix\"\u003ePascal's Matrix\u003c/a\u003e.\u003c/p\u003e\u003cp\u003e\u003cb\u003eExamples\u003c/b\u003e:\u003c/p\u003e\u003cpre\u003e pascalMat(0)\r\n ans =\r\n     1\u003c/pre\u003e\u003cpre\u003e pascalMat(1)\r\n ans =\r\n     1     0 \r\n     1     1 \u003c/pre\u003e\u003cpre\u003e pascalMat(2)\r\n ans =\r\n     1     0     0\r\n     1     1     0\r\n     1     2     1\u003c/pre\u003e\u003cp\u003eNeither \u003cb\u003estring operations\u003c/b\u003e nor \u003cb\u003einterpolations\u003c/b\u003e are allowed!\u003c/p\u003e","function_template":"function P = pascalMat(n)\r\n  P = n;\r\nend","test_suite":"%%\r\nuser_solution = fileread('pascalMat.m');\r\nassert(isempty(strfind(user_solution,'regexp')));\r\nassert(isempty(strfind(user_solution,'2str')));\r\nassert(isempty(strfind(user_solution,'str2')));\r\nassert(isempty(strfind(user_solution,'interp')));\r\nassert(isempty(strfind(user_solution,'printf')));\r\nassert(isempty(strfind(user_solution,'assert')));\r\n\r\n%%\r\nn = 0;\r\nP_correct = [\r\n    1\r\n    ];\r\nassert(isequal(pascalMat(n),P_correct));\r\n\r\n%%\r\nn = 1;\r\nP_correct = [\r\n    1  0\r\n    1  1\r\n    ];\r\nassert(isequal(pascalMat(n),P_correct));\r\n\r\n%%\r\nn = 2;\r\nP_correct = [\r\n    1  0  0\r\n    1  1  0\r\n    1  2  1\r\n    ];\r\nassert(isequal(pascalMat(n),P_correct));\r\n\r\n%%\r\nn = 3;\r\nP_correct = [\r\n    1  0  0  0\r\n    1  1  0  0\r\n    1  2  1  0\r\n    1  3  3  1\r\n    ];\r\nassert(isequal(pascalMat(n),P_correct));\r\n\r\n%%\r\nn = 4;\r\nP_correct = [\r\n    1  0  0  0  0\r\n    1  1  0  0  0\r\n    1  2  1  0  0\r\n    1  3  3  1  0\r\n    1  4  6  4  1\r\n    ];\r\nassert(isequal(pascalMat(n),P_correct));\r\n\r\n%%\r\nn = 5;\r\nP_correct = [\r\n    1   0   0   0   0   0\r\n    1   1   0   0   0   0\r\n    1   2   1   0   0   0\r\n    1   3   3   1   0   0\r\n    1   4   6   4   1   0\r\n    1   5  10  10   5   1\r\n    ];\r\nassert(isequal(pascalMat(n),P_correct));\r\n\r\n%%\r\nn = 6;\r\nP_correct = [\r\n    1   0   0   0   0   0   0\r\n    1   1   0   0   0   0   0\r\n    1   2   1   0   0   0   0\r\n    1   3   3   1   0   0   0\r\n    1   4   6   4   1   0   0\r\n    1   5  10  10   5   1   0\r\n    1   6  15  20  15   6   1\r\n    ];\r\nassert(isequal(pascalMat(n),P_correct));\r\n\r\n%%\r\nn = 7;\r\nP_correct = [\r\n    1   0   0   0   0   0   0   0\r\n    1   1   0   0   0   0   0   0\r\n    1   2   1   0   0   0   0   0\r\n    1   3   3   1   0   0   0   0\r\n    1   4   6   4   1   0   0   0\r\n    1   5  10  10   5   1   0   0\r\n    1   6  15  20  15   6   1   0\r\n    1   7  21  35  35  21   7   1\r\n    ];\r\nassert(isequal(pascalMat(n),P_correct));\r\n\r\n%%\r\nn = 8;\r\nP_correct = [\r\n    1   0   0   0   0   0   0   0   0\r\n    1   1   0   0   0   0   0   0   0\r\n    1   2   1   0   0   0   0   0   0\r\n    1   3   3   1   0   0   0   0   0\r\n    1   4   6   4   1   0   0   0   0\r\n    1   5  10  10   5   1   0   0   0\r\n    1   6  15  20  15   6   1   0   0\r\n    1   7  21  35  35  21   7   1   0\r\n    1   8  28  56  70  56  28   8   1\r\n    ];\r\nassert(isequal(pascalMat(n),P_correct));\r\n\r\n%%\r\nn = 9;\r\nP_correct = [\r\n    1    0    0    0    0    0    0    0    0    0\r\n    1    1    0    0    0    0    0    0    0    0\r\n    1    2    1    0    0    0    0    0    0    0\r\n    1    3    3    1    0    0    0    0    0    0\r\n    1    4    6    4    1    0    0    0    0    0\r\n    1    5   10   10    5    1    0    0    0    0\r\n    1    6   15   20   15    6    1    0    0    0\r\n    1    7   21   35   35   21    7    1    0    0\r\n    1    8   28   56   70   56   28    8    1    0\r\n    1    9   36   84  126  126   84   36    9    1\r\n    ];\r\nassert(isequal(pascalMat(n),P_correct));\r\n\r\n%%\r\nn = 10;\r\nP_correct = [\r\n    1    0    0    0    0    0    0    0    0    0    0\r\n    1    1    0    0    0    0    0    0    0    0    0\r\n    1    2    1    0    0    0    0    0    0    0    0\r\n    1    3    3    1    0    0    0    0    0    0    0\r\n    1    4    6    4    1    0    0    0    0    0    0\r\n    1    5   10   10    5    1    0    0    0    0    0\r\n    1    6   15   20   15    6    1    0    0    0    0\r\n    1    7   21   35   35   21    7    1    0    0    0\r\n    1    8   28   56   70   56   28    8    1    0    0\r\n    1    9   36   84  126  126   84   36    9    1    0\r\n    1   10   45  120  210  252  210  120   45   10    1\r\n    ];\r\nassert(isequal(pascalMat(n),P_correct));\r\n\r\n%%\r\nn = 11;\r\nP_correct = [\r\n    1    0    0    0    0    0    0    0    0    0    0    0\r\n    1    1    0    0    0    0    0    0    0    0    0    0\r\n    1    2    1    0    0    0    0    0    0    0    0    0\r\n    1    3    3    1    0    0    0    0    0    0    0    0\r\n    1    4    6    4    1    0    0    0    0    0    0    0\r\n    1    5   10   10    5    1    0    0    0    0    0    0\r\n    1    6   15   20   15    6    1    0    0    0    0    0\r\n    1    7   21   35   35   21    7    1    0    0    0    0\r\n    1    8   28   56   70   56   28    8    1    0    0    0\r\n    1    9   36   84  126  126   84   36    9    1    0    0\r\n    1   10   45  120  210  252  210  120   45   10    1    0\r\n    1   11   55  165  330  462  462  330  165   55   11    1\r\n    ];\r\nassert(isequal(pascalMat(n),P_correct));\r\n\r\n%%\r\nn = 12;\r\nP_correct = [\r\n    1    0    0    0    0    0    0    0    0    0    0    0    0\r\n    1    1    0    0    0    0    0    0    0    0    0    0    0\r\n    1    2    1    0    0    0    0    0    0    0    0    0    0\r\n    1    3    3    1    0    0    0    0    0    0    0    0    0\r\n    1    4    6    4    1    0    0    0    0    0    0    0    0\r\n    1    5   10   10    5    1    0    0    0    0    0    0    0\r\n    1    6   15   20   15    6    1    0    0    0    0    0    0\r\n    1    7   21   35   35   21    7    1    0    0    0    0    0\r\n    1    8   28   56   70   56   28    8    1    0    0    0    0\r\n    1    9   36   84  126  126   84   36    9    1    0    0    0\r\n    1   10   45  120  210  252  210  120   45   10    1    0    0\r\n    1   11   55  165  330  462  462  330  165   55   11    1    0\r\n    1   12   66  220  495  792  924  792  495  220   66   12    1\r\n    ];\r\nassert(isequal(pascalMat(n),P_correct));\r\n\r\n%%\r\nn = 13;\r\nP_correct = [\r\n    1     0     0     0     0     0     0     0     0     0     0     0     0     0\r\n    1     1     0     0     0     0     0     0     0     0     0     0     0     0\r\n    1     2     1     0     0     0     0     0     0     0     0     0     0     0\r\n    1     3     3     1     0     0     0     0     0     0     0     0     0     0\r\n    1     4     6     4     1     0     0     0     0     0     0     0     0     0\r\n    1     5    10    10     5     1     0     0     0     0     0     0     0     0\r\n    1     6    15    20    15     6     1     0     0     0     0     0     0     0\r\n    1     7    21    35    35    21     7     1     0     0     0     0     0     0\r\n    1     8    28    56    70    56    28     8     1     0     0     0     0     0\r\n    1     9    36    84   126   126    84    36     9     1     0     0     0     0\r\n    1    10    45   120   210   252   210   120    45    10     1     0     0     0\r\n    1    11    55   165   330   462   462   330   165    55    11     1     0     0\r\n    1    12    66   220   495   792   924   792   495   220    66    12     1     0\r\n    1    13    78   286   715  1287  1716  1716  1287   715   286    78    13     1\r\n    ];\r\nassert(isequal(pascalMat(n),P_correct));\r\n\r\n%%\r\nn = 14;\r\nP_correct = [\r\n    1              0              0              0              0              0              0              0              0              0              0              0              0              0              0\r\n    1              1              0              0              0              0              0              0              0              0              0              0              0              0              0\r\n    1              2              1              0              0              0              0              0              0              0              0              0              0              0              0\r\n    1              3              3              1              0              0              0              0              0              0              0              0              0              0              0\r\n    1              4              6              4              1              0              0              0              0              0              0              0              0              0              0\r\n    1              5             10             10              5              1              0              0              0              0              0              0              0              0              0\r\n    1              6             15             20             15              6              1              0              0              0              0              0              0              0              0\r\n    1              7             21             35             35             21              7              1              0              0              0              0              0              0              0\r\n    1              8             28             56             70             56             28              8              1              0              0              0              0              0              0\r\n    1              9             36             84            126            126             84             36              9              1              0              0              0              0              0\r\n    1             10             45            120            210            252            210            120             45             10              1              0              0              0              0\r\n    1             11             55            165            330            462            462            330            165             55             11              1              0              0              0\r\n    1             12             66            220            495            792            924            792            495            220             66             12              1              0              0\r\n    1             13             78            286            715           1287           1716           1716           1287            715            286             78             13              1              0\r\n    1             14             91            364           1001           2002           3003           3432           3003           2002           1001            364             91             14              1\r\n    ];\r\nassert(isequal(pascalMat(n),P_correct));\r\n\r\n%%\r\nn = 15;\r\nP_correct = [\r\n    1              0              0              0              0              0              0              0              0              0              0              0              0              0              0              0\r\n    1              1              0              0              0              0              0              0              0              0              0              0              0              0              0              0\r\n    1              2              1              0              0              0              0              0              0              0              0              0              0              0              0              0\r\n    1              3              3              1              0              0              0              0              0              0              0              0              0              0              0              0\r\n    1              4              6              4              1              0              0              0              0              0              0              0              0              0              0              0\r\n    1              5             10             10              5              1              0              0              0              0              0              0              0              0              0              0\r\n    1              6             15             20             15              6              1              0              0              0              0              0              0              0              0              0\r\n    1              7             21             35             35             21              7              1              0              0              0              0              0              0              0              0\r\n    1              8             28             56             70             56             28              8              1              0              0              0              0              0              0              0\r\n    1              9             36             84            126            126             84             36              9              1              0              0              0              0              0              0\r\n    1             10             45            120            210            252            210            120             45             10              1              0              0              0              0              0\r\n    1             11             55            165            330            462            462            330            165             55             11              1              0              0              0              0\r\n    1             12             66            220            495            792            924            792            495            220             66             12              1              0              0              0\r\n    1             13             78            286            715           1287           1716           1716           1287            715            286             78             13              1              0              0\r\n    1             14             91            364           1001           2002           3003           3432           3003           2002           1001            364             91             14              1              0\r\n    1             15            105            455           1365           3003           5005           6435           6435           5005           3003           1365            455            105             15              1\r\n    ];\r\nassert(isequal(pascalMat(n),P_correct));\r\n\r\n","published":true,"deleted":false,"likes_count":6,"comments_count":0,"created_by":10352,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":382,"test_suite_updated_at":"2013-04-28T07:09:30.000Z","rescore_all_solutions":false,"group_id":18,"created_at":"2013-04-27T13:20:43.000Z","updated_at":"2026-03-31T18:04:35.000Z","published_at":"2013-04-27T13:43: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=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eGiven an integer n ≥ 0, generate 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:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003en\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e+1) × (\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\u003en\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e+1) lower triangular\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/Pascal_matrix\\\"\u003e\u003cw:r\u003e\u003cw:t\u003ePascal's Matrix\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:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eExamples\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=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[ pascalMat(0)\\n ans =\\n     1\\n\\n pascalMat(1)\\n ans =\\n     1     0 \\n     1     1 \\n\\n pascalMat(2)\\n ans =\\n     1     0     0\\n     1     1     0\\n     1     2     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\u003eNeither\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\u003estring operations\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e nor\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\u003einterpolations\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e are allowed!\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":52629,"title":"Count the ways to draw non-intersecting chords between points on a circle","description":"There are 9 ways to draw non-intersecting chords between four points on the perimeter of a circle (including no chords at all). In this case there is no way to draw three chords between the four points because two would have to intersect at one of the points or elsewhere. \r\nWrite a function to count the ways to draw non-intersecting chords between a given number of points.\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: 467.517px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 233.758px; transform-origin: 407px 233.758px; 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: 375.758px 8.05px; transform-origin: 375.758px 8.05px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThere are 9 ways to draw non-intersecting chords between four points on the perimeter of a circle (including no chords at all). In this case there is no way to draw three chords between the four points because two would have to intersect at one of the points or elsewhere. \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: 313.383px 8.05px; transform-origin: 313.383px 8.05px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eWrite a function to count the ways to draw non-intersecting chords between a given number of points.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 365.517px; 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 182.758px; text-align: left; transform-origin: 384px 182.758px; 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: 640px;height: 360px\" src=\"data:image/png;base64,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\" data-image-state=\"image-loaded\" width=\"640\" height=\"360\"\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function y = numChords(n)\r\n  y = f(n)\r\nend","test_suite":"%%\r\nn = 4;\r\ny_correct = 9;\r\nassert(isequal(numChords(n),y_correct))\r\n\r\n%%\r\nn = 7;\r\ny_correct = 127;\r\nassert(isequal(numChords(n),y_correct))\r\n\r\n%%\r\nn = 9;\r\ny_correct = 835;\r\nassert(isequal(numChords(n),y_correct))\r\n\r\n%%\r\nn = 15;\r\ny_correct = 310572;\r\nassert(isequal(numChords(n),y_correct))\r\n\r\n%%\r\nn = 20;\r\ny_correct = 50852019;\r\nassert(isequal(numChords(n),y_correct))\r\n\r\n%%\r\nn = 25;\r\ny_correct = 9043402501;\r\nassert(isequal(numChords(n),y_correct))\r\n\r\n%%\r\nn = 30;\r\ny_correct = 1697385471211;\r\nassert(isequal(numChords(n),y_correct))\r\n\r\n%%\r\nn = 33;\r\ny_correct = 40002464776083;\r\nassert(isequal(numChords(n),y_correct))\r\n\r\n%%\r\nn1 = 5;\r\nyy_correct = 142547559;\r\nassert(isequal(numChords(numChords(n1)),yy_correct))\r\n\r\n%%\r\nfiletext = fileread('numChords.m');\r\nillegal = contains(filetext, 'assignin') || contains(filetext, 'regexp') || contains(filetext, 'oeis'); \r\nassert(~illegal)","published":true,"deleted":false,"likes_count":1,"comments_count":1,"created_by":46909,"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":"2021-08-26T04:40:18.000Z","updated_at":"2026-01-15T18:19:29.000Z","published_at":"2021-08-28T21:24:11.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\u003eThere are 9 ways to draw non-intersecting chords between four points on the perimeter of a circle (including no chords at all). In this case there is no way to draw three chords between the four points because two would have to intersect at one of the points or elsewhere. \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 count the ways to draw non-intersecting chords between a given number of points.\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=\\\"360\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"640\\\"/\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":44072,"title":"Number of paths on a n-dimensional grid","description":"This problem is inspired by \u003chttps://www.mathworks.com/matlabcentral/cody/problems/1483-number-of-paths-on-a-grid\u003e and  \u003chttps://www.mathworks.com/matlabcentral/cody/problems/44066-number-of-paths-on-a-3d-grid\u003e, which you might want to solve first.\r\n \r\nConsider n-dimensional grid, and you are moving from one corner to the farthest corner in a minimal number of moves. Each move corresponds to moving to a neighbouring hypercube (among possible up to 2*n neighbours). How many ways are there?\r\n\r\nInput format is a row array of size \"d\" (for d dimension) with number of grid points on each direction.\r\n\r\nOptional: can you solve it without loops?","description_html":"\u003cp\u003eThis problem is inspired by \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/1483-number-of-paths-on-a-grid\"\u003ehttps://www.mathworks.com/matlabcentral/cody/problems/1483-number-of-paths-on-a-grid\u003c/a\u003e and  \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/44066-number-of-paths-on-a-3d-grid\"\u003ehttps://www.mathworks.com/matlabcentral/cody/problems/44066-number-of-paths-on-a-3d-grid\u003c/a\u003e, which you might want to solve first.\u003c/p\u003e\u003cp\u003eConsider n-dimensional grid, and you are moving from one corner to the farthest corner in a minimal number of moves. Each move corresponds to moving to a neighbouring hypercube (among possible up to 2*n neighbours). How many ways are there?\u003c/p\u003e\u003cp\u003eInput format is a row array of size \"d\" (for d dimension) with number of grid points on each direction.\u003c/p\u003e\u003cp\u003eOptional: can you solve it without loops?\u003c/p\u003e","function_template":"function y = countNdPath(NdRowVector)\r\n  y = sum(NdRowVector);\r\nend","test_suite":"%%\r\nNdRowVector = [3,3,3,3,3];\r\ny_correct = 113400;\r\nassert(isequal(countNdPath(NdRowVector),y_correct))\r\n\r\n%%\r\nNdRowVector = [1,3,3,3,3,1,1,1,3,3];\r\ny_correct = 7484400;\r\nassert(isequal(countNdPath(NdRowVector),y_correct))\r\n\r\n%%\r\nNdRowVector = [2,2,2,2,2,2,2,1,1,2,2,2,2];\r\ny_correct = 39916800;\r\nassert(isequal(countNdPath(NdRowVector),y_correct))","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":115733,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":50,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2017-02-14T01:28:35.000Z","updated_at":"2025-12-16T03:16:34.000Z","published_at":"2017-02-14T01:28:35.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 problem is inspired by\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/1483-number-of-paths-on-a-grid\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026lt;https://www.mathworks.com/matlabcentral/cody/problems/1483-number-of-paths-on-a-grid\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026gt; 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://www.mathworks.com/matlabcentral/cody/problems/44066-number-of-paths-on-a-3d-grid\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026lt;https://www.mathworks.com/matlabcentral/cody/problems/44066-number-of-paths-on-a-3d-grid\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026gt;, which you might want to solve first.\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 n-dimensional grid, and you are moving from one corner to the farthest corner in a minimal number of moves. Each move corresponds to moving to a neighbouring hypercube (among possible up to 2*n neighbours). How many ways are there?\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\u003eInput format is a row array of size \\\"d\\\" (for d dimension) with number of grid points on each direction.\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\u003eOptional: can you solve it without loops?\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":37,"title":"Pascal's Triangle","description":"Given an integer n \u003e= 0, generate the length n+1 row vector representing the n-th row of \u003chttp://en.wikipedia.org/wiki/Pascals_triangle Pascal's Triangle\u003e.\r\n\r\nExamples:\r\n\r\n pascalTri(0)\r\n ans =\r\n     1\r\n\r\n pascalTri(1)\r\n ans =\r\n     1     1\r\n\r\n pascalTri(2)\r\n ans =\r\n     1     2     1\r\n","description_html":"\u003cp\u003eGiven an integer n \u003e= 0, generate the length n+1 row vector representing the n-th row of \u003ca href=\"http://en.wikipedia.org/wiki/Pascals_triangle\"\u003ePascal's Triangle\u003c/a\u003e.\u003c/p\u003e\u003cp\u003eExamples:\u003c/p\u003e\u003cpre\u003e pascalTri(0)\r\n ans =\r\n     1\u003c/pre\u003e\u003cpre\u003e pascalTri(1)\r\n ans =\r\n     1     1\u003c/pre\u003e\u003cpre\u003e pascalTri(2)\r\n ans =\r\n     1     2     1\u003c/pre\u003e","function_template":"function y = pascalTri(n)\r\ny = n;\r\nend","test_suite":"%%\r\nn = 0;\r\ncorrect = [1];\r\nassert(isequal(pascalTri(n),correct))\r\n\r\n\r\n%%\r\nn = 1;\r\ncorrect = [1 1];\r\nassert(isequal(pascalTri(n),correct))\r\n\r\n\r\n%%\r\nn = 2;\r\ncorrect = [1 2 1];\r\nassert(isequal(pascalTri(n),correct))\r\n\r\n\r\n%%\r\nn = 3;\r\ncorrect = [1 3 3 1];\r\nassert(isequal(pascalTri(n),correct))\r\n\r\n\r\n%%\r\nn = 10;\r\ncorrect = [1 10 45 120 210 252 210 120 45 10 1];\r\nassert(isequal(pascalTri(n),correct))\r\n\r\n","published":true,"deleted":false,"likes_count":26,"comments_count":5,"created_by":1,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":4491,"test_suite_updated_at":"2012-01-26T14:20:57.000Z","rescore_all_solutions":false,"group_id":2,"created_at":"2012-01-18T01:00:22.000Z","updated_at":"2026-03-10T07:00:26.000Z","published_at":"2012-01-18T01:00: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=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eGiven an integer n \u0026gt;= 0, generate the length n+1 row vector representing the n-th row 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=\\\"http://en.wikipedia.org/wiki/Pascals_triangle\\\"\u003e\u003cw:r\u003e\u003cw:t\u003ePascal's Triangle\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\u003eExamples:\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[ pascalTri(0)\\n ans =\\n     1\\n\\n pascalTri(1)\\n ans =\\n     1     1\\n\\n pascalTri(2)\\n ans =\\n     1     2     1]]\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":604,"title":"Next lexicographic - permutation","description":"Find next lexicographic - permutation (permutations as it would occur in a dictionary order).\r\nE.g: nextP('ABCD') = ABDC\r\nIf you can generate the next permutation, then you can also generate a 'cycle' of all permutations using a construct like,\r\n     cycle = +1;\r\n     curr = start;\r\n     while ( true )         \r\n         curr = nextP(curr);\r\n         if ( curr == start )\r\n             break;\r\n         end\r\n         cycle = cycle+1;\r\n     end\r\nFor fun, you could generate all the n! permutations of a, unique n-letter string.","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: 305.9px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 152.95px; transform-origin: 407px 152.95px; 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; 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: 285.5px 8px; transform-origin: 285.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eFind next lexicographic - permutation (permutations as it would occur in a dictionary order).\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: 86px 8px; transform-origin: 86px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eE.g: nextP('ABCD') = ABDC\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: 375.5px 8px; transform-origin: 375.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eIf you can generate the next permutation, then you can also generate a 'cycle' of all permutations using a construct like,\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgb(247, 247, 247); block-size: 183.9px; 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 91.95px; transform-origin: 404px 91.95px; 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: 64px 8.5px; tab-size: 4; transform-origin: 64px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e     cycle = +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: 72px 8.5px; tab-size: 4; transform-origin: 72px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e     curr = start;\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: 112px 8.5px; tab-size: 4; transform-origin: 112px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; perspective-origin: 20px 8.5px; transform-origin: 20px 8.5px; \"\u003e     \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: 24px 8.5px; text-decoration-color: rgb(14, 0, 255); text-emphasis-color: rgb(14, 0, 255); transform-origin: 24px 8.5px; \"\u003ewhile \u003c/span\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; perspective-origin: 68px 8.5px; transform-origin: 68px 8.5px; \"\u003e( 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: 112px 8.5px; tab-size: 4; transform-origin: 112px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e         curr = nextP(curr);\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; perspective-origin: 36px 8.5px; transform-origin: 36px 8.5px; \"\u003e         \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-color: rgb(14, 0, 255); text-emphasis-color: rgb(14, 0, 255); transform-origin: 12px 8.5px; \"\u003eif \u003c/span\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; perspective-origin: 68px 8.5px; transform-origin: 68px 8.5px; \"\u003e( curr == start )\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: 76px 8.5px; tab-size: 4; transform-origin: 76px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; perspective-origin: 52px 8.5px; transform-origin: 52px 8.5px; \"\u003e             \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: 20px 8.5px; text-decoration-color: rgb(14, 0, 255); text-emphasis-color: rgb(14, 0, 255); transform-origin: 20px 8.5px; \"\u003ebreak\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\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: 48px 8.5px; tab-size: 4; transform-origin: 48px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; perspective-origin: 36px 8.5px; transform-origin: 36px 8.5px; \"\u003e         \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-color: rgb(14, 0, 255); text-emphasis-color: rgb(14, 0, 255); transform-origin: 12px 8.5px; \"\u003eend\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         cycle = cycle+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: 32px 8.5px; tab-size: 4; transform-origin: 32px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; perspective-origin: 20px 8.5px; transform-origin: 20px 8.5px; \"\u003e     \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-color: rgb(14, 0, 255); text-emphasis-color: rgb(14, 0, 255); transform-origin: 12px 8.5px; \"\u003eend\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: 246px 8px; transform-origin: 246px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eFor fun, you could generate all the n! permutations of a, unique n-letter string.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function next = nextP(curr)\r\n    next = \r\nend\r\n","test_suite":"%%\r\nx = 'ABCD';\r\ny_correct = 'ABDC';\r\nassert(isequal(nextP(x),y_correct))\r\n%%\r\nx = 'ABDC';\r\ny_correct = 'ACBD';\r\nassert(isequal(nextP(x),y_correct))\r\n%%\r\nx = 'ACBD';\r\ny_correct = 'ACDB';\r\nassert(isequal(nextP(x),y_correct))\r\n%%\r\nx = 'ACDB';\r\ny_correct = 'ADBC';\r\nassert(isequal(nextP(x),y_correct))\r\n%%\r\nx = 'LOVE';\r\ny_correct = 'LVEO';\r\nassert(isequal(nextP(x),y_correct))\r\n%%\r\nx = 'CAST';\r\ny_correct = 'CATS';\r\nassert(isequal(nextP(x),y_correct))\r\n%%\r\nx = 'THEQUICKBROWNFOXJUMPEDOVERTHELAZYDOG';\r\ny_correct = 'THEQUICKBROWNFOXJUMPEDOVERTHELAZYGOD';\r\nassert(isequal(nextP(nextP(x)),y_correct));\r\n%%\r\ns = 1;\r\nx = 'ABCDE';\r\ny_correct = 120;\r\ny = x;\r\nwhile(1) \r\n  y = nextP(y);\r\n  if ( strcmp(x,y) ) break; end\r\n  s = s+1; \r\nend\r\nassert(s == y_correct)\r\n\r\n","published":true,"deleted":false,"likes_count":2,"comments_count":2,"created_by":3378,"edited_by":223089,"edited_at":"2023-07-21T07:24:22.000Z","deleted_by":null,"deleted_at":null,"solvers_count":53,"test_suite_updated_at":"2023-07-21T07:24:22.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2012-04-20T05:57:59.000Z","updated_at":"2026-02-13T01:03:40.000Z","published_at":"2012-04-20T17:36:03.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\u003eFind next lexicographic - permutation (permutations as it would occur in a dictionary order).\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\u003eE.g: nextP('ABCD') = ABDC\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 you can generate the next permutation, then you can also generate a 'cycle' of all permutations using a construct like,\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[     cycle = +1;\\n     curr = start;\\n     while ( true )         \\n         curr = nextP(curr);\\n         if ( curr == start )\\n             break;\\n         end\\n         cycle = cycle+1;\\n     end]]\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\u003eFor fun, you could generate all the n! permutations of a, unique n-letter string.\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":56448,"title":"nth permutation of 11...100...0","description":"Given some number of ones and zeros, numOnes and numZeros respectively, find the nth permutation of the vector [ones(1,numOnes), zeros(1,numZeros)] according to the lexicographical order.  For example, if numOnes = 3 and numZeros = 2 then there are nchoosek(5,3) = 10 permutations of 11100.  The lexicographic numbering is below\r\n1     11100\r\n2     11010\r\n3     11001\r\n4     10110\r\n5     10101\r\n6     10011\r\n7     01110\r\n8     01101\r\n9     01011\r\n10   00111\r\nso for instance nthPerm(3,2,8) = [0,1,1,0,1].  You can assume that numOnes and numZeros will always be greater than or equal to 1.  Lastly, your code should not enumerate all possibilities since one of the test cases contains billions of permutations.","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: 435px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 217.5px; transform-origin: 407px 217.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: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eGiven some number of ones and zeros, numOnes and numZeros respectively, find the nth permutation of the vector [ones(1,numOnes), zeros(1,numZeros)] according to the lexicographical order.  For example, if numOnes = 3 and numZeros = 2 then there are nchoosek(5,3) = 10 permutations of 11100.  The lexicographic numbering is below\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: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e1     11100\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: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e2     11010\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: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e3     11001\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: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e4     10110\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: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e5     10101\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: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e6     10011\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: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e7     01110\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: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e8     01101\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: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e9     01011\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: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e10   00111\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: 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=\"\"\u003eso for instance nthPerm(3,2,8) = [0,1,1,0,1].  You can assume that numOnes and numZeros will always be greater than or equal to 1.  Lastly, your code should not enumerate all possibilities since one of the test cases contains billions of permutations.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function y = nthPerm(numOnes,numZeros,n)\r\n  y = [];\r\nend","test_suite":"%%\r\nnumOnes = 1;\r\nnumZeros = 1;\r\nn = 1;\r\ny_correct = [1,0];\r\nassert(isequal(nthPerm(numOnes,numZeros,n),y_correct))\r\n\r\n%%\r\nnumOnes = 3;\r\nnumZeros = 2;\r\nn = 4;\r\ny_correct = [1,0,1,1,0];\r\nassert(isequal(nthPerm(numOnes,numZeros,n),y_correct))\r\n\r\n%%\r\nnumOnes = 10;\r\nnumZeros = 1;\r\nn = 11;\r\ny_correct = [0,1,1,1,1,1,1,1,1,1,1];\r\nassert(isequal(nthPerm(numOnes,numZeros,n),y_correct))\r\n\r\n%%\r\nnumOnes = 18;\r\nnumZeros = 7;\r\nn = 408913;\r\ny_correct = [0,1,1,0,1,1,1,0,0,0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1];\r\nassert(isequal(nthPerm(numOnes,numZeros,n),y_correct))\r\n\r\n%%\r\nnumOnes = 17;\r\nnumZeros = 23;\r\nn = 40207127;\r\ny_correct = [1,1,1,1,1,1,1,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,1,1,0,1,0,0,0,1];\r\nassert(isequal(nthPerm(numOnes,numZeros,n),y_correct))","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":2198965,"edited_by":2198965,"edited_at":"2022-11-04T08:56:28.000Z","deleted_by":null,"deleted_at":null,"solvers_count":3,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2022-11-03T23:19:23.000Z","updated_at":"2022-11-04T08:56:28.000Z","published_at":"2022-11-03T23:52:22.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\u003eGiven some number of ones and zeros, numOnes and numZeros respectively, find the nth permutation of the vector [ones(1,numOnes), zeros(1,numZeros)] according to the lexicographical order.  For example, if numOnes = 3 and numZeros = 2 then there are nchoosek(5,3) = 10 permutations of 11100.  The lexicographic numbering is below\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\u003e1     11100\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\u003e2     11010\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\u003e3     11001\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\u003e4     10110\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\u003e5     10101\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\u003e6     10011\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\u003e7     01110\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\u003e8     01101\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\u003e9     01011\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\u003e10   00111\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\u003eso for instance nthPerm(3,2,8) = [0,1,1,0,1].  You can assume that numOnes and numZeros will always be greater than or equal to 1.  Lastly, your code should not enumerate all possibilities since one of the test cases contains billions of permutations.\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":44787,"title":"What can you get for exactly amount of money(harder)","description":"Inspired by \"Problem 42996. what can you get for exactly amount of money\"\r\n\u003chttps://ww2.mathworks.cn/matlabcentral/cody/problems/42996-what-can-you-get-for-exactly-amount-of-money\u003e\r\nProblem 42996 is a good problem, but the test suit is too weak.\r\n\r\nYou go to store, where each product has price. Prices are in vector\r\n\r\nv = [ 195 125 260 440 395 290]\r\nand you have amount of money s=570\r\n\r\nQuestion is what can you buy, if you want to use whole amount of money\r\n\r\nFor this data answer is\r\n\r\nres=[ 125 125 125 195]\r\n\r\nThe answer may not be unique, return any feasible answer.\r\nDo not cheat please.\r\n\r\nIn this hard version, \r\n1 \u003c= length(v) \u003c= 50\r\n1 \u003c= s \u003c= 10000000019 (1e10 + 19)\r\n","description_html":"\u003cp\u003eInspired by \"Problem 42996. what can you get for exactly amount of money\" \u003ca href = \"https://ww2.mathworks.cn/matlabcentral/cody/problems/42996-what-can-you-get-for-exactly-amount-of-money\"\u003ehttps://ww2.mathworks.cn/matlabcentral/cody/problems/42996-what-can-you-get-for-exactly-amount-of-money\u003c/a\u003e\r\nProblem 42996 is a good problem, but the test suit is too weak.\u003c/p\u003e\u003cp\u003eYou go to store, where each product has price. Prices are in vector\u003c/p\u003e\u003cp\u003ev = [ 195 125 260 440 395 290]\r\nand you have amount of money s=570\u003c/p\u003e\u003cp\u003eQuestion is what can you buy, if you want to use whole amount of money\u003c/p\u003e\u003cp\u003eFor this data answer is\u003c/p\u003e\u003cp\u003eres=[ 125 125 125 195]\u003c/p\u003e\u003cp\u003eThe answer may not be unique, return any feasible answer.\r\nDo not cheat please.\u003c/p\u003e\u003cp\u003eIn this hard version, \r\n1 \u0026lt;= length(v) \u0026lt;= 50\r\n1 \u0026lt;= s \u0026lt;= 10000000019 (1e10 + 19)\u003c/p\u003e","function_template":"function res = buy(v, s)\r\nres = [1, 2, 3];\r\nend","test_suite":"%%\r\nv = [ 195 125 260 440 395 290];\r\ns = 570;\r\ntic\r\nres = buy(v, s);\r\ntoc\r\nassert(sum(res) == s);\r\nassert(all(ismember(res, v)))\r\n\t\r\n%%\r\nv = [ 150 180 60 40];\r\ns = 210;\r\ntic\r\nres = buy(v, s);\r\ntoc\r\nassert(sum(res) == s);\r\nassert(all(ismember(res, v)))\r\n\r\n%%\r\nv = [ 150 180 60 40];\r\ns = 1e10;\r\ntic\r\nres = buy(v, s);\r\ntoc\r\nassert(sum(res) == s);\r\nassert(all(ismember(res, v)))\r\n\r\n%%\r\nv = [123456, 963852, 753159, 7841, 122];\r\ns = 1e10+19;\r\ntic\r\nres = buy(v, s);\r\ntoc\r\nassert(sum(res) == s);\r\nassert(all(ismember(res, v)))\r\n\r\n%%\r\nv = [319,2770,462,972,8235,6949,3171,9503,345,4388,3816,7656,7952,1869,4898,4456,6464,7094,7547,2761,6798,6551,1627,1190,4984,9598,3404,5853,2239,7513];\r\ns = 1e10+19;\r\ntic;\r\nres = buy(v, s);\r\ntoc;\r\nassert(sum(res) == s);\r\nassert(all(ismember(res, v)))\r\n\r\n%%\r\nv = [3898,2417,4040,965,1320,9421,9562,5753,598,2348,3532,8212,155,431,1690,6492,7318,6478,4510,5471,2964,7447,1890,6868,1836,3685,6257,7803,812,9294,7758,4868,4359,4468,3064,5086,5108,8177,7949,6444,3787,8116,5329,3508,9391,8760,5502,6225,5871,2078];\r\ns = 1e10+19;\r\ntic;\r\nres = buy(v, s);\r\ntoc;\r\nassert(sum(res) == s);\r\nassert(all(ismember(res, v)))","published":true,"deleted":false,"likes_count":3,"comments_count":14,"created_by":8269,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":15,"test_suite_updated_at":"2018-11-12T07:09:17.000Z","rescore_all_solutions":false,"group_id":71,"created_at":"2018-11-12T06:38:43.000Z","updated_at":"2025-12-14T23:03:12.000Z","published_at":"2018-11-12T06:39: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=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eInspired by \\\"Problem 42996. what can you get for exactly amount of money\\\"\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://ww2.mathworks.cn/matlabcentral/cody/problems/42996-what-can-you-get-for-exactly-amount-of-money\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026lt;https://ww2.mathworks.cn/matlabcentral/cody/problems/42996-what-can-you-get-for-exactly-amount-of-money\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026gt; Problem 42996 is a good problem, but the test suit is too weak.\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 go to store, where each product has price. Prices are in vector\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\u003ev = [ 195 125 260 440 395 290] and you have amount of money s=570\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\u003eQuestion is what can you buy, if you want to use whole amount of money\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 this data answer 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:r\u003e\u003cw:t\u003eres=[ 125 125 125 195]\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 answer may not be unique, return any feasible answer. Do not cheat please.\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 this hard version, 1 \u0026lt;= length(v) \u0026lt;= 50 1 \u0026lt;= s \u0026lt;= 10000000019 (1e10 + 19)\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":52729,"title":"Easy Sequences 21: Combinatorial Summations","description":"Create the function S(n), defined by the following summation:\r\n                               \r\nThe symbol  is the combination function ('nchoosek(a,b)' in MATLAB). 'S(n)' always yields an integer value,  if 'n' is a positive integer. Present the output modulo 1234567.\r\nNOTE: S(n) may have positive or negative values. Therefore, please use the 'mod' function instead of the 'rem' function to ensure the result would be a positive modulus.","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.440000534057617px; 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: normal; text-decoration: none; white-space: normal; \"\u003e\u003cdiv style=\"block-size: 205px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; 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; text-align: left; 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; \"\u003e\u003cspan style=\"font-weight: bold; \"\u003eCreate the function S(n), defined by the following summation\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; \"\u003e\u003cspan style=\"\"\u003e:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 66px; 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; text-align: left; 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; \"\u003e\u003cspan style=\"\"\u003e                               \u003c/span\u003e\u003c/span\u003e\u003cimg class=\"imageNode\" width=\"224\" height=\"60\" style=\"vertical-align: baseline;width: 224px;height: 60px\" src=\"data:image/gif;base64,R0lGODlh4AA8ALMAAP///wAAALq6unZ2doiIiJiYmNzc3KqqqhAQEGZmZiIiIkRERFRUVDIyMszMzO7u7iH5BAEAAAAALAAAAADgADwAAAT+EMhJq704651fGQchcGRpnmiqrmy7PoMzHUJhAIbDAAKxHYfByEUsGo/IZEaQGBoGkh1ABEgYbhhHAfBQKL/gsDgslBR8AG9Vkig8OI7FeE6v2zHl6Ta9YmDvgIGCRXlnEmoXIQSLBDJmQ4ORkpMaeU9RKQIjB5SdnpECCzGPNigGCA0KUp+sra6vsLFjAbS1tre4ubiyvL2+v8DBEkB5wsbHKlpciMgAhrEGq80ncdMABwm9odYnftMCDS8EQthvYgXS3BkFkMdd5hPgjvEEH0NbATIgR/IWDHvqMGi61mwBQByN8lFwEE5CAyzVADCY18JAQooSHiD4E5DCqVT+6YAdYEZB4YQFnCQQyDYFDYIkJisMCNlRnYKDJSnGFPBSogwBftq5iEnhAdGa3A4EyBDTQYA/Tt/I4fIPydEJM5F2bAAFw86nE5xy/HI1YwB4WpsZAOt1nth4bMOUdYjmGAJaCPLq3Zs3l1BADxbUtTCAZIWYa+cpRash1ILHkCHjzJmBgGFgBWhN3WAAneZJDP5OUMCybUlIB3qKmYuDda8FtCZ3SBBXkGoLRlOaPgmQAE2YGCsgkK3hweDKczTSGvujNAbjRY4v41EA42INAdptc8hcSXYNC0IKGDDOxsHfuJ2DEUDrciXGFdCjeKAemwCLuiUMuF10ZgCuihH+EIRoR8DAwH+jXJAASftIwBMkVJRwAHFIDECLei1EiEI/FExIQQINELhAQ9NkRgETFTBDYgkrhtEALfm10CIJFjkV3IoKxBHjIfL9YuMEbcg0A4V47KiEcrWt4OEKVzXYxTVWYIRAV9OspVt4FfyxQHeN9WiEUv8RsSULVwElgQNQ0CddAET+YhRASjXQiAX8heBGAegEx18YtAVA5Qp7nlBWoBewqU4Ag8XRHlrMGCCAA8MNs9kESynIwKWYZvqnCQrQQmAJ7pVQVqUb5Hbopg6qMoEBK3JSACK+0QkfGGsFgMCsNM4oaHAA3MqBleogwNJYB5DIkAUJUMmAdAr+4PpFZgF4mUWLjkUWGU5lNQtHAEYaIywADghlZkaGIQBJkr0CcmC3HDxJJq+EZsntqVPEGBoF/K01QzhCEZpApgAzgKoJXLUQLwmDkvDmoT5gOcEzEzSAVgEkJuuMR5POcakLEpP5lwEZMyXdMfNCMcDJxUwgIAX1hAXCxG0iQYCuKKw8n38AUoCnqAN/oaizLKz1aZbSUrAA0EiMhDSNRZtwNKgYujBOAihVwNMX7PGKwdMlRFMHpFymwHURXpfAAM0rDIDFwlg1fUJmS68aNQYJxE3EKUObMrcKdZtAAKlF5AikijGrsN+G7OqstRI3odBzPImbUN0J7NlNQqT++gHuGguPpRC2R3WIgkIBe69KdgrffTEiXGdCTASi01B9An2pv0LaF4lhJYcDvB9MzeayzNyuowXAZmvwvq/QwEEAjvBA5H4nHwt7ulRfy+OdGLV42tgukLcKoiOzUgLkl2/++edbPojASOx8Yj4DhFwRumkZc7URAui2R/yHjLC9CSCqn00KB4cmaAIbDtmD4KDXLuAJUBvS48BdbMESbV3DZlKTnzECM7ILOEBAHWyFYIKhkc8F414kmIr7ZPEOYFQlIBEcV0R4AY5foKMjT6rB9lZypghSgnS9mKE67IMfGKDsiDAYlg9/GMJOlK0jIPreFFgCqQdakQ45qtonBsa1nSt68UhewEYOjHjEk72hISv8ohqLgCYuJKCJZxIQ9tY4hwgAADs=\" data-image-state=\"image-loaded\"\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 49px; 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; text-align: left; 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; \"\u003e\u003cspan style=\"\"\u003eThe symbol \u003c/span\u003e\u003c/span\u003e\u003cimg class=\"imageNode\" width=\"15\" height=\"22\" style=\"vertical-align: baseline;width: 15px;height: 22px\" src=\"data:image/gif;base64,R0lGODlhHgAsALMAAP///wAAAJiYmIiIiKqqqmZmZrq6ujIyMu7u7iIiIkRERHZ2dtzc3BAQEFRUVMzMzCH5BAEAAAAALAAAAAAeACwAAAT+EMgpxaAYMJe7JIVHGYo4HiYlcCaSICnlCKZCxxPSMB6R4JgFK5O4ZQYDwoNHQQQeGULAY5M4UMHh5LDoCErWLsYJmzACTEzD2DB0DpfJ4pc5Mx/TzoAuSYQyeBMDJW4YZ1AATgQeDRIIXABGFGsfAWUZBgUESgUClxQKLAuNQCIFdApYpV55CVqrFHhQDWKwhgGLAZK2jroAvrwYAQOKwcILZ4vGEw0FeMrLAM3J0RIBC067wcO/cdG4v7UdG2gmZ25+KYEmBk8AVylf8ZYAA3kiDt4eoxLtnxltUigA86vQOFwEknjg1uePlx0SGvwDIEsQqQ4OagXEMOBiIndHHTb+QgRK3DuTvSZIqVNuhEczfPJlKKCKQpEOdAzU7EXSZQcDCxLqIZhBgb4YOtJkcDERnzYMOoGswCHAoYgHROMdNfRqQgQAOw==\" data-image-state=\"image-loaded\"\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; \"\u003e\u003cspan style=\"\"\u003e is the combination function ('nchoosek(a,b)' in MATLAB). 'S(n)' always yields an integer value,  if 'n' is a positive integer. Present the output modulo 1234567.\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; text-align: left; 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; \"\u003e\u003cspan style=\"font-weight: bold; \"\u003eNOTE:\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; \"\u003e\u003cspan style=\"\"\u003e S(n) may have positive or negative values. Therefore, please use the 'mod' function instead of the 'rem' function to ensure the result would be a positive modulus.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function s = S(n)\r\n    s = mod(sum(arrayfun(@(k) (-1)^k*nchoosek((10^n-1),2*k),0:(10^n-2)/2)),1234567);\r\nend","test_suite":"%%\r\nn = 1;\r\ns_correct = 16;\r\nassert(isequal(S(n),s_correct))\r\n%%\r\nn = 2;\r\ns_correct = 1057020;\r\nassert(isequal(S(n),s_correct))\r\n%%\r\nn = 3;\r\ns_correct = 915039;\r\nassert(isequal(S(n),s_correct))\r\n%%\r\nn = 4;\r\ns_correct = 254383;\r\nassert(isequal(S(n),s_correct))\r\n%%\r\nn = 5;\r\ns_correct = 401225;\r\nassert(isequal(S(n),s_correct))\r\n%%\r\nns = 6:20;\r\nss = sum(arrayfun(@(n) S(n),ns))\r\nss_correct = 7742071;\r\nassert(isequal(ss,ss_correct))\r\n%%\r\nfiletext = fileread('S.m');\r\nnot_allowed = contains(filetext, 'BigInteger') || contains(filetext, 'java'); \r\nassert(~not_allowed)","published":true,"deleted":false,"likes_count":3,"comments_count":6,"created_by":255988,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":9,"test_suite_updated_at":"2021-09-19T20:21:05.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2021-09-18T16:25:58.000Z","updated_at":"2025-12-22T16:43:13.000Z","published_at":"2021-09-18T18:10:29.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:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eCreate the function S(n), defined by the following summation\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:r\u003e\u003cw:t\u003e                               \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"60\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"224\\\"/\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\u003eThe symbol \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"22\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"15\\\"/\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=\\\"rId2\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e is the combination function ('nchoosek(a,b)' in MATLAB). 'S(n)' always yields an integer value,  if 'n' is a positive integer. Present the output modulo 1234567.\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\u003eNOTE:\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e S(n) may have positive or negative values. Therefore, please use the 'mod' function instead of the 'rem' function to ensure the result would be a positive modulus.\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.gif\",\"relationshipId\":\"rId1\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"target\":\"/media/image2.gif\",\"relationshipId\":\"rId2\"}]},{\"partUri\":\"/media/image1.gif\",\"contentType\":\"image/gif\",\"content\":\"data:image/gif;base64,R0lGODlh4AA8ALMAAP///wAAALq6unZ2doiIiJiYmNzc3KqqqhAQEGZmZiIiIkRERFRUVDIyMszMzO7u7iH5BAEAAAAALAAAAADgADwAAAT+EMhJq704651fGQchcGRpnmiqrmy7PoMzHUJhAIbDAAKxHYfByEUsGo/IZEaQGBoGkh1ABEgYbhhHAfBQKL/gsDgslBR8AG9Vkig8OI7FeE6v2zHl6Ta9YmDvgIGCRXlnEmoXIQSLBDJmQ4ORkpMaeU9RKQIjB5SdnpECCzGPNigGCA0KUp+sra6vsLFjAbS1tre4ubiyvL2+v8DBEkB5wsbHKlpciMgAhrEGq80ncdMABwm9odYnftMCDS8EQthvYgXS3BkFkMdd5hPgjvEEH0NbATIgR/IWDHvqMGi61mwBQByN8lFwEE5CAyzVADCY18JAQooSHiD4E5DCqVT+6YAdYEZB4YQFnCQQyDYFDYIkJisMCNlRnYKDJSnGFPBSogwBftq5iEnhAdGa3A4EyBDTQYA/Tt/I4fIPydEJM5F2bAAFw86nE5xy/HI1YwB4WpsZAOt1nth4bMOUdYjmGAJaCPLq3Zs3l1BADxbUtTCAZIWYa+cpRash1ILHkCHjzJmBgGFgBWhN3WAAneZJDP5OUMCybUlIB3qKmYuDda8FtCZ3SBBXkGoLRlOaPgmQAE2YGCsgkK3hweDKczTSGvujNAbjRY4v41EA42INAdptc8hcSXYNC0IKGDDOxsHfuJ2DEUDrciXGFdCjeKAemwCLuiUMuF10ZgCuihH+EIRoR8DAwH+jXJAASftIwBMkVJRwAHFIDECLei1EiEI/FExIQQINELhAQ9NkRgETFTBDYgkrhtEALfm10CIJFjkV3IoKxBHjIfL9YuMEbcg0A4V47KiEcrWt4OEKVzXYxTVWYIRAV9OspVt4FfyxQHeN9WiEUv8RsSULVwElgQNQ0CddAET+YhRASjXQiAX8heBGAegEx18YtAVA5Qp7nlBWoBewqU4Ag8XRHlrMGCCAA8MNs9kESynIwKWYZvqnCQrQQmAJ7pVQVqUb5Hbopg6qMoEBK3JSACK+0QkfGGsFgMCsNM4oaHAA3MqBleogwNJYB5DIkAUJUMmAdAr+4PpFZgF4mUWLjkUWGU5lNQtHAEYaIywADghlZkaGIQBJkr0CcmC3HDxJJq+EZsntqVPEGBoF/K01QzhCEZpApgAzgKoJXLUQLwmDkvDmoT5gOcEzEzSAVgEkJuuMR5POcakLEpP5lwEZMyXdMfNCMcDJxUwgIAX1hAXCxG0iQYCuKKw8n38AUoCnqAN/oaizLKz1aZbSUrAA0EiMhDSNRZtwNKgYujBOAihVwNMX7PGKwdMlRFMHpFymwHURXpfAAM0rDIDFwlg1fUJmS68aNQYJxE3EKUObMrcKdZtAAKlF5AikijGrsN+G7OqstRI3odBzPImbUN0J7NlNQqT++gHuGguPpRC2R3WIgkIBe69KdgrffTEiXGdCTASi01B9An2pv0LaF4lhJYcDvB9MzeayzNyuowXAZmvwvq/QwEEAjvBA5H4nHwt7ulRfy+OdGLV42tgukLcKoiOzUgLkl2/++edbPojASOx8Yj4DhFwRumkZc7URAui2R/yHjLC9CSCqn00KB4cmaAIbDtmD4KDXLuAJUBvS48BdbMESbV3DZlKTnzECM7ILOEBAHWyFYIKhkc8F414kmIr7ZPEOYFQlIBEcV0R4AY5foKMjT6rB9lZypghSgnS9mKE67IMfGKDsiDAYlg9/GMJOlK0jIPreFFgCqQdakQ45qtonBsa1nSt68UhewEYOjHjEk72hISv8ohqLgCYuJKCJZxIQ9tY4hwgAADs=\",\"relationship\":null},{\"partUri\":\"/media/image2.gif\",\"contentType\":\"image/gif\",\"content\":\"data:image/gif;base64,R0lGODlhHgAsALMAAP///wAAAJiYmIiIiKqqqmZmZrq6ujIyMu7u7iIiIkRERHZ2dtzc3BAQEFRUVMzMzCH5BAEAAAAALAAAAAAeACwAAAT+EMgpxaAYMJe7JIVHGYo4HiYlcCaSICnlCKZCxxPSMB6R4JgFK5O4ZQYDwoNHQQQeGULAY5M4UMHh5LDoCErWLsYJmzACTEzD2DB0DpfJ4pc5Mx/TzoAuSYQyeBMDJW4YZ1AATgQeDRIIXABGFGsfAWUZBgUESgUClxQKLAuNQCIFdApYpV55CVqrFHhQDWKwhgGLAZK2jroAvrwYAQOKwcILZ4vGEw0FeMrLAM3J0RIBC067wcO/cdG4v7UdG2gmZ25+KYEmBk8AVylf8ZYAA3kiDt4eoxLtnxltUigA86vQOFwEknjg1uePlx0SGvwDIEsQqQ4OagXEMOBiIndHHTb+QgRK3DuTvSZIqVNuhEczfPJlKKCKQpEOdAzU7EXSZQcDCxLqIZhBgb4YOtJkcDERnzYMOoGswCHAoYgHROMdNfRqQgQAOw==\",\"relationship\":null}],\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"target\":\"/matlab/document.xml\",\"relationshipId\":\"rId1\"}]}"},{"id":45303,"title":"Combinatorics - 01","description":"* Input=[x,n]\r\n* where x is an array of numbers(or strings) and n is a +ve number.\r\n\r\n\r\nfor example, x=[1,2] and n=6.\r\n\r\nThe output will be a matrix containing all the possible permutations of the vector x having n elements(no of columns=n).\r\nbesides that - \r\n\r\n* each row should contain equal number of occurance of the elements of x. (3 ones, 3 twos)\r\n* no initial segment can have more 2's than 1's. e.g. [2 2 1 2 1 1] - is invalid.since there are more 2's in the 1st appearance than 1's.\r\n\r\n* y=[\r\n\r\n     1     1     1     2     2     2\r\n     1     1     2     1     2     2\r\n     1     1     2     2     1     2\r\n     1     2     1     1     2     2\r\n     1     2     1     2     1     2\r\n     1     2     1     2     2     1\r\n     2     1     1     1     2     2\r\n     2     1     1     2     1     2\r\n     2     1     1     2     2     1\r\n     2     1     2     1     1     2\r\n     2     1     2     1     2     1\r\n     2     1     2     2     1     1\r\n     2     2     1     1     1     2\r\n     2     2     1     1     2     1\r\n     2     2     2     1     1     1]\r\n\r\n\r\n\r\n\r\n\r\n\r\n","description_html":"\u003cul\u003e\u003cli\u003eInput=[x,n]\u003c/li\u003e\u003cli\u003ewhere x is an array of numbers(or strings) and n is a +ve number.\u003c/li\u003e\u003c/ul\u003e\u003cp\u003efor example, x=[1,2] and n=6.\u003c/p\u003e\u003cp\u003eThe output will be a matrix containing all the possible permutations of the vector x having n elements(no of columns=n).\r\nbesides that -\u003c/p\u003e\u003cul\u003e\u003cli\u003eeach row should contain equal number of occurance of the elements of x. (3 ones, 3 twos)\u003c/li\u003e\u003cli\u003eno initial segment can have more 2's than 1's. e.g. [2 2 1 2 1 1] - is invalid.since there are more 2's in the 1st appearance than 1's.\u003c/li\u003e\u003c/ul\u003e\u003cul\u003e\u003cli\u003ey=[\u003c/li\u003e\u003c/ul\u003e\u003cpre\u003e     1     1     1     2     2     2\r\n     1     1     2     1     2     2\r\n     1     1     2     2     1     2\r\n     1     2     1     1     2     2\r\n     1     2     1     2     1     2\r\n     1     2     1     2     2     1\r\n     2     1     1     1     2     2\r\n     2     1     1     2     1     2\r\n     2     1     1     2     2     1\r\n     2     1     2     1     1     2\r\n     2     1     2     1     2     1\r\n     2     1     2     2     1     1\r\n     2     2     1     1     1     2\r\n     2     2     1     1     2     1\r\n     2     2     2     1     1     1]\u003c/pre\u003e","function_template":"function y = combin(x,n)\r\n  y = x;\r\nend","test_suite":"%%\r\nx = [1,2];\r\nn=6;\r\ny_correct = [ 1     1     1     2     2     2\r\n     1     1     2     1     2     2\r\n     1     1     2     2     1     2\r\n     1     2     1     1     2     2\r\n     1     2     1     2     1     2\r\n     1     2     1     2     2     1\r\n     2     1     1     1     2     2\r\n     2     1     1     2     1     2\r\n     2     1     1     2     2     1\r\n     2     1     2     1     1     2\r\n     2     1     2     1     2     1\r\n     2     1     2     2     1     1\r\n     2     2     1     1     1     2\r\n     2     2     1     1     2     1\r\n     2     2     2     1     1     1];\r\nassert(isequal(combin(x,n),y_correct))\r\n%%\r\nx = [2,1];\r\nn=6;\r\ny_correct = [2     2     2     1     1     1\r\n     2     2     1     2     1     1\r\n     2     2     1     1     2     1\r\n     2     1     2     2     1     1\r\n     2     1     2     1     2     1\r\n     2     1     2     1     1     2\r\n     1     2     2     2     1     1\r\n     1     2     2     1     2     1\r\n     1     2     2     1     1     2\r\n     1     2     1     2     2     1\r\n     1     2     1     2     1     2\r\n     1     2     1     1     2     2\r\n     1     1     2     2     2     1\r\n     1     1     2     2     1     2\r\n     1     1     1     2     2     2];\r\nassert(isequal(combin(x,n),y_correct))\r\n%%\r\nx = [5,9];\r\nn=4;\r\ny_correct = [5     5     9     9\r\n     5     9     5     9\r\n     9     5     5     9\r\n     9     5     9     5\r\n     9     9     5     5];\r\nassert(isequal(combin(x,n),y_correct))\r\n%%\r\nx = [5,9];\r\nn=2;\r\ny_correct = [5     9\r\n     9     5];\r\nassert(isequal(combin(x,n),y_correct))\r\n%%\r\nx = [5,9];\r\nn=8;\r\ny_correct = [5     5     5     5     9     9     9     9\r\n     5     5     5     9     5     9     9     9\r\n     5     5     5     9     9     5     9     9\r\n     5     5     5     9     9     9     5     9\r\n     5     5     9     5     5     9     9     9\r\n     5     5     9     5     9     5     9     9\r\n     5     5     9     5     9     9     5     9\r\n     5     5     9     5     9     9     9     5\r\n     5     5     9     9     5     5     9     9\r\n     5     5     9     9     5     9     5     9\r\n     5     5     9     9     5     9     9     5\r\n     5     9     5     5     5     9     9     9\r\n     5     9     5     5     9     5     9     9\r\n     5     9     5     5     9     9     5     9\r\n     5     9     5     5     9     9     9     5\r\n     5     9     5     9     5     5     9     9\r\n     5     9     5     9     5     9     5     9\r\n     5     9     5     9     5     9     9     5\r\n     5     9     5     9     9     5     5     9\r\n     5     9     5     9     9     5     9     5\r\n     5     9     5     9     9     9     5     5\r\n     9     5     5     5     5     9     9     9\r\n     9     5     5     5     9     5     9     9\r\n     9     5     5     5     9     9     5     9\r\n     9     5     5     5     9     9     9     5\r\n     9     5     5     9     5     5     9     9\r\n     9     5     5     9     5     9     5     9\r\n     9     5     5     9     5     9     9     5\r\n     9     5     5     9     9     5     5     9\r\n     9     5     5     9     9     5     9     5\r\n     9     5     5     9     9     9     5     5\r\n     9     5     9     5     5     5     9     9\r\n     9     5     9     5     5     9     5     9\r\n     9     5     9     5     5     9     9     5\r\n     9     5     9     5     9     5     5     9\r\n     9     5     9     5     9     5     9     5\r\n     9     5     9     5     9     9     5     5\r\n     9     5     9     9     5     5     5     9\r\n     9     5     9     9     5     5     9     5\r\n     9     5     9     9     5     9     5     5\r\n     9     5     9     9     9     5     5     5\r\n     9     9     5     5     5     5     9     9\r\n     9     9     5     5     5     9     5     9\r\n     9     9     5     5     5     9     9     5\r\n     9     9     5     5     9     5     5     9\r\n     9     9     5     5     9     5     9     5\r\n     9     9     5     5     9     9     5     5\r\n     9     9     9     5     5     5     5     9\r\n     9     9     9     5     5     5     9     5\r\n     9     9     9     9     5     5     5     5];\r\nassert(isequal(combin(x,n),y_correct))\r\n","published":true,"deleted":false,"likes_count":0,"comments_count":4,"created_by":363598,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":5,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2020-01-31T16:34:35.000Z","updated_at":"2026-03-18T21:36:32.000Z","published_at":"2020-01-31T18:13:44.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\u003eInput=[x,n]\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\u003ewhere x is an array of numbers(or strings) and n is a +ve number.\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, x=[1,2] and n=6.\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 output will be a matrix containing all the possible permutations of the vector x having n elements(no of columns=n). besides that -\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\u003eeach row should contain equal number of occurance of the elements of x. (3 ones, 3 twos)\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\u003eno initial segment can have more 2's than 1's. e.g. [2 2 1 2 1 1] - is invalid.since there are more 2's in the 1st appearance than 1's.\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=[\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     1     1     2     2     2\\n     1     1     2     1     2     2\\n     1     1     2     2     1     2\\n     1     2     1     1     2     2\\n     1     2     1     2     1     2\\n     1     2     1     2     2     1\\n     2     1     1     1     2     2\\n     2     1     1     2     1     2\\n     2     1     1     2     2     1\\n     2     1     2     1     1     2\\n     2     1     2     1     2     1\\n     2     1     2     2     1     1\\n     2     2     1     1     1     2\\n     2     2     1     1     2     1\\n     2     2     2     1     1     1]]]\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\"}]}"}],"term":"tag:\"combinatorics\"","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:\"combinatorics\"","current_player":null,"sort":"map(difficulty_value,0,0,999) asc"},"parser":"MathWorks::Search::Solr::QueryParser","directives":{"term":{"directives":{"tag":[["tag:\"combinatorics\"","","\"","combinatorics","\""]]}}},"facets":{"#\u003cMathWorks::Search::Field:0x00007f636facc450\u003e":null,"#\u003cMathWorks::Search::Field:0x00007f636facc3b0\u003e":null},"filters":{"#\u003cMathWorks::Search::Field:0x00007f636facb7d0\u003e":"\"cody:problem\""},"fields":{"#\u003cMathWorks::Search::Field:0x00007f636facc6d0\u003e":1,"#\u003cMathWorks::Search::Field:0x00007f636facc630\u003e":50,"#\u003cMathWorks::Search::Field:0x00007f636facc590\u003e":"map(difficulty_value,0,0,999) asc","#\u003cMathWorks::Search::Field:0x00007f636facc4f0\u003e":"tag:\"combinatorics\""},"user_query":{"#\u003cMathWorks::Search::Field:0x00007f636facc4f0\u003e":"tag:\"combinatorics\""},"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:\"combinatorics\"","current_player":null,"sort":"map(difficulty_value,0,0,999) asc"},"parser":"MathWorks::Search::Solr::QueryParser","directives":{"term":{"directives":{"tag":[["tag:\"combinatorics\"","","\"","combinatorics","\""]]}}},"facets":{"#\u003cMathWorks::Search::Field:0x00007f636facc450\u003e":null,"#\u003cMathWorks::Search::Field:0x00007f636facc3b0\u003e":null},"filters":{"#\u003cMathWorks::Search::Field:0x00007f636facb7d0\u003e":"\"cody:problem\""},"fields":{"#\u003cMathWorks::Search::Field:0x00007f636facc6d0\u003e":1,"#\u003cMathWorks::Search::Field:0x00007f636facc630\u003e":50,"#\u003cMathWorks::Search::Field:0x00007f636facc590\u003e":"map(difficulty_value,0,0,999) asc","#\u003cMathWorks::Search::Field:0x00007f636facc4f0\u003e":"tag:\"combinatorics\""},"user_query":{"#\u003cMathWorks::Search::Field:0x00007f636facc4f0\u003e":"tag:\"combinatorics\""},"queried_facets":{}},"options":{"fields":["id","difficulty_rating"]},"join":" "},"results":[{"id":509,"difficulty_rating":"easy"},{"id":61004,"difficulty_rating":"easy"},{"id":51820,"difficulty_rating":"easy-medium"},{"id":47838,"difficulty_rating":"easy-medium"},{"id":46551,"difficulty_rating":"easy-medium"},{"id":54390,"difficulty_rating":"easy-medium"},{"id":54020,"difficulty_rating":"easy-medium"},{"id":58946,"difficulty_rating":"easy-medium"},{"id":44735,"difficulty_rating":"easy-medium"},{"id":1483,"difficulty_rating":"easy-medium"},{"id":44066,"difficulty_rating":"easy-medium"},{"id":1463,"difficulty_rating":"easy-medium"},{"id":52629,"difficulty_rating":"medium"},{"id":44072,"difficulty_rating":"medium"},{"id":37,"difficulty_rating":"medium"},{"id":604,"difficulty_rating":"medium"},{"id":56448,"difficulty_rating":"medium-hard"},{"id":44787,"difficulty_rating":"medium-hard"},{"id":52729,"difficulty_rating":"medium-hard"},{"id":45303,"difficulty_rating":"hard"}]}}