{"group":{"id":1,"name":"Community","lockable":false,"created_at":"2012-01-18T18:02:15.000Z","updated_at":"2026-10-23T00:19:30.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-10-23T00: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":2053,"title":"Strange Number Algorithms","description":"Three integer numbers will be provided to you. Write a function to \r\n\r\n Step1: Multiply first number by 3.\r\n Step2: Add 6 with the getting result.\r\n Step3: divide it by 3.\r\n Step4: Subtract the first number.\r\n\r\n Step1: Double the second number.\r\n Step2: Add 9 with result.\r\n Step3: Subtract 3 with the result.\r\n Step4: Divide the result by 2.\r\n Step5: Subtract the result with the second number.\r\n\r\n Step1:Add 7 to the third number.\r\n Step2:Multiply the number with 2.\r\n Step3:Subtract 4 from the result.\r\n Step4:Divide the result by 2.\r\n Step5:Subtract the third number from the result.\r\n\r\nReturn a single row matrix with the three answers.\r\n\r\n","description_html":"\u003cp\u003eThree integer numbers will be provided to you. Write a function to\u003c/p\u003e\u003cpre\u003e Step1: Multiply first number by 3.\r\n Step2: Add 6 with the getting result.\r\n Step3: divide it by 3.\r\n Step4: Subtract the first number.\u003c/pre\u003e\u003cpre\u003e Step1: Double the second number.\r\n Step2: Add 9 with result.\r\n Step3: Subtract 3 with the result.\r\n Step4: Divide the result by 2.\r\n Step5: Subtract the result with the second number.\u003c/pre\u003e\u003cpre\u003e Step1:Add 7 to the third number.\r\n Step2:Multiply the number with 2.\r\n Step3:Subtract 4 from the result.\r\n Step4:Divide the result by 2.\r\n Step5:Subtract the third number from the result.\u003c/pre\u003e\u003cp\u003eReturn a single row matrix with the three answers.\u003c/p\u003e","function_template":"function amat = strange(n)\r\n  amat = n(1)-n(1)*3+6/3;\r\nend","test_suite":"%%\r\nn = [1 10 100];\r\na(1)=(((n(1)*3)+6)/3)-n(1);\r\na(2)=(((n(2)*2)+9)-3)/2-n(2);\r\na(3)=(((n(3)+7)*2)-4)/2-n(3);\r\ny_correct = a;\r\nassert(isequal(strange(n),y_correct))\r\n%%\r\nn = [0 499 999];\r\na(1)=(((n(1)*3)+6)/3)-n(1);\r\na(2)=(((n(2)*2)+9)-3)/2-n(2);\r\na(3)=(((n(3)+7)*2)-4)/2-n(3);\r\ny_correct = a;\r\nassert(isequal(strange(n),y_correct))\r\n%%\r\nn = [999 666 333];\r\na(1)=(((n(1)*3)+6)/3)-n(1);\r\na(2)=(((n(2)*2)+9)-3)/2-n(2);\r\na(3)=(((n(3)+7)*2)-4)/2-n(3);\r\ny_correct = a;\r\nassert(isequal(strange(n),y_correct))\r\n%%\r\nn = [7 63 347];\r\na(1)=(((n(1)*3)+6)/3)-n(1);\r\na(2)=(((n(2)*2)+9)-3)/2-n(2);\r\na(3)=(((n(3)+7)*2)-4)/2-n(3);\r\ny_correct = a;\r\nassert(isequal(strange(n),y_correct))\r\n","published":true,"deleted":false,"likes_count":2,"comments_count":0,"created_by":17471,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":101,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2013-12-15T06:55:46.000Z","updated_at":"2026-02-20T14:09:20.000Z","published_at":"2013-12-15T06:56:52.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThree integer numbers will be provided to you. Write a function to\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[ Step1: Multiply first number by 3.\\n Step2: Add 6 with the getting result.\\n Step3: divide it by 3.\\n Step4: Subtract the first number.\\n\\n Step1: Double the second number.\\n Step2: Add 9 with result.\\n Step3: Subtract 3 with the result.\\n Step4: Divide the result by 2.\\n Step5: Subtract the result with the second number.\\n\\n Step1:Add 7 to the third number.\\n Step2:Multiply the number with 2.\\n Step3:Subtract 4 from the result.\\n Step4:Divide the result by 2.\\n Step5:Subtract the third number from the result.]]\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\u003eReturn a single row matrix with the three answers.\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":61490,"title":"Determine if a credit card number conforms to American Express, Visa, or Mastercard schema or if it fails to conform to any of these.","description":"When you pay for things online, sometimes when you enter your credit card number, the online merchant is able to instantly identify whether the card number you're entering is a valid American Express, Visa, or Mastercard number. After completing this problem, you'll be able to do the same.\r\nHere are the rules for each credit card type:\r\nFor American Express:\r\nThe card number begins with either 34 or 37.\r\nThe card number is 15 digits.\r\nFor Visa:\r\nThe card number begins with 4.\r\nThe card number is 13, 16, or 19 digits.\r\nFor Mastercard:\r\nThe first two digits are 51–55, or the first four digits are 2221–2720.\r\nThe card number is 16 digits.\r\nOn top of these requirements, the credit card number must pass what's called a Luhn check, which is a practical implementation of Luhn's algorithm.\r\nWrite MATLAB code that determines if a credit card number conforms to American Express's rules, Visa's, Mastercard's, or none of the above. You will simply return one of the following responses:\r\n'American Express'\r\n'Visa'\r\n'Mastercard'\r\n'Invalid'\r\nYour output must match one of these exactly, including spelling and capitalization.\r\nThe input ccNum is a character array containing only digits.\r\nEXAMPLE:\r\nHere's an example of a Luhn check on a valid American Express number:\r\n    ccNum = '375981264037217'\r\nThe last digit is referred to as the check digit and the rest of the digits are referred to as the payload. Identify the digits that fall into these categories. In this case, 7 is the check digit and 37598126403721 is the payload.\r\nCounting from the right, with the rightmost payload digit as position 1, double the digits in positions 1, 3, 5, and so on:\r\n    [3 14 5 18 8 2 2 12 4 0 3 14 2 2];\r\n         3. If any number is greater than 9, subtract 9 from it. \r\n    [3 5 5 9 8 2 2 3 4 0 3 5 2 2]; \r\n         4. Sum the digits in the result, which in this case is 53.\r\n         5. Check if this sum + the check digit, 7, is a multiple of 10. Since 53 + 7 = 60, which is a multiple of 10, this combined with the fact that prefix of this credit card number is 37 and the fact that the original credit card number is 15 digits in length confirms that this is an American Express card number. In which case, you will return:\r\n    ccType = 'American Express' \r\nIf you appreciated this problem, please consider rating its difficulty and liking!","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.44px; min-height: 0px; white-space: normal; color: rgb(33, 33, 33); font-family: Menlo, Monaco, Consolas, monospace; font-style: normal; font-size: 14px; font-weight: 400; text-decoration: none; white-space: normal; \"\u003e\u003cdiv style=\"block-size: 1038.44px; display: block; min-width: 0px; padding-block-start: 0px; padding-inline-start: 2px; padding-left: 2px; padding-top: 0px; perspective-origin: 468.5px 519.219px; transform-origin: 468.5px 519.219px; 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; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 444.5px 31.5px; text-align: left; transform-origin: 444.5px 31.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eWhen you pay for things online, sometimes when you enter your credit card number, the online merchant is able to instantly identify whether the card number you're entering is a valid American Express, Visa, or Mastercard number. After completing this problem, you'll be able to do the same.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 444.5px 10.5px; text-align: left; transform-origin: 444.5px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eHere are the rules for each credit card type:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 444.5px 10.5px; text-align: left; transform-origin: 444.5px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eFor \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eAmerican Express:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003col style=\"block-size: 40.875px; font-family: Helvetica, Arial, sans-serif; list-style-type: decimal; margin-block-end: 20px; margin-block-start: 10px; margin-bottom: 20px; margin-top: 10px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 451.5px 20.4375px; transform-origin: 451.5px 20.4375px; margin-top: 10px; margin-bottom: 20px; \"\u003e\u003cli style=\"block-size: 20.4375px; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 423.5px 10.2188px; text-align: left; transform-origin: 423.5px 10.2188px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe card number begins with either 34 or 37.\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4375px; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 423.5px 10.2188px; text-align: left; transform-origin: 423.5px 10.2188px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe card number is 15 digits.\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003c/ol\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 444.5px 10.5px; text-align: left; transform-origin: 444.5px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eFor \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eVisa\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003col style=\"block-size: 40.875px; font-family: Helvetica, Arial, sans-serif; list-style-type: decimal; margin-block-end: 20px; margin-block-start: 10px; margin-bottom: 20px; margin-top: 10px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 451.5px 20.4375px; transform-origin: 451.5px 20.4375px; margin-top: 10px; margin-bottom: 20px; \"\u003e\u003cli style=\"block-size: 20.4375px; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 423.5px 10.2188px; text-align: left; transform-origin: 423.5px 10.2188px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe card number begins with 4.\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4375px; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 423.5px 10.2188px; text-align: left; transform-origin: 423.5px 10.2188px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe card number is 13, 16, or 19 digits.\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003c/ol\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 444.5px 10.5px; text-align: left; transform-origin: 444.5px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eFor \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eMastercard:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003col style=\"block-size: 40.875px; font-family: Helvetica, Arial, sans-serif; list-style-type: decimal; margin-block-end: 20px; margin-block-start: 10px; margin-bottom: 20px; margin-top: 10px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 451.5px 20.4375px; transform-origin: 451.5px 20.4375px; margin-top: 10px; margin-bottom: 20px; \"\u003e\u003cli style=\"block-size: 20.4375px; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 423.5px 10.2188px; text-align: left; transform-origin: 423.5px 10.2188px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe first two digits are 51–55, or the first four digits are 2221–2720.\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4375px; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 423.5px 10.2188px; text-align: left; transform-origin: 423.5px 10.2188px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe card number is 16 digits.\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003c/ol\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 444.5px 21px; text-align: left; transform-origin: 444.5px 21px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eOn top of these requirements, the credit card number must pass what's called a \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003eLuhn check\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e, which is a practical implementation of \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://en.wikipedia.org/wiki/Luhn_algorithm\"\u003e\u003cspan style=\"border-block-end-color: rgb(0, 91, 130); border-block-start-color: rgb(0, 91, 130); border-bottom-color: rgb(0, 91, 130); border-inline-end-color: rgb(0, 91, 130); border-inline-start-color: rgb(0, 91, 130); border-left-color: rgb(0, 91, 130); border-right-color: rgb(0, 91, 130); border-top-color: rgb(0, 91, 130); caret-color: rgb(0, 91, 130); color: rgb(0, 91, 130); column-rule-color: rgb(0, 91, 130); outline-color: rgb(0, 91, 130); row-rule-color: rgb(0, 91, 130); text-decoration-color: rgb(0, 91, 130); text-emphasis-color: rgb(0, 91, 130); \"\u003e\u003cspan style=\"\"\u003eLuhn's algorithm.\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 444.5px 21px; text-align: left; transform-origin: 444.5px 21px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eWrite MATLAB code that determines if a credit card number conforms to American Express's rules, Visa's, Mastercard's, or none of the above. You will simply return one of the following responses:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgb(247, 247, 247); block-size: 72px; 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; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 464.5px 36px; transform-origin: 464.5px 36px; margin-left: 3px; margin-top: 10px; margin-bottom: 10px; \"\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 18px; 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; font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; line-height: 18.004px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 464.5px 9px; text-wrap-mode: nowrap; transform-origin: 464.5px 9px; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(33, 33, 33); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(33, 33, 33); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(33, 33, 33); border-left-style: none; border-left-width: 0px; border-right-color: rgb(33, 33, 33); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 0px 0px; tab-size: 4; transform-origin: 0px 0px; unicode-bidi: normal; white-space-collapse: preserve; \"\u003e\u003cspan style=\"border-block-end-color: rgb(133, 22, 209); border-block-start-color: rgb(133, 22, 209); border-bottom-color: rgb(133, 22, 209); border-inline-end-color: rgb(133, 22, 209); border-inline-start-color: rgb(133, 22, 209); border-left-color: rgb(133, 22, 209); border-right-color: rgb(133, 22, 209); border-top-color: rgb(133, 22, 209); caret-color: rgb(133, 22, 209); color: rgb(133, 22, 209); column-rule-color: rgb(133, 22, 209); margin-inline-end: 0px; margin-right: 0px; outline-color: rgb(133, 22, 209); row-rule-color: rgb(133, 22, 209); text-decoration-color: rgb(133, 22, 209); text-emphasis-color: rgb(133, 22, 209); \"\u003e'American Express'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 18px; 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; font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; line-height: 18.004px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 464.5px 9px; text-wrap-mode: nowrap; transform-origin: 464.5px 9px; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(33, 33, 33); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(33, 33, 33); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(33, 33, 33); border-left-style: none; border-left-width: 0px; border-right-color: rgb(33, 33, 33); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 0px 0px; tab-size: 4; transform-origin: 0px 0px; unicode-bidi: normal; white-space-collapse: preserve; \"\u003e\u003cspan style=\"border-block-end-color: rgb(133, 22, 209); border-block-start-color: rgb(133, 22, 209); border-bottom-color: rgb(133, 22, 209); border-inline-end-color: rgb(133, 22, 209); border-inline-start-color: rgb(133, 22, 209); border-left-color: rgb(133, 22, 209); border-right-color: rgb(133, 22, 209); border-top-color: rgb(133, 22, 209); caret-color: rgb(133, 22, 209); color: rgb(133, 22, 209); column-rule-color: rgb(133, 22, 209); margin-inline-end: 0px; margin-right: 0px; outline-color: rgb(133, 22, 209); row-rule-color: rgb(133, 22, 209); text-decoration-color: rgb(133, 22, 209); text-emphasis-color: rgb(133, 22, 209); \"\u003e'Visa'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 18px; 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; font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; line-height: 18.004px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 464.5px 9px; text-wrap-mode: nowrap; transform-origin: 464.5px 9px; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(33, 33, 33); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(33, 33, 33); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(33, 33, 33); border-left-style: none; border-left-width: 0px; border-right-color: rgb(33, 33, 33); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 0px 0px; tab-size: 4; transform-origin: 0px 0px; unicode-bidi: normal; white-space-collapse: preserve; \"\u003e\u003cspan style=\"border-block-end-color: rgb(133, 22, 209); border-block-start-color: rgb(133, 22, 209); border-bottom-color: rgb(133, 22, 209); border-inline-end-color: rgb(133, 22, 209); border-inline-start-color: rgb(133, 22, 209); border-left-color: rgb(133, 22, 209); border-right-color: rgb(133, 22, 209); border-top-color: rgb(133, 22, 209); caret-color: rgb(133, 22, 209); color: rgb(133, 22, 209); column-rule-color: rgb(133, 22, 209); margin-inline-end: 0px; margin-right: 0px; outline-color: rgb(133, 22, 209); row-rule-color: rgb(133, 22, 209); text-decoration-color: rgb(133, 22, 209); text-emphasis-color: rgb(133, 22, 209); \"\u003e'Mastercard'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 18px; 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; font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; line-height: 18.004px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 464.5px 9px; text-wrap-mode: nowrap; transform-origin: 464.5px 9px; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(33, 33, 33); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(33, 33, 33); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(33, 33, 33); border-left-style: none; border-left-width: 0px; border-right-color: rgb(33, 33, 33); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 0px 0px; tab-size: 4; transform-origin: 0px 0px; unicode-bidi: normal; white-space-collapse: preserve; \"\u003e\u003cspan style=\"border-block-end-color: rgb(133, 22, 209); border-block-start-color: rgb(133, 22, 209); border-bottom-color: rgb(133, 22, 209); border-inline-end-color: rgb(133, 22, 209); border-inline-start-color: rgb(133, 22, 209); border-left-color: rgb(133, 22, 209); border-right-color: rgb(133, 22, 209); border-top-color: rgb(133, 22, 209); caret-color: rgb(133, 22, 209); color: rgb(133, 22, 209); column-rule-color: rgb(133, 22, 209); margin-inline-end: 0px; margin-right: 0px; outline-color: rgb(133, 22, 209); row-rule-color: rgb(133, 22, 209); text-decoration-color: rgb(133, 22, 209); text-emphasis-color: rgb(133, 22, 209); \"\u003e'Invalid'\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; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 444.5px 10.5px; text-align: left; transform-origin: 444.5px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 10px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eYour output must match one of these exactly, including spelling and capitalization.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.5px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 444.5px 10.75px; text-align: left; transform-origin: 444.5px 10.75px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe input \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003eccNum\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e is a character array containing only digits.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 20px; font-family: Helvetica, Arial, sans-serif; font-size: 20px; font-weight: 700; line-height: 20px; margin-block-end: 5px; margin-block-start: 20px; margin-bottom: 5px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 20px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 444.5px 10px; text-align: left; transform-origin: 444.5px 10px; white-space-collapse: preserve; margin-left: 4px; margin-top: 20px; margin-bottom: 5px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eEXAMPLE:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 444.5px 10.5px; text-align: left; transform-origin: 444.5px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eHere's an example of a Luhn check on a valid American Express number:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgb(247, 247, 247); block-size: 18px; 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; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 464.5px 9px; transform-origin: 464.5px 9px; margin-left: 3px; margin-top: 10px; margin-bottom: 10px; \"\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: 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; font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; line-height: 18.004px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-inline-start: 4px; padding-left: 4px; text-wrap-mode: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(33, 33, 33); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(33, 33, 33); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(33, 33, 33); border-left-style: none; border-left-width: 0px; border-right-color: rgb(33, 33, 33); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 0px 0px; tab-size: 4; transform-origin: 0px 0px; unicode-bidi: normal; white-space-collapse: preserve; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e    ccNum = \u003c/span\u003e\u003cspan style=\"border-block-end-color: rgb(133, 22, 209); border-block-start-color: rgb(133, 22, 209); border-bottom-color: rgb(133, 22, 209); border-inline-end-color: rgb(133, 22, 209); border-inline-start-color: rgb(133, 22, 209); border-left-color: rgb(133, 22, 209); border-right-color: rgb(133, 22, 209); border-top-color: rgb(133, 22, 209); caret-color: rgb(133, 22, 209); color: rgb(133, 22, 209); column-rule-color: rgb(133, 22, 209); margin-inline-end: 0px; margin-right: 0px; outline-color: rgb(133, 22, 209); row-rule-color: rgb(133, 22, 209); text-decoration-color: rgb(133, 22, 209); text-emphasis-color: rgb(133, 22, 209); \"\u003e'375981264037217'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003col style=\"block-size: 61.3125px; font-family: Helvetica, Arial, sans-serif; list-style-type: decimal; margin-block-end: 20px; margin-block-start: 10px; margin-bottom: 20px; margin-top: 10px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 451.5px 30.6562px; transform-origin: 451.5px 30.6562px; margin-top: 10px; margin-bottom: 20px; \"\u003e\u003cli style=\"block-size: 40.875px; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 423.5px 20.4375px; text-align: left; transform-origin: 423.5px 20.4375px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe last digit is referred to as the \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003echeck digit\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e and the rest of the digits are referred to as the \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003epayload\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e. Identify the digits that fall into these categories. In this case, 7 is the check digit and 37598126403721 is the payload.\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4375px; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 423.5px 10.2188px; text-align: left; transform-origin: 423.5px 10.2188px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eCounting from the right, with the rightmost payload digit as position 1, double the digits in positions 1, 3, 5, and so on:\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003c/ol\u003e\u003cdiv style=\"background-color: rgb(247, 247, 247); block-size: 18px; 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; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 464.5px 9px; transform-origin: 464.5px 9px; margin-left: 3px; margin-top: 10px; margin-bottom: 10px; \"\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: 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; font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; line-height: 18.004px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-inline-start: 4px; padding-left: 4px; text-wrap-mode: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(33, 33, 33); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(33, 33, 33); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(33, 33, 33); border-left-style: none; border-left-width: 0px; border-right-color: rgb(33, 33, 33); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 0px 0px; tab-size: 4; transform-origin: 0px 0px; unicode-bidi: normal; white-space-collapse: preserve; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e    [3 14 5 18 8 2 2 12 4 0 3 14 2 2];\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; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 444.5px 10.5px; text-align: left; transform-origin: 444.5px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 10px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e         3. If any number is greater than 9, subtract 9 from it. \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgb(247, 247, 247); block-size: 18px; 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; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 464.5px 9px; transform-origin: 464.5px 9px; margin-left: 3px; margin-top: 10px; margin-bottom: 10px; \"\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: 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; font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; line-height: 18.004px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-inline-start: 4px; padding-left: 4px; text-wrap-mode: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(33, 33, 33); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(33, 33, 33); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(33, 33, 33); border-left-style: none; border-left-width: 0px; border-right-color: rgb(33, 33, 33); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 0px 0px; tab-size: 4; transform-origin: 0px 0px; unicode-bidi: normal; white-space-collapse: preserve; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e    [3 5 5 9 8 2 2 3 4 0 3 5 2 2]; \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; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 444.5px 10.5px; text-align: left; transform-origin: 444.5px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 10px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e         4. Sum the digits in the result, which in this case is 53.\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; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 444.5px 31.5px; text-align: left; transform-origin: 444.5px 31.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e         5. Check if this sum + the check digit, 7, is a multiple of 10. Since 53 + 7 = 60, which is a multiple of 10, this combined with the fact that prefix of this credit card number is 37 and the fact that the original credit card number is 15 digits in length confirms that this is an American Express card number. In which case, you will return:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgb(247, 247, 247); block-size: 18px; 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; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 464.5px 9px; transform-origin: 464.5px 9px; margin-left: 3px; margin-top: 10px; margin-bottom: 10px; \"\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: 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; font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; line-height: 18.004px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-inline-start: 4px; padding-left: 4px; text-wrap-mode: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(33, 33, 33); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(33, 33, 33); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(33, 33, 33); border-left-style: none; border-left-width: 0px; border-right-color: rgb(33, 33, 33); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 0px 0px; tab-size: 4; transform-origin: 0px 0px; unicode-bidi: normal; white-space-collapse: preserve; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e    ccType = \u003c/span\u003e\u003cspan style=\"border-block-end-color: rgb(133, 22, 209); border-block-start-color: rgb(133, 22, 209); border-bottom-color: rgb(133, 22, 209); border-inline-end-color: rgb(133, 22, 209); border-inline-start-color: rgb(133, 22, 209); border-left-color: rgb(133, 22, 209); border-right-color: rgb(133, 22, 209); border-top-color: rgb(133, 22, 209); caret-color: rgb(133, 22, 209); color: rgb(133, 22, 209); column-rule-color: rgb(133, 22, 209); margin-inline-end: 0px; margin-right: 0px; outline-color: rgb(133, 22, 209); row-rule-color: rgb(133, 22, 209); text-decoration-color: rgb(133, 22, 209); text-emphasis-color: rgb(133, 22, 209); \"\u003e'American Express' \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; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 444.5px 10.5px; text-align: left; transform-origin: 444.5px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 10px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eIf you appreciated this problem, please consider rating its difficulty and liking!\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function ccType = cardCheck(ccNum)\r\n\r\nend","test_suite":"%% Starts with 50\r\nccNum = '5079318603208076';\r\nccType = 'Invalid';\r\nassert(isequal(cardCheck(ccNum),ccType))\r\n\r\n%% Mastercard, starts with 2500\r\nccNum = '2500929841622948';\r\nccType = 'Mastercard';\r\nassert(isequal(cardCheck(ccNum),ccType))\r\n\r\n%% Starts with 2721\r\nccNum = '2721647258771882';\r\nccType = 'Invalid';\r\nassert(isequal(cardCheck(ccNum),ccType))\r\n\r\n%% Visa, 16 digits\r\nccNum = '4469788093208193';\r\nccType = 'Visa';\r\nassert(isequal(cardCheck(ccNum),ccType))\r\n\r\n%% Visa prefix, but 18 digits\r\nccNum = '449482141621052180';\r\nccType = 'Invalid';\r\nassert(isequal(cardCheck(ccNum),ccType))\r\n\r\n%% Mastercard, starts with 52\r\nccNum = '5254914524410648';\r\nccType = 'Mastercard';\r\nassert(isequal(cardCheck(ccNum),ccType))\r\n\r\n%% Amex prefix and length, fails Luhn\r\nccNum = '372911028594062';\r\nccType = 'Invalid';\r\nassert(isequal(cardCheck(ccNum),ccType))\r\n\r\n%% Mastercard, starts with 53\r\nccNum = '5367147513627013';\r\nccType = 'Mastercard';\r\nassert(isequal(cardCheck(ccNum),ccType))\r\n\r\n%% Amex, starts with 37\r\nccNum = '377799229836954';\r\nccType = 'American Express';\r\nassert(isequal(cardCheck(ccNum),ccType))\r\n\r\n%% Visa, 19 digits\r\nccNum = '4604541465908538016';\r\nccType = 'Visa';\r\nassert(isequal(cardCheck(ccNum),ccType))\r\n\r\n%% Mastercard, starts with 2720\r\nccNum = '2720866283601614';\r\nccType = 'Mastercard';\r\nassert(isequal(cardCheck(ccNum),ccType))\r\n\r\n%% Visa prefix and 19 digits, fails Luhn\r\nccNum = '4600130411895579906';\r\nccType = 'Invalid';\r\nassert(isequal(cardCheck(ccNum),ccType))\r\n\r\n%% Visa, 16 digits\r\nccNum = '4761698716897683';\r\nccType = 'Visa';\r\nassert(isequal(cardCheck(ccNum),ccType))\r\n\r\n%% Amex prefix and length, fails Luhn\r\nccNum = '341256789012345';\r\nccType = 'Invalid';\r\nassert(isequal(cardCheck(ccNum),ccType))\r\n\r\n%% Amex, starts with 34\r\nccNum = '341588139986980';\r\nccType = 'American Express';\r\nassert(isequal(cardCheck(ccNum),ccType))\r\n\r\n%% Mastercard, starts with 51\r\nccNum = '5176804571784729';\r\nccType = 'Mastercard';\r\nassert(isequal(cardCheck(ccNum),ccType))\r\n\r\n%% Amex, starts with 37\r\nccNum = '377973091141708';\r\nccType = 'American Express';\r\nassert(isequal(cardCheck(ccNum),ccType))\r\n\r\n%% Amex prefix, but 16 digits\r\nccNum = '3741330175682052';\r\nccType = 'Invalid';\r\nassert(isequal(cardCheck(ccNum),ccType))\r\n\r\n%% Visa, 19 digits\r\nccNum = '4634400297875347783';\r\nccType = 'Visa';\r\nassert(isequal(cardCheck(ccNum),ccType))\r\n\r\n%% Starts with 2220\r\nccNum = '2220861642524776';\r\nccType = 'Invalid';\r\nassert(isequal(cardCheck(ccNum),ccType))\r\n\r\n%% Amex, starts with 37\r\nccNum = '375981264037217';\r\nccType = 'American Express';\r\nassert(isequal(cardCheck(ccNum),ccType))\r\n\r\n%% Mastercard prefix and length, fails Luhn\r\nccNum = '5459397615846450';\r\nccType = 'Invalid';\r\nassert(isequal(cardCheck(ccNum),ccType))\r\n\r\n%% Visa, 13 digits\r\nccNum = '4884472940553';\r\nccType = 'Visa';\r\nassert(isequal(cardCheck(ccNum),ccType))\r\n\r\n%% Starts with 35\r\nccNum = '350550087547519';\r\nccType = 'Invalid';\r\nassert(isequal(cardCheck(ccNum),ccType))\r\n\r\n%% Mastercard, starts with 2221\r\nccNum = '2221520599728371';\r\nccType = 'Mastercard';\r\nassert(isequal(cardCheck(ccNum),ccType))\r\n\r\n%% Starts with 56\r\nccNum = '5637028382226463';\r\nccType = 'Invalid';\r\nassert(isequal(cardCheck(ccNum),ccType))\r\n\r\n%% Mastercard, starts with 55\r\nccNum = '5507981933190843';\r\nccType = 'Mastercard';\r\nassert(isequal(cardCheck(ccNum),ccType))\r\n\r\n%% Visa prefix, but 15 digits\r\nccNum = '425898319489393';\r\nccType = 'Invalid';\r\nassert(isequal(cardCheck(ccNum),ccType))\r\n\r\n%% Amex, starts with 34\r\nccNum = '347536455681515';\r\nccType = 'American Express';\r\nassert(isequal(cardCheck(ccNum),ccType))\r\n\r\n%% Visa, 19 digits\r\nccNum = '4672731778486488769';\r\nccType = 'Visa';\r\nassert(isequal(cardCheck(ccNum),ccType))","published":true,"deleted":false,"likes_count":0,"comments_count":0,"created_by":4062641,"edited_by":4062641,"edited_at":"2026-10-27T17:45:46.000Z","deleted_by":null,"deleted_at":null,"solvers_count":4,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2026-10-25T04:33:03.000Z","updated_at":"2026-10-27T17:45:47.000Z","published_at":"2026-10-26T22:08:39.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\u003eWhen you pay for things online, sometimes when you enter your credit card number, the online merchant is able to instantly identify whether the card number you're entering is a valid American Express, Visa, or Mastercard number. After completing this problem, you'll be able to do the same.\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\u003eHere are the rules for each credit card type:\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 \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eAmerican Express:\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\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe card number begins with either 34 or 37.\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\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe card number is 15 digits.\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 \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eVisa\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"2\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe card number begins with 4.\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\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe card number is 13, 16, or 19 digits.\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 \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eMastercard:\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\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe first two digits are 51–55, or the first four digits are 2221–2720.\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\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe card number is 16 digits.\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\u003eOn top of these requirements, the credit card number must pass what's called a \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eLuhn check\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e, which is a practical implementation of \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://en.wikipedia.org/wiki/Luhn_algorithm\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eLuhn's algorithm.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eWrite MATLAB code that determines if a credit card number conforms to American Express's rules, Visa's, Mastercard's, or none of the above. You will simply return one of the following responses:\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['American Express'\\n'Visa'\\n'Mastercard'\\n'Invalid']]\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\u003eYour output must match one of these exactly, including spelling and capitalization.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe input \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eccNum\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e is a character array containing only digits.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"heading\\\"/\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=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eHere's an example of a Luhn check on a valid American Express number:\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[    ccNum = '375981264037217']]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"2\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe last digit is referred to as the \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003echeck digit\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e and the rest of the digits are referred to as the \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003epayload\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e. Identify the digits that fall into these categories. In this case, 7 is the check digit and 37598126403721 is the payload.\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\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eCounting from the right, with the rightmost payload digit as position 1, double the digits in positions 1, 3, 5, and so on:\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[    [3 14 5 18 8 2 2 12 4 0 3 14 2 2];]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e         3. If any number is greater than 9, subtract 9 from it. \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[    [3 5 5 9 8 2 2 3 4 0 3 5 2 2]; ]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e         4. Sum the digits in the result, which in this case is 53.\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         5. Check if this sum + the check digit, 7, is a multiple of 10. Since 53 + 7 = 60, which is a multiple of 10, this combined with the fact that prefix of this credit card number is 37 and the fact that the original credit card number is 15 digits in length confirms that this is an American Express card number. In which case, you will return:\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[    ccType = 'American Express' ]]\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\u003eIf you appreciated this problem, please consider rating its difficulty and liking!\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":45385,"title":"Coin distribution","description":"Imagine, u r in a shop. ur bill is n(2200). u want to pay the bill with minimum no of coins u have.\r\n\r\nu've coins of - 2000,1000,500,100,50,20,10,5,2,1.\r\n\r\nThere are multiple ways to do that but due to the imposed condition, the correct solution for the above scenario is -\r\n\r\n   2000 - 1\r\n    100 - 2\r\n\r\nthe output should be a 2D matrix of size 2-by-x; where the 1st row contains the coins u used and 2nd row contains how many. \r\n\r\n  out=[2000 100;\r\n          1   2]","description_html":"\u003cp\u003eImagine, u r in a shop. ur bill is n(2200). u want to pay the bill with minimum no of coins u have.\u003c/p\u003e\u003cp\u003eu've coins of - 2000,1000,500,100,50,20,10,5,2,1.\u003c/p\u003e\u003cp\u003eThere are multiple ways to do that but due to the imposed condition, the correct solution for the above scenario is -\u003c/p\u003e\u003cpre\u003e   2000 - 1\r\n    100 - 2\u003c/pre\u003e\u003cp\u003ethe output should be a 2D matrix of size 2-by-x; where the 1st row contains the coins u used and 2nd row contains how many.\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003eout=[2000 100;\r\n        1   2]\r\n\u003c/pre\u003e","function_template":"function out = coin(n)","test_suite":"%%\r\ny=[2000         100\r\n      1           2]\r\nassert(isequal(coin(2200),y))\r\n\r\n%%\r\ny=[100,20,2;2,1,1]\r\nassert(isequal(coin(222),y))\r\n\r\n%%\r\ny=[2000         500         100          50          20          10           5           2           1\r\n    3           1           2           1           1           1           1           1           1]\r\nassert(isequal( coin(6788),y))\r\n\r\n%%\r\ny=[2000         100          20           5           2           1\r\n   56728           3           2           1           1           1]\r\nassert(isequal(  coin(113456348),y))\r\n\r\n%%\r\ny=[2;2]\r\nassert(isequal( coin(4),y))\r\n\r\n%%\r\ny=[1000         100          20           5           2\r\n           1           4           2           1           2]\r\nassert(isequal( coin(1449),y))","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":363598,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":53,"test_suite_updated_at":"2020-03-24T19:30:04.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2020-03-24T18:58:31.000Z","updated_at":"2026-10-21T16:25:49.000Z","published_at":"2020-03-24T19:30:04.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\u003eImagine, u r in a shop. ur bill is n(2200). u want to pay the bill with minimum no of coins u have.\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\u003eu've coins of - 2000,1000,500,100,50,20,10,5,2,1.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThere are multiple ways to do that but due to the imposed condition, the correct solution for the above scenario is -\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[   2000 - 1\\n    100 - 2]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ethe output should be a 2D matrix of size 2-by-x; where the 1st row contains the coins u used and 2nd row contains how many.\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[out=[2000 100;\\n        1   2]]]\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":55285,"title":"Number of leaps in binary search","description":"Binary search is one of the most popular searching algorithms (Binary Search Algorithm). It works only in a sorted array. It utilizes the concept of decrease and conquer. At each iteration, it halves the size of the array while searching for an element in a list of items.\r\nWhile Matlab provides the 'find' or similar functions to search for an element in an array. This problem works the other way around. You have to implement the binary search algorithm here. Instead of finding the index of an element, you've to find how many jumps/iterations do you need using binary search to reach the item you are looking for.\r\n\r\nFor example, \r\ngiven array, a= [2, 4,  5, 7, 8, 9, 19] and search item value= 8.\r\nThe item is located at index 5. But thats not what you are looking for.\r\nImplementing Binary search --\r\nstep - 1: mid_elem = 7. doesn't match and lower. so shift the search to upper half. new array is [8, 9, 19].\r\nstep - 2: mid_elem = 9. doesn't match and higher. so, shift the search to lower half. new array is [8].\r\nstep - 3: mid_elem=8. match.\r\nSo, no of steps =3.\r\n\r\nIf the value is not found, return -1.","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: 457.3px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 228.65px; transform-origin: 407px 228.65px; 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: 199.5px 8px; transform-origin: 199.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eBinary search is one of the most popular searching algorithms (\u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://en.wikipedia.org/wiki/Binary_search_algorithm\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eBinary Search Algorithm\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: 108px 8px; transform-origin: 108px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e). It works only in a sorted array. It utilizes the concept of decrease and conquer. At each iteration, it halves the size of the array while searching for an element in a list of items.\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: 384px 8px; transform-origin: 384px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eWhile Matlab provides the 'find' or similar functions to search for an element in an array. This problem works the other way around. You have to implement the binary search algorithm here. Instead of finding the index of an element, you've to find how many jumps/iterations do you need using binary search to reach the item you are looking for.\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 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: 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: 43px 8px; transform-origin: 43px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eFor example, \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: 194.5px 8px; transform-origin: 194.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003egiven array, a= [2, 4,  5, 7, 8, 9, 19] and search item value= 8.\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: 215px 8px; transform-origin: 215px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe item is located at index 5. But thats not what you are looking for.\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: 94px 8px; transform-origin: 94px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eImplementing Binary search --\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003col style=\"block-size: 61.3px; counter-reset: list-item 0; font-family: Helvetica, Arial, sans-serif; list-style-type: decimal; margin-block-end: 20px; margin-block-start: 10px; margin-bottom: 20px; margin-top: 10px; perspective-origin: 391px 30.65px; transform-origin: 391px 30.65px; margin-top: 10px; margin-bottom: 20px; \"\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.2167px; text-align: left; transform-origin: 363px 10.2167px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 328px 8px; transform-origin: 328px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003estep - 1: mid_elem = 7. doesn't match and lower. so shift the search to upper half. new array is [8, 9, 19].\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.2167px; text-align: left; transform-origin: 363px 10.2167px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 311.5px 8px; transform-origin: 311.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003estep - 2: mid_elem = 9. doesn't match and higher. so, shift the search to lower half. new array is [8].\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.2167px; text-align: left; transform-origin: 363px 10.2167px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 91px 8px; transform-origin: 91px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003estep - 3: mid_elem=8. match.\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003c/ol\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: 59.5px 8px; transform-origin: 59.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eSo, no of steps =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 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: 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: 107px 8px; transform-origin: 107px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eIf the value is not found, return -1.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":" function step = binary_step(a,val)\r\n  step = x;\r\nend","test_suite":"%%\r\na=[2,4,5,7,8,9,19];\r\nval=7;\r\ny_correct = 1;\r\nassert(isequal(binary_step(a,val),y_correct))\r\n\r\n%%\r\na=[2,4,5,7,8,9,19];\r\nval=4;\r\ny_correct = 2;\r\nassert(isequal(binary_step(a,val),y_correct))\r\n\r\n%%\r\na=[2,4,5,7,8,9,19];\r\nval=8;\r\ny_correct = 3;\r\nassert(isequal(binary_step(a,val),y_correct))\r\n\r\n%%\r\na=[2,4,5,7,8,9,19];\r\nval=21;\r\ny_correct = -1;\r\nassert(isequal(binary_step(a,val),y_correct))\r\n\r\n%%\r\na= [10,14,19,26,27,31,33,35,42,44];\r\nval=31;\r\ny_correct = 3;\r\nassert(isequal(binary_step(a,val),y_correct))\r\n\r\n%%\r\na= [10,14,19,26,27,31,33,35,42,44];\r\nval=33;\r\ny_correct = 4;\r\nassert(isequal(binary_step(a,val),y_correct))\r\n\r\n%%\r\na= [10,14,19,26,27,31,33,35,42,44,3];\r\nval=33;\r\ny_correct = 4;\r\nassert(isequal(binary_step(a,val),y_correct))\r\n\r\n%%\r\na= randperm(200);\r\nval=47;\r\ny_correct = 8;\r\nassert(isequal(binary_step(a,val),y_correct))","published":true,"deleted":false,"likes_count":0,"comments_count":1,"created_by":363598,"edited_by":223089,"edited_at":"2022-09-14T08:41:03.000Z","deleted_by":null,"deleted_at":null,"solvers_count":11,"test_suite_updated_at":"2022-09-14T08:41:03.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2022-08-12T22:28:58.000Z","updated_at":"2026-06-02T00:50:25.000Z","published_at":"2022-08-12T22:34:00.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\u003eBinary search is one of the most popular searching algorithms (\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://en.wikipedia.org/wiki/Binary_search_algorithm\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eBinary Search Algorithm\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e). It works only in a sorted array. It utilizes the concept of decrease and conquer. At each iteration, it halves the size of the array while searching for an element in a list of items.\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\u003eWhile Matlab provides the 'find' or similar functions to search for an element in an array. This problem works the other way around. You have to implement the binary search algorithm here. Instead of finding the index of an element, you've to find how many jumps/iterations do you need using binary search to reach the item you are looking for.\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\u003eFor example, \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 array, a= [2, 4,  5, 7, 8, 9, 19] and search item value= 8.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe item is located at index 5. But thats not what you are looking for.\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\u003eImplementing Binary search --\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\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003estep - 1: mid_elem = 7. doesn't match and lower. so shift the search to upper half. new array is [8, 9, 19].\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\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003estep - 2: mid_elem = 9. doesn't match and higher. so, shift the search to lower half. new array is [8].\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\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003estep - 3: mid_elem=8. match.\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, no of steps =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\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\u003eIf the value is not found, return -1.\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":55530,"title":"Jump Search - 01","description":"Find the number of leaps you need to take to find an element in an array using the jump search algorithm.\r\nFor example, \r\na=[ 2,5,6,9,12,14,15,16,17,19,31]\r\nTo find 16 with a jump step of 3, you follow,  2 -\u003e 9 -\u003e 15 -\u003e 19 -\u003e 17 -\u003e 16\r\nSo, total number of jumps = 5\r\nnb. to go forward, you take n-step jump; to go backwards, you jump only one step back. \r\nIf the jump step is larger than the array size, u jump to the last element of the array.","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: 201.438px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 100.713px; transform-origin: 407px 100.719px; 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: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eFind the number of leaps you need to take to find an element in an array using the jump search algorithm.\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=\"\"\u003eFor example, \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=\"\"\u003ea=[ 2,5,6,9,12,14,15,16,17,19,31]\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=\"\"\u003eTo find 16 with a jump step of 3, you follow,  2 -\u0026gt; 9 -\u0026gt; 15 -\u0026gt; 19 -\u0026gt; 17 -\u0026gt; 16\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=\"\"\u003eSo, total number of jumps = 5\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=\"\"\u003enb. to go forward, you take n-step jump; to go backwards, you jump only one step back. \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cul style=\"block-size: 20.4375px; font-family: Helvetica, Arial, sans-serif; list-style-type: square; margin-block-end: 20px; margin-block-start: 10px; margin-bottom: 20px; margin-top: 10px; perspective-origin: 391px 10.2125px; transform-origin: 391px 10.2188px; margin-top: 10px; margin-bottom: 20px; \"\u003e\u003cli style=\"display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.2125px; text-align: left; transform-origin: 363px 10.2188px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eIf the jump step is larger than the array size, u jump to the last element of the array.\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003c/ul\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function y = jump_search(a,x,n)\r\n  y = x;\r\nend","test_suite":"%%\r\na=[ 2,5,6,9,12,14,15,16,17,19,31];\r\nx=16;\r\nn=3;\r\ny_correct = 5;\r\nassert(isequal(jump_search(a,x,n),y_correct))\r\n\r\n%%\r\na=[ 2,5,6,9,12,14,15,16,17,19,31];\r\nx=15;\r\nn=1;\r\ny_correct = 6;\r\nassert(isequal(jump_search(a,x,n),y_correct))\r\n\r\n\r\n%%\r\na=[ 2,5,6,9,12,14,15,16,17,19,31];\r\nx=2;\r\nn=5;\r\ny_correct = 0;\r\nassert(isequal(jump_search(a,x,n),y_correct))\r\n\r\n\r\n%%\r\na=[ 2,5,6,9,12,14,15,16,17,19,31];\r\nx=31;\r\nn=12;\r\ny_correct = 1;\r\nassert(isequal(jump_search(a,x,n),y_correct))\r\n\r\n\r\n%%\r\na=[ 2,5,6,9,12,14,15,16,17,19,31];\r\nx=17;\r\nn=12;\r\ny_correct = 3;\r\nassert(isequal(jump_search(a,x,n),y_correct))\r\n\r\n%%\r\na=[1,5,9,14,17,18,23,33,36,38];\r\nx=38;\r\nn=2;\r\ny_correct = 5;\r\nassert(isequal(jump_search(a,x,n),y_correct))\r\n\r\n%%\r\na=[1,5,9,14,17,18,23,33,36,38];\r\nx=11;\r\nn=4;\r\ny_correct = nan;\r\nassert(isnan(jump_search(a,x,n)))\r\n\r\n","published":true,"deleted":false,"likes_count":0,"comments_count":4,"created_by":363598,"edited_by":363598,"edited_at":"2022-09-30T16:20:21.000Z","deleted_by":null,"deleted_at":null,"solvers_count":12,"test_suite_updated_at":"2022-09-29T13:10:17.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2022-09-08T04:51:33.000Z","updated_at":"2026-09-29T21:14:07.000Z","published_at":"2022-09-28T12:58:17.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 the number of leaps you need to take to find an element in an array using the jump search algorithm.\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 example, \u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ea=[ 2,5,6,9,12,14,15,16,17,19,31]\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 find 16 with a jump step of 3, you follow,  2 -\u0026gt; 9 -\u0026gt; 15 -\u0026gt; 19 -\u0026gt; 17 -\u0026gt; 16\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, total number of jumps = 5\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003enb. to go forward, you take n-step jump; to go backwards, you jump only one step back. \u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eIf the jump step is larger than the array size, u jump to the last element of the array.\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":2189,"title":"Order of things - 1","description":"Let's assume you have a number of calculations to perform, that depend on each other. E.g. 'A' can be calculated, once the outcome of 'B' is known. And 'C' depends on the results of 'A' and 'D'. 'D' depends on 'A'. 'E' depends on all others. Find the right order of the calculations, needed to get all the results. Assume that only one calculation can be done at a time. \r\n\r\nThe dependencies of the calculations on each other is expressed in a matrix, where each row and column corresponds to a specific calculation. \r\n\r\n    A  B  C  D  E\r\n A  0  1  0  0  0\r\n B  0  0  0  0  0\r\n C  1  0  0  1  0\r\n D  1  0  0  0  0\r\n E  1  1  1  1  0\r\n\r\nA '1' indicates that the calculation on that row depends on the one mentioned at the top of that column.\r\n\r\nIn matrix terms, re-order the rows and columns (the same operation applies to both) such that the upper-right triangle, above the diagonal, only contains zeros.\r\n\r\n    B  A  D  C  E\r\n B  0  0  0  0  0\r\n A  1  0  0  0  0\r\n D  0  1  0  0  0\r\n C  0  1  1  0  0\r\n E  1  1  1  1  0\r\n\r\nReturn the new row/column order as a numeric row-vector, referring to the rows/columns of the input matrix. In this example:\r\n\r\n [ 2 1 4 3 5 ]\r\n\r\nYou may assume that all calculations can be executed, in some order or another.","description_html":"\u003cp\u003eLet's assume you have a number of calculations to perform, that depend on each other. E.g. 'A' can be calculated, once the outcome of 'B' is known. And 'C' depends on the results of 'A' and 'D'. 'D' depends on 'A'. 'E' depends on all others. Find the right order of the calculations, needed to get all the results. Assume that only one calculation can be done at a time.\u003c/p\u003e\u003cp\u003eThe dependencies of the calculations on each other is expressed in a matrix, where each row and column corresponds to a specific calculation.\u003c/p\u003e\u003cpre\u003e    A  B  C  D  E\r\n A  0  1  0  0  0\r\n B  0  0  0  0  0\r\n C  1  0  0  1  0\r\n D  1  0  0  0  0\r\n E  1  1  1  1  0\u003c/pre\u003e\u003cp\u003eA '1' indicates that the calculation on that row depends on the one mentioned at the top of that column.\u003c/p\u003e\u003cp\u003eIn matrix terms, re-order the rows and columns (the same operation applies to both) such that the upper-right triangle, above the diagonal, only contains zeros.\u003c/p\u003e\u003cpre\u003e    B  A  D  C  E\r\n B  0  0  0  0  0\r\n A  1  0  0  0  0\r\n D  0  1  0  0  0\r\n C  0  1  1  0  0\r\n E  1  1  1  1  0\u003c/pre\u003e\u003cp\u003eReturn the new row/column order as a numeric row-vector, referring to the rows/columns of the input matrix. In this example:\u003c/p\u003e\u003cpre\u003e [ 2 1 4 3 5 ]\u003c/pre\u003e\u003cp\u003eYou may assume that all calculations can be executed, in some order or another.\u003c/p\u003e","function_template":"function order = calculation_order(dependencies)\r\n  order  = 1:size(dependencies,1);\r\nend","test_suite":"%%\r\ndependencies = [\r\n  0  0\r\n  1  0\r\n];\r\norder = calculation_order(dependencies);\r\norder_correct = [ 1 2 ];\r\nassert(isequal(order_correct,order));\r\n\r\n%%\r\ndependencies = [\r\n  0  1  0  0  0\r\n  0  0  0  0  0\r\n  1  0  0  1  0\r\n  1  0  0  0  0\r\n  1  1  1  1  0\r\n];\r\norder = calculation_order(dependencies);\r\norder_correct = [ 2 1 4 3 5 ];\r\nassert(isequal(order_correct,order));\r\n\r\n%%\r\ndependencies = [\r\n  0  1  1  1  1\r\n  0  0  1  1  1\r\n  0  0  0  1  1\r\n  0  0  0  0  1\r\n  0  0  0  0  0\r\n];\r\norder = calculation_order(dependencies);\r\nordered = dependencies(order,order);\r\nassert(~nnz(triu(ordered-diag(diag(ordered)))));\r\n\r\n%%\r\ndependencies_ = tril(randi(2,10)-1);\r\ndependencies_ = dependencies_-diag(diag(dependencies_));\r\norder_ = randperm(size(dependencies_,1));\r\ndependencies = dependencies_(order_,order_);\r\nclear order_;\r\norder = calculation_order(dependencies);\r\n% [~,order] = sort(order_);\r\nassert(~nnz(triu(dependencies(order,order))));\r\n\r\n%%\r\ndependencies_ = randi(2,10)-1;\r\ndependencies_ = dependencies_-triu(dependencies_);\r\norder_ = randperm(size(dependencies_,1));\r\ndependencies = dependencies_(order_,order_);\r\nclear order_; % to prevent the evalin hack\r\norder = calculation_order(dependencies);\r\n% [~,order] = sort(order_);\r\nassert(~nnz(triu(dependencies(order,order))));\r\n\r\n%%\r\n% n = 10;\r\n% dependencies_ = tril(randi(3,n)\u003e1|diag(ones(1,n-1),-1))\u0026~eye(n);\r\n% order_ = randperm(n);\r\n% dependencies = dependencies_(order_,order_);\r\ndependencies = [\r\n     0     1     1     0     1     0     0     0     0     1\r\n     0     0     0     0     1     0     0     0     0     1\r\n     0     1     0     0     1     0     0     0     0     1\r\n     1     0     1     0     1     1     0     0     0     0\r\n     0     0     0     0     0     0     0     0     0     0\r\n     0     0     0     0     0     0     0     1     0     1\r\n     1     1     1     0     0     0     0     1     1     1\r\n     1     1     0     0     1     0     0     0     0     1\r\n     1     1     1     1     0     1     0     1     0     1\r\n     0     0     0     0     1     0     0     0     0     0\r\n];\r\norder = calculation_order(dependencies);\r\n% [~,order_correct] = sort(order_);\r\norder_correct = [ 5    10     2     3     1     8     6     4     9     7 ];\r\nassert(isequal(order,order_correct));","published":true,"deleted":false,"likes_count":2,"comments_count":2,"created_by":6556,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":21,"test_suite_updated_at":"2014-02-18T08:49:01.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2014-02-17T16:26:27.000Z","updated_at":"2026-07-21T07:16:41.000Z","published_at":"2014-02-18T08:49:01.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"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\u003eLet's assume you have a number of calculations to perform, that depend on each other. E.g. 'A' can be calculated, once the outcome of 'B' is known. And 'C' depends on the results of 'A' and 'D'. 'D' depends on 'A'. 'E' depends on all others. Find the right order of the calculations, needed to get all the results. Assume that only one calculation can be done at a time.\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 dependencies of the calculations on each other is expressed in a matrix, where each row and column corresponds to a specific calculation.\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[    A  B  C  D  E\\n A  0  1  0  0  0\\n B  0  0  0  0  0\\n C  1  0  0  1  0\\n D  1  0  0  0  0\\n E  1  1  1  1  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\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eA '1' indicates that the calculation on that row depends on the one mentioned at the top of that column.\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 matrix terms, re-order the rows and columns (the same operation applies to both) such that the upper-right triangle, above the diagonal, only contains zeros.\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[    B  A  D  C  E\\n B  0  0  0  0  0\\n A  1  0  0  0  0\\n D  0  1  0  0  0\\n C  0  1  1  0  0\\n E  1  1  1  1  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\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eReturn the new row/column order as a numeric row-vector, referring to the rows/columns of the input matrix. In this example:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[ [ 2 1 4 3 5 ]]]\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\u003eYou may assume that all calculations can be executed, in some order or another.\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":56070,"title":"Jump Search  - 02","description":"Find the number of leaps you need to take to find the 'first occurrence' of an element in an array using the jump search algorithm.\r\nFor example, \r\na=[ 2,5,6,9,12,15,15,16,17,19,31]\r\nTo find 16 with a jump step of 3, you follow,  2 -\u003e 9 -\u003e 15 -\u003e 19 -\u003e 17 -\u003e 16\r\nSo, total number of jumps = 5\r\nn.b. to go forward, you take n-step jump; to go backwards, you jump only one step back. \r\n\r\nIn this problem, you will have repetition of numbers. you need to find the index of the first occurence. \r\nThe array is always sorted. But you need to look out and go backward even after finding the element to ensure it is the first occurence.\r\nIf the jump step is larger than the array size, u directly go to the last element of the array\r\n","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: 394.75px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 197.375px; transform-origin: 407px 197.375px; 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: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eFind the number of leaps you need to take to find the '\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; \"\u003efirst occurrence\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' of an element in an array using the jump search algorithm.\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=\"\"\u003eFor example, \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=\"\"\u003ea=[ 2,5,6,9,12,15,15,16,17,19,31]\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=\"\"\u003eTo find 16 with a jump step of 3, you follow,  2 -\u0026gt; 9 -\u0026gt; 15 -\u0026gt; 19 -\u0026gt; 17 -\u0026gt; 16\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=\"\"\u003eSo, total number of jumps = 5\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.b. to go forward, you take n-step jump; to go backwards, you jump only one step back. \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=\"\"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cul style=\"block-size: 20.4375px; font-family: Helvetica, Arial, sans-serif; list-style-type: square; margin-block-end: 20px; margin-block-start: 10px; margin-bottom: 20px; margin-top: 10px; perspective-origin: 391px 10.2125px; transform-origin: 391px 10.2188px; margin-top: 10px; margin-bottom: 20px; \"\u003e\u003cli style=\"display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.2125px; text-align: left; transform-origin: 363px 10.2188px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eIn this problem, you will have repetition of numbers. you need to find the index of the first occurence. \u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003c/ul\u003e\u003cul style=\"block-size: 40.875px; font-family: Helvetica, Arial, sans-serif; list-style-type: square; margin-block-end: 20px; margin-block-start: 10px; margin-bottom: 20px; margin-top: 10px; perspective-origin: 391px 20.4375px; transform-origin: 391px 20.4375px; margin-top: 10px; margin-bottom: 20px; \"\u003e\u003cli style=\"display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 20.4375px; text-align: left; transform-origin: 363px 20.4375px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eThe array is always sorted. But you need to look out and go backward even after finding the element to ensure it is the first occurence.\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003c/ul\u003e\u003cul style=\"block-size: 20.4375px; font-family: Helvetica, Arial, sans-serif; list-style-type: square; margin-block-end: 20px; margin-block-start: 10px; margin-bottom: 20px; margin-top: 10px; perspective-origin: 391px 10.2125px; transform-origin: 391px 10.2188px; margin-top: 10px; margin-bottom: 20px; \"\u003e\u003cli style=\"display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.2125px; text-align: left; transform-origin: 363px 10.2188px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eIf the jump step is larger than the array size, u directly go to the last element of the array\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003c/ul\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=\"\"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function y = jump_search_2(a,x,n)\r\n  y = x;\r\nend","test_suite":"%% 1\r\na=[ 2,5,6,9,12,14,15,16,17,19,31];\r\nx=16;\r\nn=3;\r\ny_correct = 5;\r\nassert(isequal(jump_search_2(a,x,n),y_correct))\r\n\r\n%% 2\r\na=[ 2,5,6,9,12,14,15,16,17,19,31];\r\nx=15;\r\nn=1;\r\ny_correct = 6;\r\nassert(isequal(jump_search_2(a,x,n),y_correct))\r\n\r\n\r\n%% 3\r\na=[2,5,6,9,12,14,15,16,17,19,31];\r\nx=2;\r\nn=5;\r\ny_correct = 0;\r\nassert(isequal(jump_search_2(a,x,n),y_correct))\r\n\r\n\r\n%% 4\r\na=[ 2,5,6,9,12,14,15,16,17,19,31];\r\nx=31;\r\nn=12;\r\ny_correct = 2;\r\nassert(isequal(jump_search_2(a,x,n),y_correct))\r\n\r\n\r\n%% 5\r\na=[ 2,5,6,9,12,14,15,16,17,19,31];\r\nx=17;\r\nn=12;\r\ny_correct = 4;\r\nassert(isequal(jump_search_2(a,x,n),y_correct))\r\n\r\n%% 6\r\na=[1,5,9,14,17,18,23,33,36,38];\r\nx=38;\r\nn=2;\r\ny_correct = 5;\r\nassert(isequal(jump_search_2(a,x,n),y_correct))\r\n\r\n\r\n%% 7\r\na=[5, 10, 10, 10, 25, 30, 35, 35, 55, 65, 100, 600, 4000, 10000, 10000, 30000, 30000, 48000];\r\nx=10;\r\nn=5;\r\ny_correct = 5;\r\nassert(isequal(jump_search_2(a,x,n),y_correct))\r\n\r\n%% 8\r\na=[5, 10, 10, 10, 25, 30, 35, 35, 55, 65, 100, 600, 4000, 10000, 10000, 30000, 30000, 48000];\r\nx=30;\r\nn=2;\r\ny_correct = 4;\r\nassert(isequal(jump_search_2(a,x,n),y_correct))\r\n\r\n%% 9\r\na=[5, 10, 10, 10, 25, 30, 35, 35, 55, 65, 100, 600, 4000, 10000, 10000, 30000, 30000, 48000];\r\nx=35;\r\nn=2;\r\ny_correct = 4;\r\nassert(isequal(jump_search_2(a,x,n),y_correct))\r\n\r\n%% 10\r\na=[5, 10, 10, 10, 25, 30, 35, 35, 55, 65, 100, 600, 4000, 10000, 10000, 30000, 30000, 48000];\r\nx=35;\r\nn=3;\r\ny_correct = 3;\r\nassert(isequal(jump_search_2(a,x,n),y_correct))\r\n\r\n%% 11\r\na=[5, 10, 10, 10, 25, 30, 35, 35, 55, 65, 100, 600, 4000, 10000, 10000, 30000, 30000, 48000];\r\nx=350;\r\nn=3;\r\ny_correct = nan;\r\nassert(isnan(jump_search_2(a,x,n)))\r\n\r\n%% 12\r\na=[5, 10, 10, 10, 25, 30, 35, 35, 55, 65, 100, 600, 4000, 10000, 10000, 30000, 30000, 48000];\r\nx=10000;\r\nn=4;\r\ny_correct = 7;\r\nassert(isequal(jump_search_2(a,x,n),y_correct))\r\n\r\n\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":8,"created_by":363598,"edited_by":363598,"edited_at":"2022-09-30T16:17:38.000Z","deleted_by":null,"deleted_at":null,"solvers_count":6,"test_suite_updated_at":"2022-09-30T16:12:42.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2022-09-28T12:51:46.000Z","updated_at":"2026-07-30T21:52:40.000Z","published_at":"2022-09-28T13:13:44.000Z","restored_at":null,"restored_by":null,"spam":null,"simulink":false,"admin_reviewed":false,"description_opc":"{\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFind the number of leaps you need to take to find the '\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003efirst occurrence\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e' of an element in an array using the jump search algorithm.\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 example, \u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ea=[ 2,5,6,9,12,15,15,16,17,19,31]\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 find 16 with a jump step of 3, you follow,  2 -\u0026gt; 9 -\u0026gt; 15 -\u0026gt; 19 -\u0026gt; 17 -\u0026gt; 16\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, total number of jumps = 5\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003en.b. to go forward, you take n-step jump; to go backwards, you jump only one step back. \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=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eIn this problem, you will have repetition of numbers. you need to find the index of the first occurence. \u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe array is always sorted. But you need to look out and go backward even after finding the element to ensure it is the first occurence.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eIf the jump step is larger than the array size, u directly go to the last element of the array\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\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":55290,"title":"Cut the rod","description":"A rod of length n can be cut in different sizes. Different price is associated with different length of cuts. \r\nlength, len= [1, 2, 3, 4, 5,  6,   7,  8]\r\nprice, p     = [1, 5, 8, 9,10,17,17,20]\r\nHere, if you cut a piece of length 5, the price for that piece is 10. For length of 8, the price is 20.\r\nSay, you have to obtain a rod of length x. By cutting the rod in which way will give you the maximum price.\r\n\r\nFor instance, say x=4. you can cut the rod in pieces like (1,3)/(3,1), (2,2), (1,1,1,1), (1,1,2)/(1,2,1)/... or (4).\r\nThe maximum revenue that you can get here is when you cut the rod in (2,2) pieces to get length x =\u003e 5+5=10. \r\nFor (1,3)=\u003e9; (1,1,1,1)=\u003e 4; (1,1,2)=\u003e7, (4)=\u003e9. \r\n\r\nIn this problem, you have to return the maximum reveneue you can obtain by cutting the rod of size x.","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: 322.875px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 161.438px; transform-origin: 407px 161.438px; 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: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eA rod of length n can be cut in different sizes. Different price is associated with different length of cuts. \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cul style=\"block-size: 40.875px; font-family: Helvetica, Arial, sans-serif; list-style-type: square; margin-block-end: 20px; margin-block-start: 10px; margin-bottom: 20px; margin-top: 10px; perspective-origin: 391px 20.4375px; transform-origin: 391px 20.4375px; margin-top: 10px; margin-bottom: 20px; \"\u003e\u003cli style=\"block-size: 20.4375px; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.2125px; text-align: left; transform-origin: 363px 10.2188px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003elength, len= [1, 2, 3, 4, 5,  6,   7,  8]\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4375px; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.2125px; text-align: left; transform-origin: 363px 10.2188px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eprice, p     = [1, 5, 8, 9,10,17,17,20]\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003c/ul\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=\"\"\u003eHere, if you cut a piece of length 5, the price for that piece is 10. For length of 8, the price is 20.\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=\"\"\u003eSay, you have to obtain a rod of length x. By cutting the rod in which way will give you the maximum price.\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=\"\"\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: 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=\"\"\u003eFor instance, say x=4. you can cut the rod in pieces like (1,3)/(3,1), (2,2), (1,1,1,1), (1,1,2)/(1,2,1)/... or (4).\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=\"\"\u003eThe maximum revenue that you can get here is when you cut the rod in (2,2) pieces to get length x =\u0026gt; 5+5=10. \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=\"\"\u003eFor (1,3)=\u0026gt;9; (1,1,1,1)=\u0026gt; 4; (1,1,2)=\u0026gt;7, (4)=\u0026gt;9. \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=\"\"\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: 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=\"\"\u003eIn this problem, you have to return the maximum reveneue you can obtain by cutting the rod of size x.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function y = rod_cut(x,p)\r\n  y = x;\r\nend","test_suite":"%%\r\np=[1,5,8,9,10,17,17,20];\r\nx=4;\r\ny_correct = 10;\r\nassert(isequal(rod_cut(x,p),y_correct))\r\n\r\n%%\r\np=[1,5,8,9,10,17,17,20];\r\nx=8;\r\ny_correct = 22;\r\nassert(isequal(rod_cut(x,p),y_correct))\r\n\r\n%%\r\np=[1,5,8,9,10,17,17,20];\r\nx=7;\r\ny_correct = 18;\r\nassert(isequal(rod_cut(x,p),y_correct))\r\n\r\n%%\r\np=[1,5,8,9,10,17,17,20];\r\nx=6;\r\ny_correct = 17;\r\nassert(isequal(rod_cut(x,p),y_correct))\r\n\r\n%%\r\np=[10,5,3,18];\r\nx=4;\r\ny_correct = 40;\r\nassert(isequal(rod_cut(x,p),y_correct))\r\n\r\n\r\n%%\r\np=[10,5,3,18];\r\nx=2;\r\ny_correct = 20;\r\nassert(isequal(rod_cut(x,p),y_correct))\r\n\r\n\r\n%%\r\np=[10,5,36,18,36];\r\nx=4;\r\ny_correct = 46;\r\nassert(isequal(rod_cut(x,p),y_correct))\r\n\r\n%%\r\np=[10,5,36,18,36];\r\nx=5;\r\ny_correct = 56;\r\nassert(isequal(rod_cut(x,p),y_correct))","published":true,"deleted":false,"likes_count":3,"comments_count":0,"created_by":363598,"edited_by":363598,"edited_at":"2022-08-13T23:35:18.000Z","deleted_by":null,"deleted_at":null,"solvers_count":14,"test_suite_updated_at":"2022-08-13T23:35:18.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2022-08-13T23:28:51.000Z","updated_at":"2026-07-16T09:42:15.000Z","published_at":"2022-08-13T23:35:18.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 rod of length n can be cut in different sizes. Different price is associated with different length of cuts. \u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003elength, len= [1, 2, 3, 4, 5,  6,   7,  8]\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eprice, p     = [1, 5, 8, 9,10,17,17,20]\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\u003eHere, if you cut a piece of length 5, the price for that piece is 10. For length of 8, the price is 20.\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\u003eSay, you have to obtain a rod of length x. By cutting the rod in which way will give you the maximum price.\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\u003eFor instance, say x=4. you can cut the rod in pieces like (1,3)/(3,1), (2,2), (1,1,1,1), (1,1,2)/(1,2,1)/... or (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\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe maximum revenue that you can get here is when you cut the rod in (2,2) pieces to get length x =\u0026gt; 5+5=10. \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 (1,3)=\u0026gt;9; (1,1,1,1)=\u0026gt; 4; (1,1,2)=\u0026gt;7, (4)=\u0026gt;9. \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\u003eIn this problem, you have to return the maximum reveneue you can obtain by cutting the rod of size x.\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":2190,"title":"Order of things - 2","description":"This problem is closely related to \u003chttp://www.mathworks.nl/matlabcentral/cody/problems/2189-order-of-things-1 Problem 2189, Order of things - 1\u003e. For the details, see the description for that problem. Basically, we have to find the order in which to execute tasks of which the results and prerequisites depend on each other. \r\n\r\n* However, this time it may be impossible to find a solution, since dependencies may be cyclic. In that case, return an empty vector.\r\n* Furthermore, if there are multiple orders possible, return them as multiple rows of the output vector.\r\n\r\nAgain, the dependencies of the tasks on each other is expressed in a matrix, where each row and column corresponds to a specific task. Each row expresses on which result that task depends. A |1| indicates that the calculation on that row depends on the one mentioned at the top of that column.\r\n\r\nReturn the new row/column order as a numeric row-vector, referring to the rows/columns of the input matrix. Of an empty array when no solution is possible. Or a matrix of rows containing the orders, where each row is a different solution, in case multiple solutions exist.\r\n\r\n   A  B  C  D  E\r\nA  0  1  0  0  0\r\nB  0  0  0  0  0\r\nC  1  0  0  1  0\r\nD  1  0  1  0  0\r\nE  1  1  1  1  0\r\n\r\nThe above problem can not be solved, since |C| depends on |D|, which in its place depends on |C|. The returned value would be |[]| .\r\n\r\n   A  B  C  D  E\r\nA  0  1  0  0  0\r\nB  0  0  0  0  0\r\nC  1  0  0  0  0\r\nD  1  0  0  0  0\r\nE  1  1  1  1  0\r\n\r\nThe returned matrix should be \r\n\r\n [\r\n   2 1 3 4 5 \r\n   2 1 4 3 5\r\n ]\r\n\r\nGood luck!","description_html":"\u003cp\u003eThis problem is closely related to \u003ca href = \"http://www.mathworks.nl/matlabcentral/cody/problems/2189-order-of-things-1\"\u003eProblem 2189, Order of things - 1\u003c/a\u003e. For the details, see the description for that problem. Basically, we have to find the order in which to execute tasks of which the results and prerequisites depend on each other.\u003c/p\u003e\u003cul\u003e\u003cli\u003eHowever, this time it may be impossible to find a solution, since dependencies may be cyclic. In that case, return an empty vector.\u003c/li\u003e\u003cli\u003eFurthermore, if there are multiple orders possible, return them as multiple rows of the output vector.\u003c/li\u003e\u003c/ul\u003e\u003cp\u003eAgain, the dependencies of the tasks on each other is expressed in a matrix, where each row and column corresponds to a specific task. Each row expresses on which result that task depends. A \u003ctt\u003e1\u003c/tt\u003e indicates that the calculation on that row depends on the one mentioned at the top of that column.\u003c/p\u003e\u003cp\u003eReturn the new row/column order as a numeric row-vector, referring to the rows/columns of the input matrix. Of an empty array when no solution is possible. Or a matrix of rows containing the orders, where each row is a different solution, in case multiple solutions exist.\u003c/p\u003e\u003cpre\u003e   A  B  C  D  E\r\nA  0  1  0  0  0\r\nB  0  0  0  0  0\r\nC  1  0  0  1  0\r\nD  1  0  1  0  0\r\nE  1  1  1  1  0\u003c/pre\u003e\u003cp\u003eThe above problem can not be solved, since \u003ctt\u003eC\u003c/tt\u003e depends on \u003ctt\u003eD\u003c/tt\u003e, which in its place depends on \u003ctt\u003eC\u003c/tt\u003e. The returned value would be \u003ctt\u003e[]\u003c/tt\u003e .\u003c/p\u003e\u003cpre\u003e   A  B  C  D  E\r\nA  0  1  0  0  0\r\nB  0  0  0  0  0\r\nC  1  0  0  0  0\r\nD  1  0  0  0  0\r\nE  1  1  1  1  0\u003c/pre\u003e\u003cp\u003eThe returned matrix should be\u003c/p\u003e\u003cpre\u003e [\r\n   2 1 3 4 5 \r\n   2 1 4 3 5\r\n ]\u003c/pre\u003e\u003cp\u003eGood luck!\u003c/p\u003e","function_template":"function order = calculation_order(dependencies)\r\n  order  = 1:size(dependencies,1);\r\nend","test_suite":"%%\r\ndependencies = [\r\n  0  0\r\n  1  0\r\n];\r\norder = calculation_order(dependencies);\r\norder_correct = [ 1 2 ];\r\nassert(isequal(order_correct,order));\r\n\r\n%%\r\ndependencies = [\r\n  0  1  0  0  0\r\n  0  0  0  0  0\r\n  1  0  0  0  0\r\n  1  0  0  0  0\r\n  1  1  1  1  0\r\n];\r\norder = calculation_order(dependencies);\r\norder_correct = sortrows([ 2 1 4 3 5 ; 2 1 3 4 5 ]);\r\nassert(isequal(order_correct,order));\r\n\r\n%%\r\ndependencies = [\r\n  0  1  0  0  0\r\n  1  0  0  0  0\r\n  1  0  0  0  0\r\n  1  0  0  0  0\r\n  1  1  1  1  0\r\n];\r\norder = calculation_order(dependencies);\r\nassert(isequal([],order));\r\n\r\n%%\r\ndependencies = [\r\n  0  1  1  1  1\r\n  0  0  1  1  1\r\n  0  0  0  1  1\r\n  0  0  0  0  1\r\n  0  0  0  0  0\r\n];\r\norder = calculation_order(dependencies);\r\nordered = dependencies(order,order);\r\nassert(~nnz(triu(ordered-diag(diag(ordered)))));\r\n\r\n%%\r\ndependencies_ = [\r\n  0  0  0  0  0\r\n  0  0  0  0  0\r\n  0  0  0  0  0\r\n  1  0  0  0  0\r\n  0  1  0  0  0\r\n];\r\norder_ = randperm(size(dependencies_,1));\r\ndependencies = dependencies_(order_,order_);\r\norder_ = 0;\r\norder = calculation_order(dependencies);\r\nassert(isequal(size(unique(order,'rows'),1),30));\r\nfor ii = 1:size(order,1)\r\n   ordered = dependencies(order(ii,:),order(ii,:));\r\n   assert(~nnz(triu(ordered-diag(diag(ordered)))));\r\nend\r\n","published":true,"deleted":false,"likes_count":2,"comments_count":0,"created_by":6556,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":12,"test_suite_updated_at":"2014-02-19T08:24:05.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2014-02-18T08:49:38.000Z","updated_at":"2026-08-25T21:57:07.000Z","published_at":"2014-02-19T08:24:05.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"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 closely related to\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://www.mathworks.nl/matlabcentral/cody/problems/2189-order-of-things-1\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eProblem 2189, Order of things - 1\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e. For the details, see the description for that problem. Basically, we have to find the order in which to execute tasks of which the results and prerequisites depend on each other.\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\u003eHowever, this time it may be impossible to find a solution, since dependencies may be cyclic. In that case, return an empty vector.\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\u003eFurthermore, if there are multiple orders possible, return them as multiple rows of the output 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\u003eAgain, the dependencies of the tasks on each other is expressed in a matrix, where each row and column corresponds to a specific task. Each row expresses on which result that task depends. A\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e1\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e indicates that the calculation on that row depends on the one mentioned at the top of that column.\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\u003eReturn the new row/column order as a numeric row-vector, referring to the rows/columns of the input matrix. Of an empty array when no solution is possible. Or a matrix of rows containing the orders, where each row is a different solution, in case multiple solutions exist.\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[   A  B  C  D  E\\nA  0  1  0  0  0\\nB  0  0  0  0  0\\nC  1  0  0  1  0\\nD  1  0  1  0  0\\nE  1  1  1  1  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\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe above problem can not be solved, since\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:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eC\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e depends on\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eD\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e, which in its place depends on\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eC\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e. The returned value would be\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:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e[]\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[   A  B  C  D  E\\nA  0  1  0  0  0\\nB  0  0  0  0  0\\nC  1  0  0  0  0\\nD  1  0  0  0  0\\nE  1  1  1  1  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\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe returned matrix should be\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   2 1 3 4 5 \\n   2 1 4 3 5\\n ]]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eGood luck!\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":2685,"title":"FloydWarshall","description":"Our task is to find shortest paths between every pair of nodes. Floyd-Warshall is a graph algorithm for finding shortest paths in weighted graph. The input of a function will be in weighted adjacency matrix representation. If two vertices does not have any edge than this matrix has Inf value. Function will return a matrix with values of shortest paths between each pair of nodes.\r\nExample :\r\n input= [0   1  Inf Inf \r\n        Inf  0   2  Inf\r\n        Inf Inf  0   3\r\n         4   7  Inf  0]\r\n\r\n output= [0   1   3   6\r\n          9   0   2   5\r\n          7   8   0   3\r\n          4   5   7   0]","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: 307.9px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 153.95px; transform-origin: 407px 153.95px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 84px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; 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 42px; text-align: left; transform-origin: 384px 42px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 372.5px 8px; transform-origin: 372.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eOur task is to find shortest paths between every pair of nodes. Floyd-Warshall is a graph algorithm for finding shortest paths in weighted graph. The input of a function will be in weighted adjacency matrix representation. If two vertices does not have any edge than this matrix has Inf value. Function will return a matrix with values of shortest paths between each pair of nodes.\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: 29.5px 8px; transform-origin: 29.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eExample\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: 4px 8px; transform-origin: 4px 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: 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: 96px 8.5px; tab-size: 4; transform-origin: 96px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e input= [0   1  Inf Inf \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: 92px 8.5px; tab-size: 4; transform-origin: 92px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e        Inf  0   2  Inf\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 88px 8.5px; tab-size: 4; transform-origin: 88px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e        Inf Inf  0   3\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: 92px 8.5px; tab-size: 4; transform-origin: 92px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e         4   7  Inf  0]\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 0px 8.5px; tab-size: 4; transform-origin: 0px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 92px 8.5px; tab-size: 4; transform-origin: 92px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e output= [0   1   3   6\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: 92px 8.5px; tab-size: 4; transform-origin: 92px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e          9   0   2   5\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: 92px 8.5px; tab-size: 4; transform-origin: 92px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e          7   8   0   3\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: 96px 8.5px; tab-size: 4; transform-origin: 96px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e          4   5   7   0]\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function y = floydwarshall(x)\r\n  y = x;\r\nend","test_suite":"%%\r\nx = [0   1  Inf Inf;\r\n    Inf  0   2  Inf;\r\n    Inf Inf  0   3\r\n     4   7  Inf  0];\r\ny_correct = [0   1   3   6;\r\n             9   0   2   5;\r\n             7   8   0   3;\r\n             4   5   7   0];\r\nassert(isequal(floydwarshall(x),y_correct))\r\n\r\n%%\r\nx = [0   8  Inf  1;\r\n    Inf  0   1  Inf;\r\n     4  Inf  0  Inf;\r\n    Inf  2   9   0];\r\ny_correct = [0   3   4   1\r\n             5   0   1   6\r\n             4   7   0   5\r\n             7   2   3   0];\r\nassert(isequal(floydwarshall(x),y_correct))\r\n\r\n%%\r\nx = [0   3   6  Inf Inf Inf Inf\r\n     3   0   2   1  Inf Inf Inf\r\n     6   2   0   1   4   2  Inf\r\n    Inf  1   1   0   2  Inf  4\r\n    Inf Inf  4   2   0   2   1\r\n    Inf Inf  2  Inf  2   0   1\r\n    Inf Inf Inf  4   1   1   0];\r\ny_correct = [0 3 5 4 6 7 7\r\n            3 0 2 1 3 4 4\r\n            5 2 0 1 3 2 3\r\n            4 1 1 0 2 3 3\r\n            6 3 3 2 0 2 1\r\n            7 4 2 3 2 0 1\r\n            7 4 3 3 1 1 0];\r\nassert(isequal(floydwarshall(x),y_correct))\r\n\r\n%%\r\nx = [0   3  Inf  5;\r\n     2   0  Inf  4;\r\n    Inf  1   0  Inf;\r\n    Inf Inf  2   0];\r\ny_correct = [0 3 7 5\r\n             2 0 6 4\r\n             3 1 0 5\r\n             5 3 2 0];\r\nassert(isequal(floydwarshall(x),y_correct))\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":1,"created_by":32478,"edited_by":223089,"edited_at":"2023-01-03T06:19:00.000Z","deleted_by":null,"deleted_at":null,"solvers_count":52,"test_suite_updated_at":"2023-01-03T06:19:00.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2014-11-23T22:43:29.000Z","updated_at":"2026-09-19T07:05:29.000Z","published_at":"2014-11-23T22:44:41.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\u003eOur task is to find shortest paths between every pair of nodes. Floyd-Warshall is a graph algorithm for finding shortest paths in weighted graph. The input of a function will be in weighted adjacency matrix representation. If two vertices does not have any edge than this matrix has Inf value. Function will return a matrix with values of shortest paths between each pair of nodes.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eExample\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[ input= [0   1  Inf Inf \\n        Inf  0   2  Inf\\n        Inf Inf  0   3\\n         4   7  Inf  0]\\n\\n output= [0   1   3   6\\n          9   0   2   5\\n          7   8   0   3\\n          4   5   7   0]]]\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":57715,"title":"Easy Sequences 96: One-line Code Challenge - Polynomial Folding Function","description":"The Matlab fold function is a very useful functional programming construct. Unfortunatlely, fold is not available io Cody players.\r\nIn this problem we are required to create the function foldPoly, that takes in 2 inputs, a polynomial vector P and a values vector V. Assuming V is never empty, we define the function as follows:\r\n    foldPoly = @(P,V) fold(@(a,b) polyval(P,a+b),V);\r\nwhich is equivalent, in older Matlab, to:\r\n    function z = foldPoly(P,V)\r\n        z = V(1);\r\n        for i = 2:length(V)\r\n            z = polyval(P,(V(i)+z));\r\n        end\r\n    end\r\nThe challenge here is to write the foldPoly function in just one (1) line of code, excluding the function start and end line.\r\n-----------------\r\nNOTE: Empty lines and comment lines (starting with %) shall not be counted, but semicolons (;) will be considered as an end-of-line character.\r\nHINT: It is helpful to have a Matlab in your computer (or you can use Matlab Online), to be able check if your implementation behaves the same way as the built-in fold function.","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.440001px; 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: 468px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 234px; transform-origin: 407px 234px; 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: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eThe Matlab \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://www.mathworks.com/help/symbolic/fold.html\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; font-weight: 700; text-decoration-line: underline; \"\u003efold\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e function is a very useful functional programming construct. Unfortunatlely, \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-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; font-weight: 700; \"\u003efold \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=\"\"\u003eis not available io Cody players.\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=\"font-weight: 700; \"\u003eIn this problem we are required to create 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-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; font-weight: 700; \"\u003efoldPoly\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; \"\u003e,\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e that takes in 2 inputs, a polynomial vector \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-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; font-weight: 700; \"\u003eP\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 and a values vector \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-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; font-weight: 700; \"\u003eV.\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 Assuming \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-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; font-weight: 700; \"\u003eV\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 is never empty, we define the function as follows:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgb(247, 247, 247); block-size: 20px; 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 10px; transform-origin: 404px 10px; 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: 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; 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; \"\u003e    foldPoly = @(P,V) fold(@(a,b) polyval(P,a+b),V);\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=\"\"\u003ewhich is equivalent, in older Matlab, to:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgb(247, 247, 247); block-size: 120px; 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 60px; transform-origin: 404px 60px; margin-left: 3px; margin-top: 10px; margin-bottom: 10px; margin-right: 3px; \"\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20px; 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 10px; transform-origin: 404px 10px; 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; \"\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); text-decoration-color: rgb(14, 0, 255); text-emphasis-color: rgb(14, 0, 255); \"\u003efunction \u003c/span\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003ez = foldPoly(P,V)\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20px; 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 10px; transform-origin: 404px 10px; 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; \"\u003e        z = V(1);\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20px; 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 10px; transform-origin: 404px 10px; 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; \"\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); text-decoration-color: rgb(14, 0, 255); text-emphasis-color: rgb(14, 0, 255); \"\u003efor \u003c/span\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003ei = 2:length(V)\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20px; 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 10px; transform-origin: 404px 10px; 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; \"\u003e            z = polyval(P,(V(i)+z));\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20px; 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 10px; transform-origin: 404px 10px; 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; \"\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); text-decoration-color: rgb(14, 0, 255); text-emphasis-color: rgb(14, 0, 255); \"\u003eend\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20px; 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 10px; transform-origin: 404px 10px; 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; \"\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); text-decoration-color: rgb(14, 0, 255); text-emphasis-color: rgb(14, 0, 255); \"\u003eend\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: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eThe challenge here is to write the\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; \"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; font-weight: 700; \"\u003efoldPoly\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; \"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003efunction in \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; text-decoration-line: underline; \"\u003ejust one (1) line of code\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, excluding the \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-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; font-weight: 700; \"\u003efunction\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 start and \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-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; font-weight: 700; \"\u003eend\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 line.\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=\"\"\u003e-----------------\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-weight: 700; \"\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; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eEmpty lines and comment lines (starting with \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-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; font-weight: 700; \"\u003e%\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e) shall not be counted, but \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=\"text-decoration-line: underline; \"\u003esemicolons (\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-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; font-weight: 700; text-decoration-line: underline; \"\u003e;\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"text-decoration-line: underline; \"\u003e) will be considered as an end-of-line character.\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=\"font-weight: 700; \"\u003eHINT:\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 It is helpful to have a Matlab in your computer (or you can use \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://www.mathworks.com/products/matlab-online.html\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"text-decoration-line: underline; \"\u003eMatlab Online\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e), to be able check if your implementation behaves the same way as the built-in \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-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; font-weight: 700; \"\u003efold \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=\"\"\u003efunction.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function z = foldPoly(P,V)\r\n    z = V(1);\r\n    for i = 2:length(V)\r\n        z = polyval(P,(V(i)+z));\r\n    end\r\n%end","test_suite":"%%\r\nP = [1 2 1]; V = 0:3;\r\nz_correct = 2809;\r\nassert(isequal(foldPoly(P,V),z_correct))\r\n%%\r\nP = [1 -2 -3 4]; V = 0:5;\r\nz_correct = 22624;\r\nassert(isequal(foldPoly(P,V),z_correct))\r\n%%\r\nP = [1 1]; V = 1:10;\r\nz_correct =  [5 8 11 14 17 20 23 26 29 32];\r\nassert(isequal(arrayfun(@(v) foldPoly(P,[v v v]),V),z_correct))\r\n%%\r\nP = [1 -1 1 -1 1 -1 1 -1]; V = 0:3;\r\nz_correct = 40408373573655;\r\nassert(isequal(foldPoly(P,V),z_correct))\r\n%%\r\nP = [1 3 3 1]; V = ones(1,5);\r\nz_correct = 3.0554;\r\nassert(isequal(round(foldPoly(P,V)/1e39,4),z_correct))\r\n%%\r\nP = [-5 5 -5 5 -5]; V = zeros(1,5);\r\nz_correct = -9.1460;\r\nassert(isequal(round(foldPoly(P,V)/1e60,4),z_correct))\r\n%%\r\nP = repmat([-1 0],1,10); V = [1 1 1];\r\nz_correct = 1.1108;\r\nassert(isequal(round(foldPoly(P,V)/1e111,4),z_correct))\r\n%%\r\nfiletext = fileread('foldPoly.m');\r\nnot_allowed = contains(filetext, 'str2') || contains(filetext, 'regex') || contains(filetext, 'eval') || contains(filetext, 'assignin');\r\nassert(~not_allowed)\r\nc = 0;\r\nfor s = deblank(strtrim(splitlines(filetext)))'\r\n    if ~isempty(s{1}) \u0026\u0026 ~isequal(s{1}(1),'%')\r\n        c = c + numel(find(s{1}==';'));\r\n        if  ~isequal(s{1}(end),';')\r\n            c = c + 1;\r\n        end\r\n    end\r\nend\r\nassert(c\u003c=2)","published":true,"deleted":false,"likes_count":0,"comments_count":3,"created_by":255988,"edited_by":255988,"edited_at":"2023-03-24T05:42:24.000Z","deleted_by":null,"deleted_at":null,"solvers_count":4,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2023-02-18T09:51:56.000Z","updated_at":"2026-08-02T13:43:15.000Z","published_at":"2023-02-19T08:39:40.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\u003eThe Matlab \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/help/symbolic/fold.html\\\"\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003cw:u/\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003efold\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e function is a very useful functional programming construct. Unfortunatlely, \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003efold \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003eis not available io Cody players.\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\u003eIn this problem we are required to create the function \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003efoldPoly\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e,\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e that takes in 2 inputs, a polynomial vector \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eP\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e and a values vector \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eV.\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e Assuming \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eV\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e is never empty, we define the function as follows:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[    foldPoly = @(P,V) fold(@(a,b) polyval(P,a+b),V);]]\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\u003ewhich is equivalent, in older Matlab, to:\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[    function z = foldPoly(P,V)\\n        z = V(1);\\n        for i = 2:length(V)\\n            z = polyval(P,(V(i)+z));\\n        end\\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\u003eThe challenge here is to write the\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003efoldPoly\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003efunction in \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003cw:u/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ejust one (1) line of code\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e, excluding the \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003efunction\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e start and \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eend\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e line.\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: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\u003eEmpty lines and comment lines (starting with \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e%\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e) shall not be counted, but \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:u/\u003e\u003c/w:rPr\u003e\u003cw:t\u003esemicolons (\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003cw:u/\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e;\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:u/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e) will be considered as an end-of-line character.\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\u003eHINT:\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e It is helpful to have a Matlab in your computer (or you can use \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/products/matlab-online.html\\\"\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:u/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eMatlab Online\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e), to be able check if your implementation behaves the same way as the built-in \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003efold \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003efunction.\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":57735,"title":"Easy Sequences 98: One-line Code Challenge - Ternary Operator Function","description":"Ternary operation is a standard construct in most computer languages. The ternary operator assigns value to a variable depending on the result of the condition. For example, we find the following syntax in C and many C-like languages:\r\n    y = (p \u003e q) ? m : n;\r\nwhich means that y is assigned the value of either m or n, depending on whether the statement (p \u003e q) is true or false, respectively.\r\nUnfortunately, Matlab does not have a ternary operator and if we need to get the same effect, we may write the statement this way:\r\n    if p \u003e q\r\n        y = m;\r\n    else\r\n        y = n;\r\n    end\r\nBut that is 5 lines of Matlab code versus just a single line in C!\r\nIn this problem we are required create the function ternaryFunc, which takes on the following parameters:  data values a and b; a conditional function C, that outputs true or false, and functions T and F which are applied to a and b, depending on the value of C(a,b). We can write the function as follows:\r\n    function x = ternaryFunc(a,b,C,T,F)\r\n        if C(a,b)\r\n            x = T(a,b);\r\n        else\r\n            x = F(a,b);\r\n        end\r\n    end\r\n-------------\r\nNOTE: The following restrictions apply:\r\nThe function should only have one (1) line of code, excluding the function start line.\r\nSemicolons (;) are considered end-of-line characters.\r\nUse of if, while and switch statements is not allowed.\r\nRegular expressions and string manipulation are not allowed.\r\nUse of variable length arguments is not allowed.\r\n-------------\r\nHINT:  As an exercise you may want to first solve Problem #44243.","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.440001px; 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: 780px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 390px; transform-origin: 407px 390px; 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\u003ca target='_blank' href = \"https://en.wikipedia.org/wiki/Ternary_conditional_operator\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"font-weight: 700; text-decoration-line: underline; \"\u003eTernary operation\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e is a standard construct in most computer languages. The ternary operator assigns value to a variable depending on the result of the condition. For example, we find the following syntax in C and many C-like languages:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgb(247, 247, 247); block-size: 20px; 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 10px; transform-origin: 404px 10px; 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: 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; 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; \"\u003e    y = (p \u0026gt; q) ? m : n;\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: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003ewhich means that \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-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; font-weight: 700; \"\u003ey\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 is assigned the value of either \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-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; font-weight: 700; \"\u003em \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=\"\"\u003eor \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-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; font-weight: 700; \"\u003en\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, depending on whether the statement \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-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; font-weight: 700; \"\u003e(p \u0026gt; q) \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=\"\"\u003eis true or false, 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=\"\"\u003eUnfortunately, Matlab does not have a ternary operator and if we need to get the same effect, we may write the statement this way:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgb(247, 247, 247); block-size: 100px; 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 50px; transform-origin: 404px 50px; margin-left: 3px; margin-top: 10px; margin-bottom: 10px; margin-right: 3px; \"\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20px; 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 10px; transform-origin: 404px 10px; 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; \"\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); text-decoration-color: rgb(14, 0, 255); text-emphasis-color: rgb(14, 0, 255); \"\u003eif \u003c/span\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003ep \u0026gt; q\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20px; 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 10px; transform-origin: 404px 10px; 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; \"\u003e        y = m;\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20px; 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 10px; transform-origin: 404px 10px; 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; \"\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); text-decoration-color: rgb(14, 0, 255); text-emphasis-color: rgb(14, 0, 255); \"\u003eelse\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20px; 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 10px; transform-origin: 404px 10px; 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; \"\u003e        y = n;\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20px; 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 10px; transform-origin: 404px 10px; 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; \"\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); text-decoration-color: rgb(14, 0, 255); text-emphasis-color: rgb(14, 0, 255); \"\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: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eBut that is 5 lines of Matlab code versus just a single line in C!\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=\"\"\u003eIn this problem we are required \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; \"\u003ecreate 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-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; font-weight: 700; \"\u003eternaryFunc\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; \"\u003e, which takes on the following parameters:  data values \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-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; font-weight: 700; \"\u003ea\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; \"\u003e and \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-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; font-weight: 700; \"\u003eb\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; \"\u003e; a conditional 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-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; 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=\"font-weight: 700; \"\u003e, that outputs true or false, and functions T and F which are applied to \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-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; font-weight: 700; \"\u003ea\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; \"\u003e and \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-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; font-weight: 700; \"\u003eb\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; \"\u003e, depending on the value of \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; font-weight: 700; \"\u003eC(a,b)\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. We can write the function as follows:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgb(247, 247, 247); block-size: 140px; 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 70px; transform-origin: 404px 70px; margin-left: 3px; margin-top: 10px; margin-bottom: 10px; margin-right: 3px; \"\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20px; 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 10px; transform-origin: 404px 10px; 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; \"\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); text-decoration-color: rgb(14, 0, 255); text-emphasis-color: rgb(14, 0, 255); \"\u003efunction \u003c/span\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003ex = ternaryFunc(a,b,C,T,F)\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20px; 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 10px; transform-origin: 404px 10px; 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; \"\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); text-decoration-color: rgb(14, 0, 255); text-emphasis-color: rgb(14, 0, 255); \"\u003eif \u003c/span\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003eC(a,b)\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20px; 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 10px; transform-origin: 404px 10px; 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; \"\u003e            x = T(a,b);\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20px; 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 10px; transform-origin: 404px 10px; 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; \"\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); text-decoration-color: rgb(14, 0, 255); text-emphasis-color: rgb(14, 0, 255); \"\u003eelse\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20px; 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 10px; transform-origin: 404px 10px; 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; \"\u003e            x = F(a,b);\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20px; 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 10px; transform-origin: 404px 10px; 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; \"\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); text-decoration-color: rgb(14, 0, 255); text-emphasis-color: rgb(14, 0, 255); \"\u003eend\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20px; 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 10px; transform-origin: 404px 10px; 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; \"\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); text-decoration-color: rgb(14, 0, 255); text-emphasis-color: rgb(14, 0, 255); \"\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: 0px 0px; transform-origin: 0px 0px; \"\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: 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=\"font-weight: 700; \"\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; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eThe following restrictions apply:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cul style=\"block-size: 100px; font-family: Helvetica, Arial, sans-serif; list-style-type: square; margin-block-end: 20px; margin-block-start: 10px; margin-bottom: 20px; margin-top: 10px; perspective-origin: 391px 50px; transform-origin: 391px 50px; margin-top: 10px; margin-bottom: 20px; \"\u003e\u003cli style=\"background-position-x: 0px; background-position-y: 50%; block-size: 20px; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10px; text-align: left; transform-origin: 363px 10px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"background-position-x: 0%; background-position-y: 0%; block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eThe function should only have one (1) line of code, excluding the function start line.\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"background-position-x: 0px; background-position-y: 50%; block-size: 20px; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10px; text-align: left; transform-origin: 363px 10px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"background-position-x: 0%; background-position-y: 0%; block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eSemicolons (\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"background-position-x: 0%; background-position-y: 0%; block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e;\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"background-position-x: 0%; background-position-y: 0%; block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e) are considered end-of-line characters.\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"background-position-x: 0px; background-position-y: 50%; block-size: 20px; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10px; text-align: left; transform-origin: 363px 10px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"background-position-x: 0%; background-position-y: 0%; block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eUse of \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"background-position-x: 0%; background-position-y: 0%; block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; font-weight: 700; \"\u003eif\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"background-position-x: 0%; background-position-y: 0%; block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e, \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"background-position-x: 0%; background-position-y: 0%; block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; font-weight: 700; \"\u003ewhile\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"background-position-x: 0%; background-position-y: 0%; block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e and \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"background-position-x: 0%; background-position-y: 0%; block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; font-weight: 700; \"\u003eswitch\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"background-position-x: 0%; background-position-y: 0%; block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e statements is not allowed.\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"background-position-x: 0px; background-position-y: 50%; block-size: 20px; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10px; text-align: left; transform-origin: 363px 10px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"background-position-x: 0%; background-position-y: 0%; block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eRegular expressions and string manipulation are not allowed.\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"background-position-x: 0px; background-position-y: 50%; block-size: 20px; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10px; text-align: left; transform-origin: 363px 10px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"background-position-x: 0%; background-position-y: 0%; block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eUse of variable length arguments is not allowed.\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003c/ul\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=\"\"\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: 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=\"font-weight: 700; \"\u003eHINT:  \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=\"\"\u003eAs an exercise you may want to first solve \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://www.mathworks.com/matlabcentral/cody/problems/44243\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"font-weight: 700; text-decoration-line: underline; \"\u003eProblem #44243\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function x = ternaryFunc(a,b,C,T,F)\r\n    if C(a,b)\r\n        x = T(a,b);\r\n    else\r\n        x = F(a,b);\r\n    end\r\nend","test_suite":"%%\r\na = 20; b = 2; \r\nC = @gt;\r\nT = @(a,b) a ^ b;\r\nF = @(a,b) b ^ a;\r\nx_correct = 400;\r\nassert(isequal(ternaryFunc(a,b,C,T,F),x_correct))\r\nC = @le;\r\nx_correct = 1048576;\r\nassert(isequal(ternaryFunc(a,b,C,T,F),x_correct))\r\n%%\r\na = 123; b = 456; \r\nC = @lt;\r\nT = @(a,b) round(sind(b/a),4);\r\nF = @(a,b) round(sind(b*a),4);\r\nx_correct = 0.0647;\r\nassert(isequal(ternaryFunc(a,b,C,T,F),x_correct))\r\nC = @ge;\r\nx_correct = -0.9511;\r\nassert(isequal(ternaryFunc(a,b,C,T,F),x_correct))\r\n%%\r\na = 'A'; b = 'A'; \r\nC = @eq;\r\nT = @(a,b) log(a/b);\r\nF = @(a,b) log(a*b);\r\nx_correct = false;\r\nassert(isequal(ternaryFunc(a,b,C,T,F),x_correct))\r\n%%\r\na = 1000; b = 2000; \r\nC = @gt;\r\nT = @(a,b) char(a + \" is greater than \" + b);\r\nF = @(a,b) char(b + \" is greater than \" + a);\r\nx_correct = '2000 is greater than 1000';\r\nassert(isequal(ternaryFunc(a,b,C,T,F),x_correct))\r\n%%\r\na = repelem('1',5); b = repelem('2',100); \r\nC = @(a,b) all(lt(a,b(1:length(a))));\r\nT = @(a,b) arrayfun(@(i) i,1:str2num(a));\r\nF = @(a,b) arrayfun(@(i) i,1:str2num(b));\r\nx_correct = 1:11111;\r\nassert(isequal(ternaryFunc(a,b,C,T,F),x_correct))\r\n%%\r\na = 1; b = 0; \r\nC = @lt;\r\nT = @(a,b) a * length(1:1/b);\r\nF = @(a,b) b * length(1:1/a);\r\nx_correct = 0;\r\nassert(isequal(ternaryFunc(a,b,C,T,F),x_correct))\r\n%%\r\na = randi(1000); b = randi(1000); \r\nC = @le;\r\nT = @(a,b) a * length(1:b/a);\r\nF = @(a,b) b * length(1:a/b);\r\nif C(a,b)\r\n    x_correct = T(a,b);\r\nelse\r\n    x_correct = F(a,b);\r\nend\r\nassert(isequal(ternaryFunc(a,b,C,T,F),x_correct))\r\n%%\r\nfiletext = fileread('ternaryFunc.m');\r\nnot_allowed = contains(filetext, 'str2') || contains(filetext, 'regex') || contains(filetext, 'eval') || contains(filetext, 'assignin') || contains(filetext, 'if') || contains(filetext, 'while') || contains(filetext, 'switch') || contains(filetext, 'vararg');\r\nassert(~not_allowed)\r\nc = 0;\r\nfor s = deblank(strtrim(splitlines(filetext)))'\r\n    if ~isempty(s{1}) \u0026\u0026 ~isequal(s{1}(1),'%')\r\n        c = c + numel(find(s{1}==';'));\r\n        if  ~isequal(s{1}(end),';')\r\n            c = c + 1;\r\n        end\r\n    end\r\nend\r\nassert(c\u003c=2)","published":true,"deleted":false,"likes_count":0,"comments_count":4,"created_by":255988,"edited_by":255988,"edited_at":"2023-03-29T18:12:50.000Z","deleted_by":null,"deleted_at":null,"solvers_count":12,"test_suite_updated_at":"2023-03-01T19:53:27.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2023-02-26T08:27:07.000Z","updated_at":"2026-08-02T14:21:58.000Z","published_at":"2023-02-27T08:38:47.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:hyperlink w:docLocation=\\\"https://en.wikipedia.org/wiki/Ternary_conditional_operator\\\"\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003cw:u/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eTernary operation\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e is a standard construct in most computer languages. The ternary operator assigns value to a variable depending on the result of the condition. For example, we find the following syntax in C and many C-like languages:\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[    y = (p \u003e q) ? m : n;]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ewhich means that \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ey\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e is assigned the value of either \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003em \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003eor \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003en\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e, depending on whether the statement \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e(p \u0026gt; q) \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003eis true or false, 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\u003eUnfortunately, Matlab does not have a ternary operator and if we need to get the same effect, we may write the statement this way:\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[    if p \u003e q\\n        y = m;\\n    else\\n        y = n;\\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\u003eBut that is 5 lines of Matlab code versus just a single line in C!\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eIn this problem we are required \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ecreate the function \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eternaryFunc\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e, which takes on the following parameters:  data values \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ea\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e and \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eb\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e; a conditional function \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eC\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e, that outputs true or false, and functions T and F which are applied to \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ea\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e and \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eb\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e, depending on the value of \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eC(a,b)\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e. We can write the function as follows:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[    function x = ternaryFunc(a,b,C,T,F)\\n        if C(a,b)\\n            x = T(a,b);\\n        else\\n            x = F(a,b);\\n        end\\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\u003e-------------\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eNOTE: \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003eThe following restrictions apply:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe function should only have one (1) line of code, excluding the function start line.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eSemicolons (\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e;\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e) are considered end-of-line characters.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eUse of \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eif\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\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ewhile\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e and \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eswitch\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e statements is not allowed.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eRegular expressions and string manipulation are not allowed.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eUse of variable length arguments is not allowed.\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:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eHINT:  \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003eAs an exercise you may want to first solve \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/44243\\\"\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003cw:u/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eProblem #44243\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":45367,"title":"Sieve of Eratosthenes - 02","description":" \"Sift the Two's and Sift the Three's,\r\n  The Sieve of Eratosthenes.\r\n  When the multiples sublime,\r\n  The numbers that remain are Prime.\"  ...anonymous\r\n\r\n\r\nSieve of Eratosthenes is a simple but ingenious ancient algorithm for finding all prime numbers up to n.\r\n\r\ngiven a limit n, u've to find all the primes up to n.\r\nThe built-in prime function of matlab is restricted.","description_html":"\u003cpre\u003e \"Sift the Two's and Sift the Three's,\r\n  The Sieve of Eratosthenes.\r\n  When the multiples sublime,\r\n  The numbers that remain are Prime.\"  ...anonymous\u003c/pre\u003e\u003cp\u003eSieve of Eratosthenes is a simple but ingenious ancient algorithm for finding all prime numbers up to n.\u003c/p\u003e\u003cp\u003egiven a limit n, u've to find all the primes up to n.\r\nThe built-in prime function of matlab is restricted.\u003c/p\u003e","function_template":"function y = sieve(n)","test_suite":"%%\r\nassert(isequal(sieve(50),primes(50)))\r\n%%\r\nassert(isequal(sieve(5000),primes(5000)))\r\n%%\r\nassert(isequal(sieve(19),primes(19)))\r\n%%\r\nassert(isequal(sieve(6660),primes(6660)))\r\n%%\r\nassert(isequal(sieve(20050),primes(20050)))\r\n%%\r\nassert(isequal(sieve(200500),primes(200500)))\r\n%%\r\nfiletext = fileread('sieve.m');\r\nassert(isempty(strfind(filetext, 'primes')),'primes() forbidden')\r\nassert(isempty(strfind(filetext, 'isprime')),'isprime() forbidden')","published":true,"deleted":false,"likes_count":3,"comments_count":0,"created_by":363598,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":165,"test_suite_updated_at":"2020-03-16T19:32:16.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2020-03-16T19:27:09.000Z","updated_at":"2026-10-28T13:24:10.000Z","published_at":"2020-03-16T19:32:16.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[ \\\"Sift the Two's and Sift the Three's,\\n  The Sieve of Eratosthenes.\\n  When the multiples sublime,\\n  The numbers that remain are Prime.\\\"  ...anonymous]]\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\u003eSieve of Eratosthenes is a simple but ingenious ancient algorithm for finding all prime numbers up to n.\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 a limit n, u've to find all the primes up to n. The built-in prime function of matlab is restricted.\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":43642,"title":"Euclidean distance from a point to a polynomial","description":"A not uncommon problem in the area of computational geometry is to find the closest point to a straight line from a given point, or the distance from a point to a line. As you might expect, there is a simple formula for those things.\r\n\r\nAs an extension, I decided one day to write a tool that would compute the distance from a point to a general polynomial function in the (x,y) plane. That is your problem here:\r\n\r\nGiven a point (x0,y0), and a polynomial in the form y=P(x) where the function P is defined by the coefficients of a polynomial, you need to compute the minimum \u003chttps://en.wikipedia.org/wiki/Euclidean_distance Euclidean distance\u003e to that polynomial. So you need to find and return the minimum distance in the (x,y) plane between the point (x0,y0), and the function y=P(x).\r\n\r\nThe function P will be passed in as the coefficients of a polynomial in standard MATLAB form, thus with the highest order coefficient first in a vector, like that generated by polyfit, and used by polyval. (P might be as simple as a constant function.) The point in question will be passed in as a vector of length 2, thus [x0,y0].\r\n\r\nAs test case for you to check your code, the distance from the point (-2,-5) to the curve y=x^2/2+3*x-5 should be:\r\n\r\n  x0y0 = [-2 -5];\r\n  P = [0.5 3 -5];\r\n  D = distance2polynomial(P,xy)\r\n  D =\r\n          1.89013819497707\r\n\r\n(Be careful plotting these curves in case you want to plot your solution. The command \"axis equal\" is a good idea.)\r\n\r\nThe symbolic TB tells me the distance is 1.8901381949770695260066523338279..., but I'll allow some slop in your solution, since you may have chosen a different algorithm than the one I chose. You should expect to provide at least 13 correct significant digits in the solution.\r\n\r\nDisclaimer: I'm not really sure why anyone needs such a code, which is why I've not posted my solution on the FEX. Anyway, my solution is a pretty one that I thought might make a fun Cody problem, and I wanted to see how others might approach the problem. I expect that my reference solution will score poorly for Cody purposes, since it is carefully coded, complete with error checks, and returns more than just the minimum distance.","description_html":"\u003cp\u003eA not uncommon problem in the area of computational geometry is to find the closest point to a straight line from a given point, or the distance from a point to a line. As you might expect, there is a simple formula for those things.\u003c/p\u003e\u003cp\u003eAs an extension, I decided one day to write a tool that would compute the distance from a point to a general polynomial function in the (x,y) plane. That is your problem here:\u003c/p\u003e\u003cp\u003eGiven a point (x0,y0), and a polynomial in the form y=P(x) where the function P is defined by the coefficients of a polynomial, you need to compute the minimum \u003ca href = \"https://en.wikipedia.org/wiki/Euclidean_distance\"\u003eEuclidean distance\u003c/a\u003e to that polynomial. So you need to find and return the minimum distance in the (x,y) plane between the point (x0,y0), and the function y=P(x).\u003c/p\u003e\u003cp\u003eThe function P will be passed in as the coefficients of a polynomial in standard MATLAB form, thus with the highest order coefficient first in a vector, like that generated by polyfit, and used by polyval. (P might be as simple as a constant function.) The point in question will be passed in as a vector of length 2, thus [x0,y0].\u003c/p\u003e\u003cp\u003eAs test case for you to check your code, the distance from the point (-2,-5) to the curve y=x^2/2+3*x-5 should be:\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003ex0y0 = [-2 -5];\r\nP = [0.5 3 -5];\r\nD = distance2polynomial(P,xy)\r\nD =\r\n        1.89013819497707\r\n\u003c/pre\u003e\u003cp\u003e(Be careful plotting these curves in case you want to plot your solution. The command \"axis equal\" is a good idea.)\u003c/p\u003e\u003cp\u003eThe symbolic TB tells me the distance is 1.8901381949770695260066523338279..., but I'll allow some slop in your solution, since you may have chosen a different algorithm than the one I chose. You should expect to provide at least 13 correct significant digits in the solution.\u003c/p\u003e\u003cp\u003eDisclaimer: I'm not really sure why anyone needs such a code, which is why I've not posted my solution on the FEX. Anyway, my solution is a pretty one that I thought might make a fun Cody problem, and I wanted to see how others might approach the problem. I expect that my reference solution will score poorly for Cody purposes, since it is carefully coded, complete with error checks, and returns more than just the minimum distance.\u003c/p\u003e","function_template":"function D = distance2polynomial(P,x0y0)\r\n  % compute the minimum Euclidean distance between a point and a polynomial\r\n  D = rand;\r\nend\r\n","test_suite":"%%\r\nx0y0 = [-2 5];\r\nP = [0.5 3 -5];\r\ny_correct = 4.3093988461280149175163000679048;\r\ntol = 5e-13;\r\nassert(abs(distance2polynomial(P,x0y0)-y_correct) \u003c tol)\r\n\r\n%%\r\nx0y0 = [pi, pi];\r\nP = [10];\r\ny_correct = 6.8584073464102067615373566167205;\r\ntol = 7e-13;\r\nassert(abs(distance2polynomial(P,x0y0)-y_correct) \u003c tol)\r\n\r\n%%\r\nx0y0 = [0.25,50];\r\nP = [1 2 3 4 5];\r\ny_correct = 1.6470039192886012020234097061626;\r\ntol = 5e-13;\r\nassert(abs(distance2polynomial(P,x0y0)-y_correct) \u003c tol)\r\n\r\n%%\r\nx0y0 = [-3 -3];\r\nP = [-2 1];\r\ny_correct = 4.4721359549995793928183473374626;\r\ntol = 5e-13;\r\nassert(abs(distance2polynomial(P,x0y0)-y_correct) \u003c tol)\r\n\r\n%%\r\nx0y0 = [0 5];\r\nP = [1 0 1];\r\ny_correct = 1.9364916731037084425896326998912;\r\ntol = 2e-13;\r\nassert(abs(distance2polynomial(P,x0y0)-y_correct) \u003c tol)\r\n\r\n%%\r\nx0y0 = [-2 -5];\r\nP = [0.5 3 -5];\r\ny_correct = 1.8901381949770695260066523338279;\r\ntol = 2e-13;\r\n(abs(distance2polynomial(P,x0y0)-y_correct) \u003c tol)\r\n\r\n","published":true,"deleted":false,"likes_count":3,"comments_count":2,"created_by":544,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":37,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":37,"created_at":"2016-10-28T21:00:14.000Z","updated_at":"2026-06-23T17:06:47.000Z","published_at":"2016-10-28T21:08:10.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\u003eA not uncommon problem in the area of computational geometry is to find the closest point to a straight line from a given point, or the distance from a point to a line. As you might expect, there is a simple formula for those things.\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\u003eAs an extension, I decided one day to write a tool that would compute the distance from a point to a general polynomial function in the (x,y) plane. That is your problem here:\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 a point (x0,y0), and a polynomial in the form y=P(x) where the function P is defined by the coefficients of a polynomial, you need to compute the minimum\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://en.wikipedia.org/wiki/Euclidean_distance\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eEuclidean distance\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e to that polynomial. So you need to find and return the minimum distance in the (x,y) plane between the point (x0,y0), and the function y=P(x).\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 function P will be passed in as the coefficients of a polynomial in standard MATLAB form, thus with the highest order coefficient first in a vector, like that generated by polyfit, and used by polyval. (P might be as simple as a constant function.) The point in question will be passed in as a vector of length 2, thus [x0,y0].\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\u003eAs test case for you to check your code, the distance from the point (-2,-5) to the curve y=x^2/2+3*x-5 should be:\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[x0y0 = [-2 -5];\\nP = [0.5 3 -5];\\nD = distance2polynomial(P,xy)\\nD =\\n        1.89013819497707]]\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\u003e(Be careful plotting these curves in case you want to plot your solution. The command \\\"axis equal\\\" is a good idea.)\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 symbolic TB tells me the distance is 1.8901381949770695260066523338279..., but I'll allow some slop in your solution, since you may have chosen a different algorithm than the one I chose. You should expect to provide at least 13 correct significant digits in the solution.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eDisclaimer: I'm not really sure why anyone needs such a code, which is why I've not posted my solution on the FEX. Anyway, my solution is a pretty one that I thought might make a fun Cody problem, and I wanted to see how others might approach the problem. I expect that my reference solution will score poorly for Cody purposes, since it is carefully coded, complete with error checks, and returns more than just the minimum distance.\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":45463,"title":"Word Ladder","description":"Given a set of words, and two other words - start and destination,\r\n\r\nFind the smallest chain from start to the destination such that adjacent words in the chain only differ by one character and each word in the chain exists in the set. \r\n\r\nAll the words are of the same length.\r\nThe starting word is not in the set but destination word would be.\r\n\r\nFor example, \r\n\r\n Start = 'COLD'\r\n Destination = 'WARM'\r\n set ={ CORD CARD DART FORT WARM FARM WARD}\r\n\r\n COLD → CORD → CARD → WARD → WARM","description_html":"\u003cp\u003eGiven a set of words, and two other words - start and destination,\u003c/p\u003e\u003cp\u003eFind the smallest chain from start to the destination such that adjacent words in the chain only differ by one character and each word in the chain exists in the set.\u003c/p\u003e\u003cp\u003eAll the words are of the same length.\r\nThe starting word is not in the set but destination word would be.\u003c/p\u003e\u003cp\u003eFor example,\u003c/p\u003e\u003cpre\u003e Start = 'COLD'\r\n Destination = 'WARM'\r\n set ={ CORD CARD DART FORT WARM FARM WARD}\u003c/pre\u003e\u003cpre\u003e COLD → CORD → CARD → WARD → WARM\u003c/pre\u003e","function_template":"function out2 = word_lad_2(ary,st,des)","test_suite":"%%\r\nary={ 'CORD', 'CARD', 'DART', 'FORT', 'WARM', 'FARM', 'WARD'}\r\nst='COLD'\r\ndes='WARM'\r\ny_correct = {'CORD','CARD','WARD','WARM'};\r\nassert(isequal(word_lad_2(ary,st,des),y_correct))\r\n\r\n%%\r\nary={'pan','can','fan','pat','mat','fat','lot','opt','apt','act','ape','put','aut'}\r\nst='man'\r\ndes='ape'\r\ny_correct = {'pan'\t'pat'\t'put'\t'aut'\t'apt'\t'ape'};\r\nassert(isequal(word_lad_2(ary,st,des),y_correct))\r\n\r\n%%\r\nary={'leg','hot','dot','dog','lot','log','cog','hog','zog','fog'}\r\nst='hit'\r\ndes='fog'\r\ny_correct = {'hot','hog','fog'};\r\nassert(isequal(word_lad_2(ary,st,des),y_correct))\r\n\r\n%%\r\nary={'safer', 'rifer','upper','rifre', 'rider','tider' ,'cider','coder','loder', 'cooer', 'cooey', 'gooey', 'goosy' , 'goose' ,'loose','nosey','doose'}\r\nst='refer'\r\ndes='loose'\r\ny_correct = {'rifer'\t'rider'\t'cider'\t'coder'\t'cooer'\t'cooey'\t'gooey'\t'goosy'\t'goose'\t'loose'};\r\nassert(isequal(word_lad_2(ary,st,des),y_correct))\r\n\r\n\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":4,"created_by":363598,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":19,"test_suite_updated_at":"2020-04-16T07:12:17.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2020-04-16T07:11:43.000Z","updated_at":"2026-05-24T22:25:34.000Z","published_at":"2020-04-16T07:12:17.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eGiven a set of words, and two other words - start and destination,\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFind the smallest chain from start to the destination such that adjacent words in the chain only differ by one character and each word in the chain exists in the set.\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\u003eAll the words are of the same length. The starting word is not in the set but destination word would be.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFor example,\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[ Start = 'COLD'\\n Destination = 'WARM'\\n set ={ CORD CARD DART FORT WARM FARM WARD}\\n\\n COLD → CORD → CARD → WARD → WARM]]\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":45389,"title":"Knight's Watch","description":"  \"Night gathers, and now my watch begins\"\r\n\r\nA knight is placed on an n-by-n sized chessboard at the position x. Find the probability that after k steps, the knight will remain within the chessboard.\r\n\r\nAny knight's move that places him outside the board should be considered invalid.\r\n\r\n For simplicity, the knight's position on the chessboard is defined with the numeric\r\n notation instead of algebraic notation. so 'Ka1' is represented as (1,1).\r\n\r\nBrief explanation:\r\n\r\n  Say the knight is placed in pos-(1,1). A knight has 8 possible moves. So in the next move, \r\nthe Knight can go to 8 different positions in the chessboard. But among them, only 2\r\n positions are valid i.e. the knight remains within the chessboard and they are -\r\n(3,2) \u0026 (2,3). So the prob. is 2/8 after 1 move. What will be the probability after k moves?\r\n\r\n","description_html":"\u003cpre class=\"language-matlab\"\u003e\"Night gathers, and now my watch begins\"\r\n\u003c/pre\u003e\u003cp\u003eA knight is placed on an n-by-n sized chessboard at the position x. Find the probability that after k steps, the knight will remain within the chessboard.\u003c/p\u003e\u003cp\u003eAny knight's move that places him outside the board should be considered invalid.\u003c/p\u003e\u003cpre\u003e For simplicity, the knight's position on the chessboard is defined with the numeric\r\n notation instead of algebraic notation. so 'Ka1' is represented as (1,1).\u003c/pre\u003e\u003cp\u003eBrief explanation:\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003eSay the knight is placed in pos-(1,1). A knight has 8 possible moves. So in the next move, \r\nthe Knight can go to 8 different positions in the chessboard. But among them, only 2\r\npositions are valid i.e. the knight remains within the chessboard and they are -\r\n(3,2) \u0026 (2,3). So the prob. is 2/8 after 1 move. What will be the probability after k moves?\r\n\u003c/pre\u003e","function_template":"function prob = knights_watch(x,n,k)","test_suite":"%%\r\nx =[1,1];\r\nassert(isequal(knights_watch(x,3,2),0.0625))\r\n%%\r\nx =[1,1];\r\nassert(isequal(knights_watch(x,4,4),0.0176))\r\n%%\r\nx =[6,4];\r\nassert(isequal(knights_watch(x,6,9),0.012))\r\n%%\r\nx =[6,4];\r\nassert(isequal(knights_watch(x,8,25),0.0011))\r\n%%\r\nx =[8,8];\r\nassert(isequal(knights_watch(x,8,15),0.0042))\r\n%%\r\nx =[8,8];\r\nassert(isequal(knights_watch(x,16,15),0.4666))\r\n%%\r\nx =[3,1];\r\nassert(isequal(knights_watch(x,16,50),0.0037))","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":363598,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":15,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2020-03-25T18:55:22.000Z","updated_at":"2026-07-24T04:40:51.000Z","published_at":"2020-03-25T18:55:22.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[\\\"Night gathers, and now my watch begins\\\"]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eA knight is placed on an n-by-n sized chessboard at the position x. Find the probability that after k steps, the knight will remain within the chessboard.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eAny knight's move that places him outside the board should be considered invalid.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[ For simplicity, the knight's position on the chessboard is defined with the numeric\\n notation instead of algebraic notation. so 'Ka1' is represented as (1,1).]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eBrief explanation:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[Say the knight is placed in pos-(1,1). A knight has 8 possible moves. So in the next move, \\nthe Knight can go to 8 different positions in the chessboard. But among them, only 2\\npositions are valid i.e. the knight remains within the chessboard and they are -\\n(3,2) \u0026 (2,3). So the prob. is 2/8 after 1 move. What will be the probability after k moves?]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":55305,"title":"Chain multiplication - 02","description":"Following up on the problem in 55295, you found the number of multiplications needed to multiply two matrices.\r\nNow, you are given a sequence of matrices. There are many different ways you can multiply the matrices. For example, \r\nsay, you are given 4 matrix - A, B, C, D. They can be multiplied as follows - A(B(CD)), A((BC)D), ((AB)C)D, (AB)(CD), (A(BC))D.\r\n\r\nyou have to figure out which is the optimal way of multiplying those matrices based on the mininum number of multiplications required. For example, consider a simple 3 matrix case.\r\nA(1,2), B(2,3), C(3,2)\r\nA(BC) =\u003e BC requires 12 multiplications; multiplying A matrix with the result requires 4 multiplications. Total = 12+4= 16.\r\n(AB)C =\u003e AB requires 6 multiplications; multiplying the result with the C matrix requires 6 multiplications. Total = 6+6= 12.\r\nTherefore, to multiply ABC - the optimal way is (AB)C requiring 12 multiplications in total.\r\n\r\nHere, you will be given an array 'a' containing the size of consequtive matrices. The output is the minimum number of multiplications required to multiply those matrices.\r\nhere, a = [2, 4, 6, 1] represents 3 matrices --  A(2,4), B(4,6), and C(6,1)","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: 414px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 207px; transform-origin: 407px 207px; 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: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eFollowing up on the problem in \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://www.mathworks.com/matlabcentral/cody/problems/55295-chain-multiplication-01\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003e55295\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e, you found the number of multiplications needed to multiply two matrices.\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=\"\"\u003eNow, you are given a sequence of matrices. There are many different ways you can multiply the matrices. For example, \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=\"\"\u003esay, you are given 4 matrix - A, B, C, D. They can be multiplied as follows - A(B(CD)), A((BC)D), ((AB)C)D, (AB)(CD), (A(BC))D.\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=\"\"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eyou have to figure out which is the optimal way of multiplying those matrices based on the mininum number of multiplications required. For example, consider a simple 3 matrix case.\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=\"\"\u003eA(1,2), B(2,3), C(3,2)\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; 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=\"\"\u003eA(BC) =\u0026gt; BC requires 12 multiplications; multiplying A matrix with the result requires 4 multiplications. Total = 12+4= 16.\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=\"\"\u003e(AB)C =\u0026gt; AB requires 6 multiplications; multiplying the result with the C matrix requires 6 multiplications. Total = 6+6= 12.\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=\"\"\u003eTherefore, to multiply ABC - the optimal way is (AB)C requiring 12 multiplications in total.\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=\"\"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eHere, you will be given an array 'a' containing the size of consequtive matrices. The output is the minimum number of multiplications required to multiply those matrices.\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=\"\"\u003ehere, a = [2, 4, 6, 1] represents 3 matrices --  A(2,4), B(4,6), and C(6,1)\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function y = chain_mul_02(a)\r\n  y = x;\r\nend","test_suite":"%%\r\na=[1,2,3,2];\r\ny_correct = 12;\r\nassert(isequal(chain_mul_02(a),y_correct))\r\n\r\n%%\r\na=[4,10,3,12,20,7];\r\ny_correct = 1344;\r\nassert(isequal(chain_mul_02(a),y_correct))\r\n\r\n\r\n%%\r\na=[1,2,3,4];\r\ny_correct = 18;\r\nassert(isequal(chain_mul_02(a),y_correct))\r\n\r\n\r\n%%\r\na=[81,213,78,96,2,1,98,102, 1200,4];\r\ny_correct = 179067;\r\nassert(isequal(chain_mul_02(a),y_correct))\r\n\r\n%%\r\na=[40, 20, 30, 10, 30];\r\ny_correct = 26000;\r\nassert(isequal(chain_mul_02(a),y_correct))\r\n\r\n%%\r\na=[7,1,5,4,2];\r\ny_correct = 42;\r\nassert(isequal(chain_mul_02(a),y_correct))","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":363598,"edited_by":363598,"edited_at":"2022-08-14T21:58:45.000Z","deleted_by":null,"deleted_at":null,"solvers_count":24,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2022-08-14T20:23:49.000Z","updated_at":"2026-07-28T18:28:02.000Z","published_at":"2022-08-14T21:45:21.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\u003eFollowing up on the problem in \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/55295-chain-multiplication-01\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e55295\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e, you found the number of multiplications needed to multiply two matrices.\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\u003eNow, you are given a sequence of matrices. There are many different ways you can multiply the matrices. For example, \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\u003esay, you are given 4 matrix - A, B, C, D. They can be multiplied as follows - A(B(CD)), A((BC)D), ((AB)C)D, (AB)(CD), (A(BC))D.\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\u003eyou have to figure out which is the optimal way of multiplying those matrices based on the mininum number of multiplications required. For example, consider a simple 3 matrix case.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eA(1,2), B(2,3), C(3,2)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eA(BC) =\u0026gt; BC requires 12 multiplications; multiplying A matrix with the result requires 4 multiplications. Total = 12+4= 16.\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(AB)C =\u0026gt; AB requires 6 multiplications; multiplying the result with the C matrix requires 6 multiplications. Total = 6+6= 12.\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\u003eTherefore, to multiply ABC - the optimal way is (AB)C requiring 12 multiplications in total.\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\u003eHere, you will be given an array 'a' containing the size of consequtive matrices. The output is the minimum number of multiplications required to multiply those matrices.\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\u003ehere, a = [2, 4, 6, 1] represents 3 matrices --  A(2,4), B(4,6), and C(6,1)\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":45458,"title":"Minimal Path - 03 ","description":"Given a matrix, find the minimal path sum from the top left to the bottom right corner.\r\n\r\nNow you can move up, right \u0026 down.\r\n\r\nShow the path using linear indices.","description_html":"\u003cp\u003eGiven a matrix, find the minimal path sum from the top left to the bottom right corner.\u003c/p\u003e\u003cp\u003eNow you can move up, right \u0026 down.\u003c/p\u003e\u003cp\u003eShow the path using linear indices.\u003c/p\u003e","function_template":"function yy = minimal_path_4(x)","test_suite":"%%\r\nx =[1 12 4 6 8 10 100 ; 1 5 7 87 98 2 200;20 56 74 1 34 56 21]\r\ny_correct = [1     4     7    10    13    16    17    18    21];\r\nassert(isequal(minimal_path_4(x),y_correct))\r\n\r\n%%\r\nx =[1 122 4 6 8 10 100 ; 1 5 7 87 98 2 200;20 56 74 1 34 56 21]\r\ny_correct = [1     2     5     8     7    10    13    16    17    18    21];\r\nassert(isequal(minimal_path_4(x),y_correct))\r\n\r\n\r\n%%\r\nx = [2     2     2     2     2\r\n     0     0    10     1     2\r\n    20     0    20     1     2\r\n    30     0     0     3     2];\r\nx=flipud(x);\r\ny_correct = [1     5     6     7     8    12    16    20];\r\nassert(isequal(minimal_path_4(x),y_correct))\r\n\r\n\r\n%%\r\nx=[131\t673\t234\t103\t18\r\n201\t96\t342\t965\t150\r\n630\t803\t746\t422\t111\r\n537\t699\t497\t121\t956\r\n805\t732\t524\t37\t331];\r\n\r\ny_correct = [1     2     7    12    13    18    19    20    25];\r\nassert(isequal(minimal_path_4(x),y_correct))\r\n\r\n\r\n","published":true,"deleted":false,"likes_count":0,"comments_count":0,"created_by":363598,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":11,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2020-04-14T22:57:31.000Z","updated_at":"2026-07-30T14:11:31.000Z","published_at":"2020-04-14T22:57:31.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"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 a matrix, find the minimal path sum from the top left to the bottom right corner.\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\u003eNow you can move up, right \u0026amp; 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\u003eShow the path using linear indices.\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":55355,"title":"Chain multiplication - 05","description":"Following up on the problem in 55305, you found the optimal way of multiplying a chain of matrices.\r\nIn problem 55315, you had to calculate the number of multiplications required based on the positions of parenthesis.\r\n\r\nThis problem is a combination of the previous two. You have to place the parenthesis in the proper places so that minimum number of multiplications are required.\r\nFor instance, array= [1,2,3,2].\r\nSo there are three matrices A, B, and C.\r\nyou can multiply in two ways - A(BC) or (AB)C.\r\nA(BC) - requires total 16 multiplications, while (AB)C requires total 12 multiplications. So the later one is the answer.","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: 252px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 126px; transform-origin: 407px 126px; 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: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eFollowing up on the problem in \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://www.mathworks.com/matlabcentral/cody/problems/55305-chain-multiplication-02/solutions/new\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003e55305\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e, you found the optimal way of multiplying a chain of matrices.\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=\"\"\u003eIn problem \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://www.mathworks.com/matlabcentral/cody/problems/55315-chain-multiplication-04/solutions/new\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003e55315\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e, you had to calculate the number of multiplications required based on the positions of parenthesis.\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=\"\"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eThis problem is a combination of the previous two. You have to place the parenthesis in the proper places so that minimum number of multiplications are required.\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=\"\"\u003eFor instance, array= [1,2,3,2].\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; 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=\"\"\u003eSo there are three matrices A, B, and C.\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=\"\"\u003eyou can multiply in two ways - A(BC) or (AB)C.\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=\"\"\u003eA(BC) - requires total 16 multiplications, while (AB)C requires total 12 multiplications. So the later one is the answer.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function y = chain_mul_05(array)\r\n  y = x;\r\nend","test_suite":"%%\r\narray= [1,2,3,2];\r\ny_correct = \"(AB)C\";\r\nassert(isequal(chain_mul_05(array),y_correct))\r\n\r\n%%\r\narray= [1,2,3,4];\r\ny_correct = \"(AB)C\";\r\nassert(isequal(chain_mul_05(array),y_correct))\r\n\r\n%%\r\narray= [4,10,3,12,20,7];\r\ny_correct = \"(AB)((CD)E)\";\r\nassert(isequal(chain_mul_05(array),y_correct))\r\n\r\n%%\r\narray= [7,1,5,4,2];\r\ny_correct = \"A((BC)D)\";\r\nassert(isequal(chain_mul_05(array),y_correct))\r\n\r\n","published":true,"deleted":false,"likes_count":0,"comments_count":0,"created_by":363598,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":5,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2022-08-25T00:36:44.000Z","updated_at":"2026-07-30T21:31:47.000Z","published_at":"2022-08-25T00:36:44.000Z","restored_at":null,"restored_by":null,"spam":null,"simulink":false,"admin_reviewed":false,"description_opc":"{\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFollowing up on the problem in \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/55305-chain-multiplication-02/solutions/new\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e55305\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e, you found the optimal way of multiplying a chain of matrices.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eIn problem \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/55315-chain-multiplication-04/solutions/new\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e55315\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e, you had to calculate the number of multiplications required based on the positions of parenthesis.\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\u003eThis problem is a combination of the previous two. You have to place the parenthesis in the proper places so that minimum number of multiplications are required.\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 instance, array= [1,2,3,2].\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eSo there are three matrices A, B, and C.\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\u003eyou can multiply in two ways - A(BC) or (AB)C.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eA(BC) - requires total 16 multiplications, while (AB)C requires total 12 multiplications. So the later one is the answer.\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":45426,"title":"The Tortoise and the Hare - 02","description":"Previous problem \u003chttps://www.mathworks.com/matlabcentral/cody/problems/45425-the-tortoise-and-the-hare-01\u003e\r\n\r\nSuppose in an infinitely long line, the tortoise is standing in position 0.\r\n\r\nFrom that place, it can move in both +ve and -ve direction. The condition is that, in i-th jump, it can move i step forward or backward. \r\n\r\nSo one possible scenario can be -\r\n\r\n 0 [i=1] --- 1 step forward\r\n 1 [i=2] --- 2 step forward\r\n 3 [i=3] --- 3 step forward\r\n 6 [i=4] --- 4 step backward\r\n 2 [i=5] --- 5 step forward\r\n 7 [i=6] --- 6 step backward\r\n 1 [i=7] --- 7 step forward\r\n 8\r\n\r\nIf you look carefully, you'll find that -- If the tortoise moves this way, it'll always be able to reach any destination (x). \r\n\r\nThe question is what is the minimum number of moves it'll take to reach destination x.\r\n\r\nFor example -- \r\n\r\n if x=8\r\n  \u003e\u003e in the above example, it takes 7 steps\r\n  \u003e\u003e but if it moves this way  -- [0,-1,1,4,8] -- steps required = 4.\r\n\r\nSo 4 is the optimum way.\r\n","description_html":"\u003cp\u003ePrevious problem \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/45425-the-tortoise-and-the-hare-01\"\u003ehttps://www.mathworks.com/matlabcentral/cody/problems/45425-the-tortoise-and-the-hare-01\u003c/a\u003e\u003c/p\u003e\u003cp\u003eSuppose in an infinitely long line, the tortoise is standing in position 0.\u003c/p\u003e\u003cp\u003eFrom that place, it can move in both +ve and -ve direction. The condition is that, in i-th jump, it can move i step forward or backward.\u003c/p\u003e\u003cp\u003eSo one possible scenario can be -\u003c/p\u003e\u003cpre\u003e 0 [i=1] --- 1 step forward\r\n 1 [i=2] --- 2 step forward\r\n 3 [i=3] --- 3 step forward\r\n 6 [i=4] --- 4 step backward\r\n 2 [i=5] --- 5 step forward\r\n 7 [i=6] --- 6 step backward\r\n 1 [i=7] --- 7 step forward\r\n 8\u003c/pre\u003e\u003cp\u003eIf you look carefully, you'll find that -- If the tortoise moves this way, it'll always be able to reach any destination (x).\u003c/p\u003e\u003cp\u003eThe question is what is the minimum number of moves it'll take to reach destination x.\u003c/p\u003e\u003cp\u003eFor example --\u003c/p\u003e\u003cpre\u003e if x=8\r\n  \u0026gt;\u0026gt; in the above example, it takes 7 steps\r\n  \u0026gt;\u0026gt; but if it moves this way  -- [0,-1,1,4,8] -- steps required = 4.\u003c/pre\u003e\u003cp\u003eSo 4 is the optimum way.\u003c/p\u003e","function_template":"function y = rabbit(n)","test_suite":"%%\r\nassert(isequal(rabbit(8),4))\r\n%%\r\nassert(isequal(rabbit(18),7))\r\n%%\r\nassert(isequal(rabbit(-600),35))\r\n%%\r\nassert(isequal(rabbit(6600),115))\r\n%%\r\nassert(isequal(rabbit(99999),449))\r\n%%\r\nassert(isequal(rabbit(-16),7))\r\n%%\r\nassert(isequal(rabbit(45237929),9513))\r\n%%\r\nassert(isequal(rabbit(46),11))\r\n","published":true,"deleted":false,"likes_count":2,"comments_count":5,"created_by":363598,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":26,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2020-04-07T05:20:53.000Z","updated_at":"2026-05-24T22:24:54.000Z","published_at":"2020-04-07T05:20:53.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ePrevious problem\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/45425-the-tortoise-and-the-hare-01\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026lt;https://www.mathworks.com/matlabcentral/cody/problems/45425-the-tortoise-and-the-hare-01\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026gt;\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eSuppose in an infinitely long line, the tortoise is standing in position 0.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFrom that place, it can move in both +ve and -ve direction. The condition is that, in i-th jump, it can move i step forward or backward.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eSo one possible scenario can be -\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[ 0 [i=1] --- 1 step forward\\n 1 [i=2] --- 2 step forward\\n 3 [i=3] --- 3 step forward\\n 6 [i=4] --- 4 step backward\\n 2 [i=5] --- 5 step forward\\n 7 [i=6] --- 6 step backward\\n 1 [i=7] --- 7 step forward\\n 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\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eIf you look carefully, you'll find that -- If the tortoise moves this way, it'll always be able to reach any destination (x).\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 question is what is the minimum number of moves it'll take to reach destination x.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFor example --\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[ if x=8\\n  \u003e\u003e in the above example, it takes 7 steps\\n  \u003e\u003e but if it moves this way  -- [0,-1,1,4,8] -- steps required = 4.]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eSo 4 is the optimum way.\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":45422,"title":"Coin Distribution - 02 ","description":"Prev prob \u003chttps://www.mathworks.com/matlabcentral/cody/problems/45385-coin-distribution\u003e\r\n\r\nGiven a set of coins and an amount, find out how many ways the amount can be made using the coins given.\r\nAssume, there is an infinite supply of all the coins.\r\n\r\nFor instance,\r\n\r\n Amount = 10\r\n Coins  = [ 2,3,5]\r\n\r\n possible ways are - [2,2,2,2,2],[2,3,5],[5,5],[2,2,3,3]\r\n so total no. of ways = 4.","description_html":"\u003cp\u003ePrev prob \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/45385-coin-distribution\"\u003ehttps://www.mathworks.com/matlabcentral/cody/problems/45385-coin-distribution\u003c/a\u003e\u003c/p\u003e\u003cp\u003eGiven a set of coins and an amount, find out how many ways the amount can be made using the coins given.\r\nAssume, there is an infinite supply of all the coins.\u003c/p\u003e\u003cp\u003eFor instance,\u003c/p\u003e\u003cpre\u003e Amount = 10\r\n Coins  = [ 2,3,5]\u003c/pre\u003e\u003cpre\u003e possible ways are - [2,2,2,2,2],[2,3,5],[5,5],[2,2,3,3]\r\n so total no. of ways = 4.\u003c/pre\u003e","function_template":"function out = coin_lev(coins,amount)","test_suite":"%%\r\ncoins= [ 2,3,5];\r\namount = 10;\r\nassert(isequal(coin_lev(coins,amount),4))\r\n\r\n%%\r\ncoins= [2,3,5,10];\r\namount = 15;\r\nassert(isequal(coin_lev(coins,amount),9))\r\n\r\n%%\r\ncoins= [ 2,3,5];\r\namount = 50;\r\nassert(isequal(coin_lev(coins,amount),51))\r\n\r\n%%\r\ncoins= [2,5,10,1,20];\r\namount = 1225;\r\nassert(isequal(coin_lev(coins,amount),49884828))\r\n\r\n%%\r\ncoins= [ 11,19,23];\r\namount = 12252;\r\nassert(isequal(coin_lev(coins,amount),15681))\r\n%%\r\ncoins= [ 11,19,23,100];\r\namount = 50;\r\nassert(isequal(coin_lev(coins,amount),0))\r\n\r\n%%\r\ncoins= [1,2,3,4,5,8,10,15,20,25];\r\namount = 200;\r\nassert(isequal(coin_lev(coins,amount),119495730))\r\n","published":true,"deleted":false,"likes_count":3,"comments_count":0,"created_by":363598,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":35,"test_suite_updated_at":"2020-04-02T19:38:33.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2020-04-02T19:03:04.000Z","updated_at":"2026-07-28T16:47:38.000Z","published_at":"2020-04-02T19:38:33.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\u003ePrev prob\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/45385-coin-distribution\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026lt;https://www.mathworks.com/matlabcentral/cody/problems/45385-coin-distribution\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026gt;\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eGiven a set of coins and an amount, find out how many ways the amount can be made using the coins given. Assume, there is an infinite supply of all the coins.\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 instance,\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[ Amount = 10\\n Coins  = [ 2,3,5]\\n\\n possible ways are - [2,2,2,2,2],[2,3,5],[5,5],[2,2,3,3]\\n so total no. of ways = 4.]]\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":45416,"title":"Don't be Greedy!","description":"A list of assignments is given to the students along with the submission deadlines. Each of\r\n the assignment contains particular marks.\r\n\r\nIf the student can submit a particular assignment within its deadline, he'll get marks.\r\n\r\nBut he can submit only one assignment per day.\r\n\r\nFor instance,\r\n\r\n Assignment = [ a1, a2, a3, a4, a5, a6]\r\n Marks      = [ 60,100, 20, 40, 20, 10]\r\n Deadline   = [  2,  1,  3,  2,  1,  3]\r\n\r\nNow, on the 1st day - he can submit one among all the assignments. But in the 2nd day, he can no longer submit a2 \u0026 a5.\r\n\r\nHe wants to achieve maximum marks by carefully submitting those assignments within the deadlines.\r\nCan u help him?\r\n\r\nThe answer should be - [a2,a1,a3]. Since by submitting in this sequence, he can get the maximum marks.","description_html":"\u003cp\u003eA list of assignments is given to the students along with the submission deadlines. Each of\r\n the assignment contains particular marks.\u003c/p\u003e\u003cp\u003eIf the student can submit a particular assignment within its deadline, he'll get marks.\u003c/p\u003e\u003cp\u003eBut he can submit only one assignment per day.\u003c/p\u003e\u003cp\u003eFor instance,\u003c/p\u003e\u003cpre\u003e Assignment = [ a1, a2, a3, a4, a5, a6]\r\n Marks      = [ 60,100, 20, 40, 20, 10]\r\n Deadline   = [  2,  1,  3,  2,  1,  3]\u003c/pre\u003e\u003cp\u003eNow, on the 1st day - he can submit one among all the assignments. But in the 2nd day, he can no longer submit a2 \u0026 a5.\u003c/p\u003e\u003cp\u003eHe wants to achieve maximum marks by carefully submitting those assignments within the deadlines.\r\nCan u help him?\u003c/p\u003e\u003cp\u003eThe answer should be - [a2,a1,a3]. Since by submitting in this sequence, he can get the maximum marks.\u003c/p\u003e","function_template":"function yy=greedy_01(marks,deadline)","test_suite":"%%\r\nmarks      = [ 60,100, 20, 40, 20, 10]\r\ndeadline   = [  2,  1,  3,  2,  1,  3]\r\nassert(isequal(greedy_01(marks,deadline),[2,1,3]))\r\n\r\n%%\r\nmarks      = [10,10,50,40,30,100,20,10]\r\ndeadline   = [1,2,3,3,5,5,1,3]\r\nassert(isequal(greedy_01(marks,deadline),[7,4,3,5,6]))\r\n\r\n%%\r\nmarks      = [50,100,40,80,200,220,10]\r\ndeadline   = [2,1,2,1,1,1,4]\r\nassert(isequal(greedy_01(marks,deadline),[6,1,7]))\r\n\r\n%%\r\nmarks      = [50,100,40,80,200,220,10,150]\r\ndeadline   = [2,1,3,6,2,2,6,7]\r\nassert(isequal(greedy_01(marks,deadline),[5     6     3     7     4     8]))\r\n","published":true,"deleted":false,"likes_count":2,"comments_count":15,"created_by":363598,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":22,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2020-04-02T00:18:30.000Z","updated_at":"2026-08-15T13:58:12.000Z","published_at":"2020-04-02T00:18:30.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eA list of assignments is given to the students along with the submission deadlines. Each of the assignment contains particular marks.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eIf the student can submit a particular assignment within its deadline, he'll get marks.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eBut he can submit only one assignment per day.\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 instance,\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[ Assignment = [ a1, a2, a3, a4, a5, a6]\\n Marks      = [ 60,100, 20, 40, 20, 10]\\n Deadline   = [  2,  1,  3,  2,  1,  3]]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eNow, on the 1st day - he can submit one among all the assignments. But in the 2nd day, he can no longer submit a2 \u0026amp; a5.\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\u003eHe wants to achieve maximum marks by carefully submitting those assignments within the deadlines. Can u help him?\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 should be - [a2,a1,a3]. Since by submitting in this sequence, he can get the maximum marks.\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":57760,"title":"Easy Sequences 101: One-line Code Challenge - n-th Digit of Fibonacci Sequence","description":"For a given index , the -th Fibonacci number,  is defined as:  for  or , and  for . \r\nWhat this problem requires is find the digit , which is the -th digit when the Fibonacci numbers are laid side by side.\r\nFor example, for , , and if , .\r\n\r\n--------------------------------\r\nNOTE: The following restrictions apply:\r\nThe function should only have one (1) line of code, excluding the function start line.\r\nSemicolons (;) are considered end-of-line characters.\r\nPlease suppress the function end line. Keyword 'end' is not allowed.\r\nImporting libraries is not allowed.\r\nRegular expressions and string manipulation are not allowed.","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.440001px; 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: 377px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 188.5px; transform-origin: 407px 188.5px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 22px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; 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 11px; text-align: left; transform-origin: 384px 11px; 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=\"\"\u003eFor a given index \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"font-family: STIXGeneral, STIXGeneral-webfont, serif; font-style: italic; font-weight: 400; color: rgb(0, 0, 0);\"\u003ex\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 \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"font-family: STIXGeneral, STIXGeneral-webfont, serif; font-style: italic; font-weight: 400; color: rgb(0, 0, 0);\"\u003ex\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-th \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://en.wikipedia.org/wiki/Fibonacci_number\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eFibonacci number, \u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"vertical-align:-6px\"\u003e\u003cimg src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAoCAYAAACb3CikAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAIqADAAQAAAABAAAAKAAAAABIyrn1AAACTklEQVRYCe2XT0gXURDHNa0g7I8Q2sGDh0iCRDwUQigigqEhdAvr7kkoQqhTHiIIEhS8efASdAjEi9FFD3YrRElEjCCJSgQVrFNQ6edrO/Ba3v52f/52DWIHPs68ebPzZmf3vd9aVpZL3oG8A8V1oDwm/BnzPRAX50sziHPcN+HzVfqcju82djVMQZvjf439EnZAOU7CBbgK50Gy/kel+3eMdLsB39Fa2CcqahoUW+sLiPIdiZoI+S8541lsFeOTnzjVvU+w4QuI8iUp5AQXtzgJXjm2z/yN861volRfNwnssUjXJ0hYkSDmr5AkHelyrljFXnPGMs/BJpzWIJBfZqSptbh1ZCSUWDfyHN6E/EUP47ZvPRm1LU30Al4B7ZqLcAM64D5kKv1kt24U0nZ2ZFbMpFPIHPZlaAV1Ygi0Xd9BpqLHppPTOnHPs9oKvocef6ou3bkVIe0earbQVoTf5lPRj8hihXzxZNSOeeDxp+7S6WiFTKSePWHCs8TpULJCbia8LvWwPqcI/XaosFLkWOhifd9oM8TKDBHWjeXY6OiAu0wtgLr7NAjTd81X+AwFi+klwIqQXoeivi2IN6nBOAXfQKdyAyyBTuInECnvmXGLMFt3VEpnXgR5P6Kb4Z/JHVbWTY1GVaCz4DDkw2EsErfGcQLmQR2R9spB/k3wJirgHGZuGzqhFapBx0EV6MXdl4Lbx4IOoLWg+AGNcA2OQjsMgMa3IHN5zAp6FItwJlhNW1e7T1v5euDLXOm9aIJwx+vw6VzJJe9A3oH/pwN7Ko53GpRHxG4AAAAASUVORK5CYII=\" width=\"17\" height=\"20\" style=\"width: 17px; height: 20px;\"\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 is defined as: \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"vertical-align:-6px\"\u003e\u003cimg src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFYAAAAoCAYAAABkfg1GAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAVqADAAQAAAABAAAAKAAAAABfdlBJAAADFElEQVRoBe2YW6gNURjHt9shuR0JhdoPIkXiwSWRJCQpz3iUJ0VeKHUe1EG5pLx49ybFAyFKeVES5RaJQ3JScj0v7n5/zarVNGZm71mTPbO/r36tNevyzVr/mVnrW9NomJkCpoApYAqYAqZArRVoMrvjMKXoLM/g4AN8bIMdRW/eQf1nMZbT8A1+w2xItZGptY3GNup74Tys8treJH8JPoF8jIc5sALcTQfJV91mMIH9oJekp4zJnMKpnpT4AhIyySTyRVC7aUkNKlZ2jvEehO3wHZwG7uWhqJjdoLtzeiHDlZ7uy4w2Vax+wKCdBpnCDs8xw7G0Wea1u+zlk7K/KLydVFHxsqHQ49+IQ/eklDZz3GBEjjZVa3KLATsdgryx6z0FnpAf8K6VnQ7vYKIuIvvpMt2a5lkKNnjixJcB9T8Bz0ERglmkgHbxNGtSqTDK2VsyS0BRwTzYAmtgH5RlS3Gs0K6o3cHBuqJO8vbPEtZfBuSz/x+OFZaUZRrj5ADOJwTwkdtFK8LqULAXxoCOdAvhADyCZ1CWPcTxzgDOXwXwEcSFRNe66XZCiRq3xxT0xQtreh0sKliOQP7ncyVBsKmUlbkMJNyyGkVpUYG/vr5hOjp5+Ka+RyFe7rfp2nzaGusLezVBIZ2wDiWUhy6qVVSgzWmxp1DSMuBVl5qtVVSgeM8tE9q8rhWUrof++pfpbBgZHXt/uIKUtFOiAo25sF3Hg4sGNLF2bQ8d74KOuFqPZfqvqzX7NaQtRVR3lA0wGqfJ/HZGttlzIEeD0O6/VUUNiiw+g05tc+E+6KR2BKpg+rJ2gxNV6TEYBbntKS19By6vN67Im3s28vuCdBFUxQ4z0CFwOvipYvz/HhG5J36yKooWHafboIr6yepf5pE36961rR/NzPRnSZ+R0q6wICFEhlJa6N/DWlgJvaA4eRxoI6ullRXuSEDxFRaAfpZrF10Nu0DXW8GsRQX6aa9P/x5Mivoq1FJ0odBrU1RmSYsKaF3V/9r4FzGTMv+PWYturbkpYAqYAqaAKWAKmAKmgCnwV4E/2bubgdXiCasAAAAASUVORK5CYII=\" width=\"43\" height=\"20\" style=\"width: 43px; height: 20px;\"\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 for \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"vertical-align:-5px\"\u003e\u003cimg src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAAAkCAYAAADFGRdYAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAASaADAAQAAAABAAAAJAAAAABLVRfgAAACV0lEQVRoBe2YzUtUURiHLQxMbBNWgkEYpetW4SJaJJpYIPRBi4RAYXTZtn9Ag1pEi9xYm3ZJQa4kcmGBq5Bo0SYSEWwh1UKRWpQ+v7hHDs6M95y5g81w3xce33PP53t+956PsaHBzBQwBUwBU8AUqAMFDhLjbRipg1j3PUSJcws+wxY8B7NEgQP4a/AJJI4jSCQpmwfrZ5JDcB9m8jDhrHO8Tgf2JaWouJFSXlScl+VWNPGYjMaUyocp74Fz8Acegf8m+nhW+Tt4DbkzbXLrIHHcGn7gqfDQy5dwzV5ZLScve3EHnW57TaaTwhY4CRJBQul+IbsLynsKX+ENhNhLKn2vApdCBitTp6oi+WO84sF9Tb2kf4GWWqxJTNdPFq+JVmrRIqXtSS6QeRKDycMsXstOPtYmaPAitlGJ+h9K5P33rPNE4N78Mul62X9KCRf9JYVeARYZTUtMpre4+S+Vkz+hImlZuqO/Oyfa7EwzdE/SHtSatGrDn4EvyXOM0+l2MaZBmbo3yX9bpqzq2SEiXWHUAjyBsSSCC/hKRDpCu6NJH1ncoSyNY9umiXSCDqdAX5JOplHQvx0k0jNQsI/hHvyANKuF003xZzKJNgBnoQnewwI4MT+S1in3LcmbxM9B5oHpY7/sDgO5k3q6kkGHvQ70k2QNTnkdjXvlq6R1e/bLvao1mTxNVO5FSyjNrys20hs0cCpr+ew+yTrI+53U+YnXsqsHayfIFfgLbn7OK28JChBsujjqp0e5C+Nxyq7CMTAzBUwBU8AUMAVMAVPAFDAFTIG9FNgG8tGVnS2kWTkAAAAASUVORK5CYII=\" width=\"36.5\" height=\"18\" style=\"width: 36.5px; height: 18px;\"\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 or \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"font-family: STIXGeneral, STIXGeneral-webfont, serif; font-style: normal; font-weight: 400; color: rgb(0, 0, 0);\"\u003e2\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, and \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"vertical-align:-6px\"\u003e\u003cimg src=\"data:image/png;base64,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\" width=\"107\" height=\"20\" style=\"width: 107px; height: 20px;\"\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 for \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"vertical-align:-5px\"\u003e\u003cimg src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAAAkCAYAAADFGRdYAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAASaADAAQAAAABAAAAJAAAAABLVRfgAAADiUlEQVRoBe2YW4hNURjHx4wxTMIoJjEhzIOHIQ+OScqlZl5c8uDBi5III2YeFGFcosmtyGU8aJ5ISYQnkSYpJQ/mSe73e26Ru+H3z1m1OrN3c/bZ6xxOZ331a62197e+71vfWnutdU5RkRefAZ8BnwGfgbzKQI+8ijZesKV0nwY1UA334Qpchc9Q8DKODFyH3wG84VkCClrGMHqtlKAEmWcfeT+9ULOk7eQS/IIWGAIlMCrZ/k5pEnWN+n8hVURRmcNIavGlJKwP8bk4+V46SmRFiF5OHzfjTUt/LwzNgedt+LgBxSG+tNJug1lNs4P0wjoH6bp4pmD6wEq4C60wArIlAzC8CTpDHCieDutdmJ6l0rWqAc0CrYB10BdsqaexEwJnwFZM1ntTroAnYGbvB/U20Ab7L+QITk0sY6MGsJ0O2vX1rRojuywju63nn6iXW++6q5ah0ACPwdj+Sf0oRA6UPnHkMp0Vw81MjOjCpZUzDJQEGdL3LWkCPdMKuAfnIRNRspaDnaxO2idgPGRbBuNAK1lja4zr7FTSkIzVwVfQp+ZKemFoGTwC+TCcpT4RsiWrMSxf2pdK4zrRyjGBq9Q+lA1RspbCQ7D9naM9BVyK7kzv4QtMcGE4gRETtAYQZf/JxL+StQQegPGrsh2mQlzR0X8S9GnPi2vM9FfQyrgClfFcSD+cbAE7SRrUAQfOjV19bs5EK+c1KODnzqwGG+rP4w3wFkyCdPLpqHZx8i1I2m2hdCoHsWYCVjnaqfW/xpScjfAOjC/9tjoM+q3lQuZgRKdZqwtjto2ZNHRXshO10FaIWTe3Yjs5+rT3QVVM23b3GTR0KusuVmy/sOoV1Lda7bSqlWi9BF0sZUB7gma5DSQ6Ng/BQDUiiuxtBp0wZuXo8roD5NelTMKY7nVnoGeIYY3lNBxLfa9d3hYZqIdboAveBSgBHb/aFzqgBl6AZnk/VINmSQNNR5ScJlgF2pwlSpRWzh7QXuRSFG87yO9x0CpNFU3yZFCpsVyEUFnEG3tWtVkPt7S12Zn3z6jrXz37vaUaWJ3L0w9gbLyivhZMsqg6FU2gJtT46668g27qwukSkO4MxpBmtDZFYyTtb0kd7SFaYVGkGWXZfwqNUA7ZFP1cMuNJp1yTbjAJFOsgbAD6vaN/BgZBVJlPB92oy6J29Po+Az4DPgM+Az4DPgM+Az4DPgN5mYE/cbXxvE/rUlYAAAAASUVORK5CYII=\" width=\"36.5\" height=\"18\" style=\"width: 36.5px; height: 18px;\"\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. \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 22px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; 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 11px; text-align: left; transform-origin: 384px 11px; 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=\"\"\u003eWhat this problem requires is find the digit \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"vertical-align:-6px\"\u003e\u003cimg src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAoCAYAAACSN4jeAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAJqADAAQAAAABAAAAKAAAAAA7wp46AAACvElEQVRYCe2XS4hPcRTHx2DGa8EomiJZkZFoJilWHrPBjjSSDUvbWUxNymI2JorFTCSTNM3GhoWImpRHiYU80iglokQzNB7z8Ph8dX/9j+v+7v/31/3fke6pb/ec3zm/c87v/J63pqagogJFBf6tCkxLSacF3UUwN8VmDN1zMASeAdk/BLnQHqL8MJiA7wT7QTvoA5+BbL6DC2AZqDo1EsEm1pUQcRFt143dC/jlCXaZNm03AZXgWo/3hbQrITcITe0Mj20mzcdNsDfwaetyk7FVgpruqtFjPLsqnCsTRUmPGPu7Zez/Wr3EBFFybQGeBk2f0QD7RJPaxNZS47YS+2vHXTOyj31kFDpqFhs5mC2XWKvxdB/+nZF9bH1MsSAmB4lpiUm31Xi5Yvg0VseLpddWyIJvxolb9PpuDHCqxf/W9PsQ0Kdikw4TYBh+eoCHdaaPBtMX0Kdik0ETRNdMCB3DSAk5rA7pVInNPIzHTICDAZ118ut4cEmFrskA1yWTHSaAAi0tqbxcr+kzDh+yJr3OfIqTJsgTn5Fp19XjKjUJv8voMmWfmkAnUjzXoTsC3LR/g9+XYi/VTKPXkWRlo/qTXUGTG72+vvWlC1vVdLa64NtAEu2mcQBowLeBdvhhoHv1I2gBv1H8WdKAVq8JS4cQFPwTWAmaIojXufUSHAVnwFeQRHdo1GGtQXeCHqDNchPoWbUB3AOJpFFNAleB+Fev01fgFugHXWAv0HSG0FmM5PM0OBV16I7atkTylHxUWSV2A9RHGaiSqvLsSM79s4qIbga0BETzgWYo8cWSdomrc1bUGjnSNGoDiDYDbYKrEqaKLhNYFVtjEtAGcG1aq7OMLhdW60k7eigW7QHyF3AAnI/pqvsXEwVbz3cOuBQL/h5ZSe8EvvMv1iUfUc/uxnxCFVGKChQV+I8r8BN9PqxA5cOzLAAAAABJRU5ErkJggg==\" width=\"19\" height=\"20\" style=\"width: 19px; height: 20px;\"\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, which is the \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"font-family: STIXGeneral, STIXGeneral-webfont, 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: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003e-th digit when the Fibonacci numbers are laid side by side\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.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 22px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; 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 11px; text-align: left; transform-origin: 384px 11px; 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=\"\"\u003eFor example, for \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"vertical-align:-5px\"\u003e\u003cimg src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAAAkCAYAAADFGRdYAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAASaADAAQAAAABAAAAJAAAAABLVRfgAAADGUlEQVRoBe2XS4iOURjHZ1ySy4xcSiyISCLSsCCl3JONBRsrJaVkLKRs2FASsbBSQ5ISRZOFwmiaKQu5jVggucRYYDEYZNx+/897cr7jzPeed3z4Luep33cuz/Oc9zzP+77Peb+amigxAzEDMQMxA2WVgdqy2m1xNjuHZXxx1zG/M6GtOJcqz1WWs+3vBehEN7A8QyverlsKJEjJ2+W7lO+x89lVwlwDQVyHVmgHV14z0QTdrqKaxqcI9itMqaags8Q6CeMvoCepPotjNdkeJlhTsPU03YH9MBP+SEbjvRS2w2prpQn0N8NBWGzNl2p3FBtTnTFJcttmdGOybv4ADs+dRdcli6ynfe/o5ia6Um10U8/DY/gGbpI0fgbjIFimYrkWPoMW6IERsAX0XusJugDmYpvoh8pZDN8Ugb4+wUO5tm7qMdBrZ2JQexP6Q7Dog+odyPkK6HX7AMtA0gjmAityM2E/lyw/49+XNss1e9vZbBRXnf2YNybPZ0De6NdgHt1hyVBF7jhshIvJnF3wOpK5kGYvRmdCDFNsbqToQ9S3MFKydeKZzwKVk5MQJLuxMnf4Kf0jjtf9RH/XmS/H4Qw2rTKieB9mCeBa4iTHBzDEch5v6VTkK0HuEYRi7QoNRkemXdQWOY4bGJunTH8YK0FOEIRi0lvzm/hq0hKs+iWWqkEq3Lbo20nyCdpyvfAfnW4Lw817tdTp29KrNrtCsUhe/mzyf31JMieYLA/lm+eSZ47fdnQfHX3asA6DkWlGAXqdvsWUWclizb5FCyXpFQ46sm3RsanXUWJOuib6elxbIU1K6XQze11AR99OPaBYUmUaFqbeuCeanLdaeiVsD+hEGA6lKIPY1GXohHMwGWzRDe8AxdxoKwr17SSs8hjuY84kUa9bF9jfTB6X/zqlvZn9qlV52AH6V7EGdHJrfhsEy2ks5dQNgz1eK5kz/39e0J/vsSm1qaPWnu2EKQ4dJA1pG65NM/DopzNXD7cha+H2LPdPpiZyFX00joW38AQegepulJiBmIGYgZiBmIGYgZiBmIGYgb+XgR86bt7unlNPCAAAAABJRU5ErkJggg==\" width=\"36.5\" height=\"18\" style=\"width: 36.5px; height: 18px;\"\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, \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"vertical-align:-6px\"\u003e\u003cimg src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFoAAAAoCAYAAAB+Qu3IAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAWqADAAQAAAABAAAAKAAAAADKbjgYAAAEc0lEQVRoBe2aa6hVRRTHj6lpPhK1ru/6kKD4QRQjDXyBKD6+iVam+UBFRD+IoCQqiC9U0A+ighKpSEWUiohRRPihJBGDIBVR8PoOFZ+Ej66v3x/OwGIze5+559yr55w7C/7sNWvWWnvW2jNrZg4nl4sUMxAzEDMQMxAz0MQz0KyJx19M+N0x6uExVC4Hg/FgXLK/RVJg2h/CHwJtjSzJPkFwAZwD54H0/wHVTPsJbkhGgAsz+jK7PqX3hUEd/AowHSwBu8FDIJ3n4EfwPqhGGkZQNhdJ/gH97X2Bh5SObhheN8br4Zebttga8C0YpQZ0GYwEtaCa6DDBjAWbwDNPYD8hO+6RB4kmoGW/3IAUq87ILxldlZKs0pTipmzF/RiZVuy+xhrhFhy7RP8Ln7UKhhpd2ai8VAt9TSCKaRLIykHR8Z7Ov0Av2VvAiwZwz+ifKKBfKd06aWjjdxPuNrzKyBcg67BAdxj1RM0513NKgNlRY/NfgH4lqGw0Mdl8iL8DPi8UxBsFFEabftWnX007jT1lOvS1u5h2pbI3GbhWp2/idET+DVgJiqbvsHRfMLQM7DI2su1b9Nv9hgcQa+mWCndC8r/FL1VpfA9o76kFLjfuORFZvUmz/RZwTlYHelDtcjZ6vh1oF6qmVWX9F8vrmFYKtcJ4KbC1+yxtb5XI2j0HYXQSONKJ4phrpDzl7wZ4N9+vA3yHPN9QD83EDxrA2UF8aCKVSvNxsMM40aXmD9MuyC5Dw82Wu/DNC1rkcgONjWx3B9hUg8r3Ju6pvoCyLhRjjMFv8M9MO42dlujYnGj3op0cSH9ke8EvCd1Kaupnh0/yA66pz8DboWxrz5wAY90MtSu7VfCzx2a76Xd6l5GFrBaPu7IRqZS5eGb5RpU2o0ei/KYxCJlta9F3h/c6+DXGXuw7YAaYB+4DR3/DhKwWp69TxwjXKOGpGaiV2hD02DjR7TmYtqLpvtCZACsdd5z+U/hJHptVyH4H3l3Zo58mKpdThx3feBqKX3vZW7bD8Wkz2tZnBZZGmvXLwZd5BV1qZgLVLEttaCwEKi+6oh8FXwEdBetLGzD4ob5GHv2/PLJiRYvzhtprHoU66YOim516ptVnHfc0252ulswU4KOPEJ4HKhFOX08NrNQZjotGJV2va4F+81kAkuOdi0yx6AxdA4KoE1pHgE2Gauhs8BlYBTSblGDNXulpM9NsbQ0KkZbVKHAcuHcsK2T0mvu1J7ix6vknGA50z9gCJDsHuoMgmoyW6qt1ankl9irQpUV3+3VAX9tumjSDqBla24D86yqtdrmSVuM1YHPheMkXAZXGTHqdAbZkZFoZvUFXcAOUK2msHwPdA5TUK6AWXAB1oOxpDyPU7AhedmUfUcoAk4U9Ra3RxP/j+SG42WhviI5zrcjBRaBjXqQGysAx/FwC84D2Ba2knUBHvqovG8T4ykh/rHE7tc6b2kT2gCaT5Fd56uhDYnuAO0CJ1m/VkWIGYgZiBmIGYgZiBmIGYgZiBioxAy8BU49B0T/6PsEAAAAASUVORK5CYII=\" width=\"45\" height=\"20\" style=\"width: 45px; height: 20px;\"\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, and if \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"vertical-align:-5px\"\u003e\u003cimg src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFgAAAAkCAYAAAANdf2OAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAWKADAAQAAAABAAAAJAAAAADbokXeAAAEI0lEQVRoBe2YV2hUQRSG1xK7EVGxYEGNiNgQGxYUNFb0wQcFFUFBBEHUBxF8MS8KIhYEH8ReQRQMoiJWJKJiL+iDJViwYUHsvXy/uUMmN7N3b0ww2WQOfDsz55yZnTl37pnZTSS8+Aj4CPgI+Aj4CFTSCFSrpOtKtqyOGAZCD6gD5+Ec5EMc6YOTK2YN0S8OyIszUGXzyWBBOfANfjvYiq4GRMkojK6+RvcUu76nSsoGVm0CkazMxadWRHROpBgjx9XXtd1dfumsG8Hkj8ItmAdnoDb0hxXQHYyMp3LQNKyyN/VLcApOQ1heodgEH8OGqtA+wiIfQ3PHYuuiuwdmV692+Ei1G35CJzW8FEagAdWvMLlQVaw2DY0J8JVi1kSiA7ofoB2c6bBXaZVuC8cg6gDrht0EWEEMy1oUxq5dfANWgMYulTSlt/LXQphgjdSO+hzQ6zTc0qdrNYuJmwDuCS2iCW3lVWMPl/uxuVJPaJiizZU0lbPswaYGLjMoP4RsfQNbuhbZ1nqmhBbRjvYBuA+/wI6JqT9C3wpiS2c8J4G5M36n3hjmgnKRdu5hMF8wm3pc2Yfj6zKgLN+cNcxHa3kO+vGRTOpj0GbaAkoVZv0qr0BUGsJcVDJovgd1PglKEZ9gJEh03TFfMPqvJt6H8qHpV5qyJN8ZNbN6GF8Ec9Kmiiu9cDwL9hrMW15kjJpFWoWNAVQbBE0l9W0wC3SflNgJ/nqBKtbnMrz2xvKMdrocbY5tzcGzGSj3hvNv1CBXMeoh61A0Vzelz10QS5bgZZ7OQ+rrQ71uB/abIX06NfswWaW/C6D78L9INzopbSpWd0sygL7UBPgO9XpW57aWTQdiOkprJv0E8qFFKRdwi/6K1du44+hqYifxYaGOM2mb4OsPkHSTTCasV1wBbl8Gk9/BGIqH3vRi4srB2XhVDzyVc3XI2TIiaHyhzLMNMeq6RQyN4ZfKRQfSiVRODrtSga5dbWAI3IfSiuIgeVZQpP7chIvZoWNC7gr8q8BuDryQS2SzPG8RGczsELwDXbeSyXQM/ZIZHXqTThc5bAnXDjZXsZd0UEBs0fVEKURiAqwHotfkFKSS8rpFaGPshGGgTXMRXKJdvQ56uowO3WB0elg6LBWHlNIFD7N71zu851t2BXsp6PRsBBVVqjGxjaB1PYWtDrajU17+CXkg0V+ax0F9ciELbNFG0xVV486zDVF1O4DjHI7L0ZkHcJq6Tk77TuzoUu6qVczAzDlOOS2YsdZl+3+mrTSgX7oT4Q7IvgBiyx481ekj6EAIy1gUv0A+T2AgVGQZxOTsIKWqv8HfXvdm2ma9dl/pdGD3hkjR61NS6UqHTLgGeqqVXXSV0w+KlqAD8gHkg84oLz4CPgI+Aj4CPgI+Aj4CPgI+Aj4CPgL/PwJ/ALG4VQ76ZkD7AAAAAElFTkSuQmCC\" width=\"44\" height=\"18\" style=\"width: 44px; height: 18px;\"\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, \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"vertical-align:-6px\"\u003e\u003cimg src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAAAoCAYAAAAIeF9DAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAZKADAAQAAAABAAAAKAAAAACyuGsJAAAEw0lEQVRoBe2ZWchVVRTHtXJokOakCekh6iHCwgrKikaCgiKaLBussJemlyCpB1+EXhqIIhpIfegpGySiGY0GKgsiLSLBVCILGq1E04bfT87OzeGefc659+Z3vXf/4f+dPay9ztpr773WPvcbNy4jeyB7IHsgeyB7IHtgKDwwfihmMTiT2A9Tjm5hzmfIbonlUwsyA8GlcO94QKmssjXwK7gaKr8SjioeYuJ3tJj8NGTXt5DfLnolf/+JuJXyvfA6eBdcCDdBZf6GS6AvGjXsyYR/hrGvUmU3cVc4lFGx4gUdtBxC25uR3DrKR3WQG+amOcX8V/C8E14LZ3fgb7Tpz/tgV7iQUfGCTK/QciDtLkSQNYTtUSE7jM0fMqnX4cTE5A6mbxvURycl5JJdDxQKVLIBjk9Iz4xklTesjQImM8m3oNEkhbl06hc3btf4nJEqkYtrtLhYvxSyyn9UIz9q3W8Uvnmw24kfUSgICzKrgaJl0ZjfG8iPikgcrowkHbFbx9YdjeftKG6/QbnCdVgVCXhlnhrVR7l4CZPfHX4H369yRF3SPT8a+AnlH6J6VXFSqWN/6t+X2nZG9XlecmYfXnQFOswPveLyQsELPP086IjUgnh6zo1GvRqVU8VyYvs2Jfw/9k1B9wF90D+hDzoOQsdZhZ7nUvpSC3ICA1UU8FooJJ4m9VOi/o2U5VjAe/6zfXixkaFXGK709Y/w7W6VzWNgSOZ+gRr/6uAihjE+F9YNGJF+N7P+eLpuvqkTEucPY+hfdcron12SuT+qGwJvhGdAQ8nH8BnoB2QZR9JwTanxeOqLYZOTWho6plU/mM8uLEiGq5SV+9C5BYbdfnNKuOjzxV5zw5g453i6/IoNfeHpJWEGLONRGoJMeK6nrckpLesa6/pNxVx+5TmxW2MuKpQEZ7hj6/AYAkH+T8qnRQNup/wlNJb6u9f1cBVU3tMXw7zlws6F/rAZeAzlNvCWZczulee0eWkHWTem8zQadI2HGRmc+0UDLf5EEuS3Ub6sNMYv9uNKbcdSd8xmGF+V51N/BxrieoHfTMGmXp4X9GCEUWNrYcelTfRU5ZA4fzixKngE74F3FwLer2+AS4q6D29eJjNPRAxPjCfBBdRosRe8FToRf4JZBp+CL8G2GIRb1sUYrY83QU9KVzA0xDuqKn/MRM7TE2Q3UJ4Fm+IwBB37YjTgZMqroReIoNenybzXE4OKnY5XeKP2xxu0lRHefl4ulASHfErdxHQVnA+927sQngZlTLbu6smwDcwNji+HN3X4zx5j9wcw2DGP8q4EfWku1f42G/W/Ofppb/gIDig/XYBv4HvQBLUAXg27vTksZ6zhKAXD3SNQW0zO1ncVzMFQ7d4Mpwy60bdh4EroSajDBAQMY05uap3wAPVPw5bT4YkDZFNHU7y1fA01uCkWIeiCmHcy+uiBU9HlYpS/KeryzxOM+QN6Y8nokwemo2ct9PeuGPtSWQGrwtck+tbCunyDSEZTD3gi/J+IXB7xXcr+pPAkFF4Y1sFboAncq+7j0BySwxVO6Ad0qk42B1TR7w+xFAYZPxzXwEVwZBbDXTho8DQdDn+CLshGmJE9kD2QPZA9kD2QPZA9kD2QPZA9MDwe+BcXQUOCFyk7ugAAAABJRU5ErkJggg==\" width=\"50\" height=\"20\" style=\"width: 50px; height: 20px;\"\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.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 114px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; 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 57px; text-align: left; transform-origin: 384px 57px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cimg class=\"imageNode\" style=\"vertical-align: baseline\" src=\"data:image/png;base64,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EEAAAQQQQAABBBBIuwALmdNOzoQIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgggwEJmXgMIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgggkHYBFjKnnZwJEUAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQICFzLwGEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQCDtAixkTjs5EyKAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAC5l5DSCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBA2gVYyJx2ciZEAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAARYy8xpAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAgbQLsJA57eRMiAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIsZOY1gAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAJpF2Ahc9rJmRABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEWMjMawABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEE0i7AQua0kzMhAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCLCQmdcAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCKRdgIXMaSdnQgQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBg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HXfIAQccUPZuq7ZtfT+tWrVKXnjhBRk+fLh88803UlRUFOdeu3Zt6d69u9x5553Sp0+fuPtt2mFbTlu2bJFzzz1XJkyYkBLzWWedJffff39KjzX5INtyKm21detWefjhh2XIkCEye/Zscc+FZb/cD0S5H+b461//KgMHDix7tzXbUc5J5fcFtp8no5KTie8LVL4OdL8xo5KTydf7s88+W/w9ofuhKneRnmtSr149OeOMM+SZZ57RHUGg+qZz0v19ge76gZAVDDKdU+mnoPv7guXLlxe/b0aMGCELFiwoPXXxbdeiZcuWctVVV8kll1wi+fn5cWNM7UhnTun674Hu85ju+oleC7py0v19ge7/numunyiLZPt05aTjeV5xxRXF14mSPZ+g99WpU0dGjRol++yzj/cQ3fW9iVK4oSunFA6FhyCAAAIIIIAAAggggAACCCCAAAIIZJkAC5kVB+5d7ItYR2ZVC5lz2jodmf9LR2bFL5uUy7mdRm6++WZ59NFHZdeuXb46AwYMkKFDh/r22bbhvZ9sO/Ayx0tOZUAisOkuhH3wwQfl3nvvLe7qG+SQ8vLy5Morr5Tbb79datasGeQhkRpj4/tp+/btxQuT3QWXiRZalgd89tlny+DBg63sKGtjTiNHjpSTTz65vDgq3O9+WMBdEGbTl405xXxffPHF4u8d/o+9MwGzojj398fOgICA4o4issQFNRCTqHGNxi3xuqAYNeTmGuG6RCUStyTGJLhcRQOPqLgGboyiosR/wKvGkKhJTNS4K+BKhLig7JssM3+qk26655xheqmtz7z9PPOc7jpVX1W9v+rqmj5ff52F+T777CM33XSTDB48ODRTik9fddK5LqiFedIHnVysC3SOAxsnpA86uR7vKnL97rvvLqodjbdevXqJctZ0vfmgk+l1gWn7NjT0Qaewn6bXBdOmTZMzzzwzisAc1tvUp4rQrB5gPOCAA5rKYi3dlk42rwem5zHT9quJb0In0+sC09cz0/ar6dBcmgmdTPazZ8+eqe8VNdd39f2UKVPkpJNOirKath9VlHHHhE4Zm0B2CEAAAhCAAAQgAAEIQAACEIAABCAAgRZMAEdmA+IHN/3KEJG5rrW02rpNJgIdv72V1B25ZaYyXmaugYjMjz32WBCFWb2atdpWC47Mql9lv4mOTtVGp/u04447TtSP6nm2I488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p3g72IcABCAAAQhAAAIQgAAEIAABCEAAAhBomQRwZDage3DTj4jMBshqNElEZo0wzZqqtZvoun6YNEs9u/Va0ylO4Morr5TLLrssniT77befPP3004m0MhzUmk7qh8Gf//zncscddwQOs3ENlGPzzJkzA6fzeHoZ9sumU2OHIsW4ffv2smbNmgC3cmLu3bu37LzzzsFDAbvssoucfPLJQVoZ9GiqjWXTSfVDOShffvnlFV1SfRk+fHjg+K8cmNWP/fFNOTGr6IgHHHBAPLkU+77rZHpdUJZ50ned4oPdxLrA9DiIt7/Ivu866Rrvp512mtx9990Rqm222UZmz54tXbp0idJ8dWRWDXStk+l1gWn7kciGd1zrpLpnYl2wcOFC6dmzZ4LerrvuKq+++mqqdbl6aGDs2LGJ8h999JH06tUrkWbrwLZOuq4Hpucx0/az6mtbp3j7TKwLdF3P4u2M75u2H68rvm9bJ1v9/J//+R+56KKL4l2V//qv/5Lbb789kZb3wLT9xu2yrVPj+jmGAAQgAAEIQAACEIAABCAAAQhAAAIQaLkEcGTWrH10s68EEZnbHNhZOhyV/IFpUzja9q6Ttn07bSpLab4jInM5pIrOp3I0N1Urdf0wmaoyS5lqUacQnYp8M2DAAPn444/DpODzxhtvlLPPPjuR5vtBmXWaNm2aTJo0KYgk29DQICoC2JtvvilKn2rbMcccIyoac11dXbWvvU4ro07VHIqag6wiVJ1zzjmiIvR17969uezefV9GnUKI11xzjVx88cXhYbOf2223ndxzzz3yla98pdm8vmUog0661gVlnifLoFM4tk2tC3SNg7CdJj590snkeFcPqjWe7371q1/JqaeemsDqqyOzDzqZXheYtp8Q2tCBDzqFXTOxLujWrZssXbo0rCL4TPOmFPUmj+OPP14efvjhRNm33nqr4g05iQyGDlzopON6YHoeM20/q5wudArbWHRdYPJ6ptpo2n7IIc2nSZ1c9nPt2rXBA7vz5s1LYHj55Zdljz32SKTlOTBtv3GbTOrUuC6OIQABCEAAAhCAAAQgAAEIQAACEIAABCDQmACOzI2JaDgObvqVICJz5q62bSU9ntpLpBbeDk9E5szyuypQazfRdfww6UqLTdVbazqFfVXOyjfddFN4GHxuu+228sYbb0jXrl0T6WU4KKtOKrryk08+2SziLbbYQsaPHx9ElW3btm2z+X3NUDadpkyZIsOGDcuFUzkxT506VQ4++OBc5V0WKptOcVaPPfaYnHXWWfL222/Hkyv2TzrpJLnttttKOd+FnfFdJ13rgrLPk77rFI4nU+sCXeMgbKepT190MjXelRPl4MGD5aWXXooQ7r///vLUU09Fx+GOr47Mqn2udTK9LjBtP9TY9KdrneL9070uOP/882XcuHHxKqRTp05yww03yJlnnplIVwfr1q0LoqCPGTMmeFgxnqF169aiHARVZHQXm22dil4PTM9jpu3n1di2TmE7i64LTF3PwvaZth/Wk/bTlE4u+/nrX/+64mEn9b/t73//+7RYNpnPtP1qlZvSqVpdpEEAAhCAAAQgAAEIQAACEIAABCAAAQhAIE4AR+Y4DQ370c2+EkRkztPd7o/uLq26t8tT1KsyRGT2So4mGxOdT03mKN8XRX+Y9LHHtaiT4vzcc8/JF7/4Ramvr09gV9F+jj322ERaGQ7KrNO+++4rf/nLX1JhVs7MJ5xwgqjocioaXNm2Muo0d+5c+fKXvxxEylYO/j169AjYt2/fXhYsWCD//Oc/Zc2aNU1KoRxTVMQqpV1ZtjLqFGerHIauv/76ilcgx/OoffVq+J/85CcycuRIKePDAWXQSde6oMzzZBl0UueDyXWBrnGg2mlq80knU+N9woQJwdsCQoZt2rSR559/Xvbcc88wKfr01ZHZB51MrwtM249ENrjjg07x7uleF6j138477yzLly+PVxPsDxw4UAYNGiQ77bSTfPjhhzJ79myZNWuWLFmypCJvmKA07927d3ho7dOFTkWvB6bnMdP284jrQifVTh3rAlPXs5CjafthPWk+Terksp9DhgwJ1gpxBjrvGZm2H2+32jepU+O6OIYABCAAAQhAAAIQgAAEIAABCEAAAhCAQGMCODI3JqLhOLjpV4sRmTew6f74HtKqW3mjXEbyEpE5QuH7Tq3dRC/6w6SvetWaTupH93322SeIvBxnPnToUFGvRS7rVladLrzwQhk7dmwm7DvssINMnjxZDjrooEzlfMhcRp0aGhoCp3/l9NV4U98pR5VJkyYFEbM/+OCDxlmChwPUD75l2sqok+KrIosqx+TXX389NW71WuTf/OY30qdPn9RlfMnou0661gVlnyd918n0ukDXODB93vmik4nx/sknn0j/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cII88MADFek+J5RJJ/Ua3TfeeCM4p0aNGhVEVFZOs9W2p556Sn74wx/Kk08+WfH1tGnT5Nhjj61I9zmhTDpVi+y11157yaRJk5p0SP70009l9OjRctdddyVk6Nq1q6jv2rZtm0j39cB3nYqsC2ppnnSpkw/rgiLjwOa551In38a7LQe9PPq61Mn0usC0/Ty885ZxqZPpdcHbb78t9957r6i1xle/+lVREcqrbW+++aacfPLJoiLfxjeVX/1ftt9++8WTnezb1snm9cD0PGbafnxA6NTJ9LrA9PXMtP0496z7OnVy0c9jjjkmeHtXvN8/+MEP5Jprrokn5d43bT9tw3TqlLZO8kEAAhCAAAQgAAEIQAACEIAABCAAAQhAQBHAkVnzOIhu9tV6ROY1DbLwyJdFlm0Is/zvre2Jm0vXH/QJD4PPxWfPkvpnV0Vp7Yb3lC5n946OXe2UNSKzcuRr/ArDkOGzzz4b7gaf6se/atES999/f7n++usTeX09iM4nXxvYRLvQqQkwniRfffXVcskll1RtTbt27aqmN5V4yimnBI6ATX3vU3rZzqf+/fuLcm6IbypS9pAhQ6RPnz6yzTbbBBG1VZ6//e1vol4T23jr3bt3MGd279698VfeHpdNp6233joRgVKdQ1/60peCSL/bbrutNDQ0yHvvvSdz5sxp8vp11llnyYQJE7zVpFrDyqbT5MmTZfjw4RVdUf046qijgoja6nzp2LGjzJ8/X2bPni2/+tWvZPny5RVl7r///iByYsUXHib4opOpdUGtzJOudbK1LjA1Dmydeq518m2823TQy6Kxa51MrwtM28/Cukhe1zqZXhdce+21opz71LbZZpsFa8PPf/7zwRtS2rRpIx9++KH86U9/kqeffroqRtW+008/vep3NhNN6eTL9cD0PGbafjgWdOtkel1g+npm2n7IPeunbp1s91M9vLvbbrsF/9+GfVfz2TvvvCPq/6iim2n7adunW6e09ZIPAhCAAAQgAAEIQAACEIAABCAAAQhAAAKKAI7MBsZBcNOvxiMyK2yrn14oK0fN3UiwdSvpes8AadvnX6+FX/3khu8vjH2/RRvp8f82vIa8zcYizvZKGJFZORN16dKlMLK6ujpRr5Mty1a2m+jo5P/IGjlypEycOFFLQ3faaSd59913tdiyYaRM55N6Zat6tWreTf2o+Ic/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nnves//7+yW7MzvzP2efZ85h93jmbMkO74/wBwIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIGCZRgIrNB2igKBEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABECgggAmMuNCAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQME4AE5mNI0eBIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACmMiMawAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQMA4AUxkNo4cBYIACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACGAiM64BEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAAB4wQwkdk4chQIAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiCAicy4BkAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABIwTwERm48hRIAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAACYy4xoAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAwTgATmY0jR4EgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAKYyIxrAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAwDgBTGQ2jhwFggAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIYCIzrgEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAHzBHbgj5WAZ7AiD4/g4F8IuA5wHeA6QDtAP4B+AP0A+gH0A+gH0A+gH0A/gH4A/QD6AfQD6AfQD6AfQD+AfgD9APoB9APoB9APoB9AP4B+AP0A+gH0A+gH0A+gH0A/gH4A/QD6Aa39gH/tSv792DtIllCE2VovNtQb/1j6zRXXAa4DXAdoB+gH0A+gH0A/gH4A/QD6AfQD6AfQD6AfQD+AfgD9APoB9APoB9APoB9AP4B+AP0A+gH0A+gH0A+gH0A/gH4A/QD6AfQD6AfQD6AfQD8Q9AP+tSD1V+IHewXhj4lASUmJ33sRbR/BlIgYCQIlZc/BkwRY5kx4YgYqFAdPQmCZY+GJGahQHDwJgWWOhSdmoEJx8CQEljkWnpiBCsXBkxBY5lh4YgYqFAdPQmCZY+GJGahQHDwJgWWOhSdmoEJx8CQEljkWnpiBCsXBkxBY5lh4YgYqFAdPQmCZY+GJGahQHDwJgWWOhSdmoEJx8CQEljkWnpiBCsXBkxBY5tiEJ+bc1DhMZE4lwrBdMZl523CGJESIESh9luBJjC5fMDzxsZRMgidJunzZ8MTHUjIJniTp8mXDEx9LySR4kqTLlw1PfCwlk+BJki5fNjzxsZRMgidJunzZ8MTHUjIJniTp8mXDEx9LySR4kqTLlw1PfCwlk+BJki5fNjzxsZRMgidJunzZ8MTHUjIJniTp8mXDEx9LySR4kqTLlw1PfCwlk+BJki5fduBJeL1kTGTmU1aRhBWZmYEKxSXuFMDK2UKEeWLhiYejdAo8SRPmyYcnHo7SKfAkTZgnH554OEqnwJM0YZ58eOLhKJ0CT9KEefLhiYejdAo8SRPmyYcnHo7SKfAkTZgnH554OEqnwJM0YZ58eOLhKJ0CT9KEefLhiYejdAo8SRPmyYcnHo7SKfAkTZgnH554OEqnwJM0YZ58eOLhKJ0CT9KEefITnnjisqZgInNWNPFfwEq/8dkZOzO4UwArZxtDHqsgeIqFzfhJ8GQceawC4SkWNuMnwZNx5LEKhKdY2IyfBE/GkccqEJ5iYTN+EjwZRx6rQHiKhc34SfBkHHmsAuEpFjbjJ8GTceSxCoSnWNiMnwRPxpHHKhCeYmEzfhI8GUceq0B4ioXN+EnwZBx5rALhKRY24yfBk3HksQqEp1jYjJ8ET8aRxyoQnmJhM34SPBlHHqvAwBNWZI6Fr9pOworM1YY+r4ITdwpgRea8uJk+GJ5ME49XHjzF42b6LHgyTTxeefAUj5vps+DJNPF45cFTPG6mz4In08TjlQdP8biZPgueTBOPVx48xeNm+ix4Mk08XnnwFI+b6bPgyTTxeOXBUzxups+CJ9PE45UHT/G4mT4LnkwTj1cePMXjZvoseDJNPF558BSPm+mz4Mk08XjlwVM8bqbPgifTxOOVB0/xuJk+K+FJuGCsyCwAGCsyC0DljgzuFMCKzNxkefPgiZenVBo8SZHlzYUnXp5SafAkRZY3F554eUqlwZMUWd5ceOLlKZUGT1JkeXPhiZenVBo8SZHlzYUnXp5SafAkRZY3F554eUqlwZMUWd5ceOLlKZUGT1JkeXPhiZenVBo8SZHlzYUnXp5SafAkRZY3F554eUqlwZMUWd5ceOLlKZUGT1JkeXMDT1iRmZerdBpWZJYmzJOfuFMAKzLzABVKgSchsMyx8MQMVCgOnoTAMsfCEzNQoTh4EgLLHAtPzECF4uBJCCxzLDwxAxWKgychsMyx8MQMVCgOnoTAMsfCEzNQoTh4EgLLHAtPzECF4uBJCCxzLDwxAxWKgychsMyx8MQMVCgOnoTAMsfCEzNQoTh4EgLLHAtPzECF4uBJCCxzLDwxAxWKS3gSyg9isSJzQILxESsyM8KUigruFMCKzFKEeXLhiYejdAo8SRPmyYcnHo7SKfAkTZgnH554OEqnwJM0YZ58eOLhKJ0CT9KEefLhiYejdAo8SRPmyYcnHo7SKfAkTZgnH554OEqnwJM0YZ58eOLhKJ0CT9KEefLhiYejdAo8SRPmyYcnHo7SKfAkTZgnH554OEqnwJM0YZ58eOLhKJ0CT9KEefIDT1iRmYenqRSsyGyKdGHlJO4UwIrMhYEUPhuehAEzxcMTE0jhGHgSBswUD09MIIVj4EkYMFM8PDGBFI6BJ2HATPHwxARSOAaehAEzxcMTE0jhGHgSBswUD09MIIVj4EkYMFM8PDGBFI6BJ2HATPHwxARSOAaehAEzxcMTE0jhGHgSBswUD09MIIVj4EkYMFM8PDGBFI6BJ2HATPHwxARSOCbhSbqcHd6fcBlFF48VmRUoD+4UwIrMdsuCJ7v9BLWDp4CE3Y/wZLefoHbwFJCw+xGe7PYT1A6eAhJ2P8KT3X6C2sFTQMLuR3iy209QO3gKSNj9CE92+wlqB08BCbsf4cluP0Ht4CkgYfcjPNntJ6gdPAUk7H6EJ7v9BLWDp4CE3Y/wZLefoHbwFJCw+xGe7PYT1A6eAhJ2P8KT3X6C2sFTQMLux8CT8DTjEkxk5r0OsCIzL0+ptMSdAliRWQoxSy48sWAUD4EnccQsBcATC0bxEHgSR8xSADyxYBQPgSdxxCwFwBMLRvEQeBJHzFIAPLFgFA+BJ3HELAXAEwtG8RB4EkfMUgA8sWAUD4EnccQsBcATC0bxEHgSR8xSADyxYBQPgSdxxCwFwBMLRvEQeBJHzFIAPLFgFA+BJ3HELAXAEwtG8RB4EkfMUkDCE0ta9hBMZM7OJvYrWJE5NjpzJwZ3CmBFZnPM45QET3GomT8Hnswzj1MiPMWhZv4ceDLPPE6J8BSHmvlz4Mk88zglwlMcaubPgSfzzOOUCE9xqJk/B57MM49TIjzFoWb+HHgyzzxOifAUh5r5c+DJPPM4JcJTHGrmz4En88zjlAhPcaiZPweezDOPUyI8xaFm/hx4Ms88TonwFIea+XPgyTzzOCXCUxxq5s+BJ/PM45QYeMKKzHHoVd85WJG5+tjnU3LiTgGsyJwPNuPHwpNx5LEKhKdY2IyfBE/GkccqEJ5iYTN+EjwZRx6rQHiKhc34SfBkHHmsAuEpFjbjJ8GTceSxCoSnWNiMnwRPxpHHKhCeYmEzfhI8GUceq0B4ioXN+EnwZBx5rALhKRY24yfBk3HksQqEp1jYjJ8ET8aRxyoQnmJhM34SPBlHHqtAeIqFzfhJ8GQceawC4SkWNuMnJTwJl4wVmQUAY0VmAajckcGdAliRmZssbx488fKUSoMnKbK8ufDEy1MqDZ6kyPLmwhMvT6k0eJIiy5sLT7w8pdLgSYosby488fKUSoMnKbK8ufDEy1MqDZ6kyPLmwhMvT6k0eJIiy5sLT7w8pdLgSYosby488fKUSoMnKbK8ufDEy1MqDZ6kyPLmwhMvT6k0eJIiy5sLT7w8pdLgSYosb27gCSsy83KVTsOKzNKEefITdwpgRWYeoEIp8CQEljkWnpiBCsXBkxBY5lh4YgYqFAdPQmCZY+GJGahQHDwJgWWOhSdmoEJx8CQEljkWnpiBCsXBkxBY5lh4YgYqFAdPQmCZY+GJGahQHDwJgWWOhSdmoEJx8CQEljkWnpiBCsXBkxBY5lh4YgYqFAdPQmCZY+GJGahQHDwJgWWOhSdmoEJxCU9C+UEsVmQOSDA+YkVmRphSUcGdAliRWYowTy488XCUToEnacI8+fDEw1E6BZ6kCfPkwxMPR+kUeJImzJMPTzwcpVPgSZowTz488XCUToEnacI8+fDEw1E6BZ6kCfPkwxMPR+kUeJImzJMPTzwcpVPgSZowTz488XCUToEnacI8+fDEw1E6BZ6kCfPkwxMPR+kUeJImzJMPTzwcpVPgSZowT37gCSsy8/A0lYIVmU2RLqycxJ0CWJG5MJDCZ8OTMGCmeHhiAikcA0/CgJni4YkJpHAMPAkDZoqHJyaQwjHwJAyYKR6emEAKx8CTMGCmeHhiAikcA0/CgJni4YkJpHAMPAkDZoqHJyaQwjHwJAyYKR6emEAKx8CTMGCmeHhiAikcA0/CgJni4YkJpHAMPAkDZoqHJyaQwjHwJAyYKR6emEAKxyQ8SZezw/sTLqPo4rEiswLlwZ0CWJHZblnwZLefoHbwFJCw+xGe7PYT1A6eAhJ2P8KT3X6C2sFTQMLuR3iy209QO3gKSNj9CE92+wlqB08BCbsf4cluP0Ht4CkgYfcjPNntJ6gdPAUk7H6EJ7v9BLWDp4CE3Y/wZLefoHbwFJCw+xGe7PYT1A6eAhJ2P8KT3X6C2sFTQMLuR3iy209QO3gKSNj9GHgSnmZcgonMvNcBVmTm5SmVlrhTACsySyFmyYUnFoziIfAkjpilAHhiwSgeAk/iiFkKgCcWjOIh8CSOmKUAeGLBKB4CT+KIWQqAJxaM4iHwJI6YpQB4YsEoHgJP4ohZCoAnFoziIfAkjpilAHhiwSgeAk/iiFkKgCcWjOIh8CSOmKUAeGLBKB4CT+KIWQqAJxaM4iHwJI6YpQB4YsEoHgJP4ohZCkh4YknLHoKJzNnZxH4FKzLHRmfuxOBOAazIbI55nJLgKQ418+fAk3nmcUqEpzjUzJ8DT+aZxykRnuJQM38OPJlnHqdEeIpDzfw58GSeeZwS4SkONfPnwJN55nFKhKc41MyfA0/mmccpEZ7iUDN/DjyZZx6nRHiKQ838OfBknnmcEuEpDjXz58CTeeZxSoSnONTMnwNP5pnHKRGe4lAzfw48mWcep0R4ikPN/DnwZJ55nBIDT1iROQ696jsHKzJXH/t8Sk7cKYAVmfPBZvxYeDKOPFaB8BQLm/GT4Mk48lgFwlMsbMZPgifjyGMVCE+xsBk/CZ6MI49VIDzFwmb8JHgyjjxWgfAUC5vxk+DJOPJYBcJTLGzGT4In48hjFQhPsbAZPwmejCOPVSA8xcJm/CR4Mo48VoHwFAub8ZPgyTjyWAXCUyxsxk+CJ+PIYxUIT7GwGT8Jnowjj1UgPMXCZvykhCfhkrEiswBgrMgsAJU7MrhTACsyc5PlzYMnXp5SafAkRZY3F554eUqlwZMUWd5ceOLlKZUGT1JkeXPhiZenVBo8SZHlzYUnXp5SafAkRZY3F554eUqlwZMUWd5ceOLlKZUGT1JkeXPhiZenVBo8SZHlzYUnXp5SafAkRZY3F554eUqlwZMUWd5ceOLlKZUGT1JkeXPhiZenVBo8SZHlzQ08YUVmXq7SaViRWZowT37iTgHHVmT+fvVm2rRpO9WrV0YNG9XkgVWNKa542lS+jRYs2ECLFm2gVas2Ubt29ahXr8ZOOPIvD1c8bVi/lRYu3EDffbexwlObNnWpW7dG1KJl7WpsBXxFu+IpK5EdRFu2bKeaNUu9izLrUda/4Lwn6w1Eq6DLnpYs3kgzZ66h9V6f2Mj7LOH3hZ07N6QSr2lp+3PZkzYXVdXXNU9Ll5TTrFlraPnycmrbth517dqQmrfQ/1nCJU/z5q6nJUs2Vjjyr02/j+vSpQHVrlNW1aWq4jUtniS+t/qf5f3vXN99t4FWe9+LmzatVfFvWPv29ale/RpW+StmT8kiJK6D5PxCnxerJ23jF8XqSdv4RbF6ytoPWTp+AU9ZjVn1AjxV6rB5/AKeKj3Z/KzYPWkZvyhmT5rGL2z1ZOL7DcYjCu/pTXhKriXGI5JpRH8u7Uk6P/o7jXZksfZ7GI+Idn3kOqrarneMR+RSE3q92jyFamHPRqLfE64SVmQWAIwVmQWgckcGdwo4siLzZxNW0plnj6NJkzcmSJ1/bnu69949E9sqnyj2tH7dVnryyTk0ctQCGvve994Ec+9TQcpfu3ZltMfuTejG63enPfo1S3lV0aZiTytXbKLHHp9NL3mePhm3lrZtS+feuHEJ9e/XiG66YQ/ae0jL9AO07FHsqSrE/3h4Fl1/0zRvEvpW8m/+KvEmMTdrVkrDT2hLDz44uKpT7XxNoaeNG7bRKT/7gCZO+j4W05+e1J5uuaV/rHOr7SSFnrKxmjljDd12+zT6csr3NGPmBlqzJv3fq3r1SujAoc3o3LO705E/aZctyr79yjxdeOEE73PDIhaOTRrXoFdfPoh23qUeS55oiDJPqSzKN26jO+/6ip55dh59M7uc1q1Lb0ONGpVQr5716PLLdqUTh7dPjdCxrdzTsqXldMONX9Kol7+j+fO3pjH3Pz907FiDLr6gJ51zTneqWUvh3Rv+u7LcE/v3Vq+5Pf/8fHr8idn0+hsraWu6WqpVq4SOOLw5/fpXXemYY3dOc18tO4rNUwpk9usgJZ9ts4g8qR6/KCJPqscvishTVX2Q9eMXReDJifGLIvCUrR2pGr9w3JMz4xeOe0ptS2rHL4rMk9rxC4s8Gfl+g/GI1C4m720jnlJqhfGIFCARNqU9SedHeIvxDymifg/jEfEvk+Qzq/N6x3hEsomqn0t5cmo8AisyV30R2fYqVmS2zUjm+iTuFFC+IrN/x9M1106mu+6ZS9u3h9/rCce3pOefOyC8U9mWRk/bt+2g2++YTn+5Zaa3qm+KlCz8y7zF3y66oCNdf90eVL+BXauFZalyaLdGT1s2b6cbb5pCd9z1TcYJR6E3mLRxysmt6d579lS5sqJGT0noMz79ZtZa2rXvm7R5c/qksVatSmnp4hMynmfzTo2eXnl5ER117Cexsfo3dSycf3zs86vjRI2eUjn5qw5cd/2XdN8DczNO/Eo93t/2J/otmHsktdtZweRYv75lz3k3OHj9g5LPe81bvhD5s0MmP6n7nvnvIBpxUofU3dZta/OUDPCf3s1Qf/jjl97NNBnuhEo+MOn5noPq09/u34v6D9B1E5tmTy+NXEBnnD3BW4E52mfzzp1r0uOP7E377d8qyZyOp7Z6kvje6v/H3dN++RG9OWZ1ZDk/Pak1Pfi3wdS4SfX+elExeUqWI3EdJOdzPy8GTy6MXxSDJxfGL4rBU64+SMP4RTF4cmH8ohg8pbYnjeMXrntyZfzCdU/JbUnz+EUxedI8fmGDJ1PfbzAekdy75P/clKfkmmE8IplGtOfSnqTzo73Lwo4qhn4P4xGFXSPB2dV9vWM8IjBR9aO0J6fGI6pGWfCrWJG5YITpAViROZ2JdXssukMqLpsxby6mM88ZT3PnZlh2ygt1YSKz7SuKZXJ3/AljaeRLKzK9lHPfEYc3o1dfOSjncdYdoLA9FeLpmKNb0Esjh1qnIWeFFHrK9Z6O/Mk79NrrqzIepnUis8Z+71/e6vOn/WpiRg9Rdu68cxktmKdrIrNGT8kuJny6ko446j1auTLapL7kcz8bfyANGNg8eZe9z5X1e81avECrV+fvJJuAUS8OpqOPsWT10WyV9Pcr8xS8lfvvm0nnXzQl2MzrsXXrMpoy+Qhq2apOXudV68EKPfkDT2eeNY4eeSz/lc6bNCml8R8Po+49GlUr9rwLt9CTxPdW/yeQB+71Wl43EQQsh+zdgN579zCqUdO7O6e6/orEUzJeiesgOV/keRF4KuR7sTXjF/BU5eVvzfhFEXiqUoT3oorxiyLw5MT4RRF4Sm5PascvHPfkzPiF456CtqR+/KIIPDkxfmGBJxPfbzAeEfQs8R9NeEquHcYjkmlEfy7tSTo/+jst4Mgi6PcK8YTxiMprqxCOHONvGI+odFHVM2lPTo1HYEXmqi4l+17Disz2OclUIxvukMpUryj7Vq3cTJdcOoGe+NfiKg93YSKzNk9bt+ygWnWf91Z/TFfjr2LZpk1ZxUqL5eUZDvjfKU8+3p9+flrn9ACL92jzRB7+GrWfo20piyfWrev/7Hsd6tq1kTeRbBN9OWUtLV2actD/PDzxWH867RfwVJ2X5ehRC+mY48dlrYLWiczq2pNnoNAP3iee0JKee/aArC5tfEGjp4Dj4u82epO/Xqfvvkvv33baqYyGHdSS2rWr562+XELLlpXTZ5+vpKnTyhO//DD584Np9z2aBnFWP2rzNOyQt+jtd75nY/rKqL29CRPt2PKkgrR58jlMm/q9147eptTPdI0bl9CJx7elzp0bUM2apTRv3np69fXvMt54yDEAJeUkU65GT39/aBadde4XaW+nfv0SGtC/Ie3etyktWbqRxo1fRQsWpN8c2rVrTZr02U+oQUM9v5hikyep763+d66hB71JH328Ns1tp041aJB3s029umU059t1ntu1GX+548LzO9Dddw9KO9/UjmLwFLCUug6CfMlH1z25Mn7huidXxi+c95SjM9IyflEMnlwYvygGT0GT0jx+4bonV8YvXPfktyUXxi+KwZML4xfV7cnE9xuMRwT/Qsd/NOEpqB3GIwIS+T9Ke5LOz/8dxzvD+X7PkfkUznvKcfliPCIHoP+9bKJfcmo8IhrW2EdhRebY6LKfiBWZs7Ox5hUL7pCKw+L55+bTOed/FulnkV2YyKxthb7yjduoboMXE2rr1Cmhn5/als48ozv16dOE6nj/Qd2/s/qLL1bT+Rd+Sh9/si5xbPCkefNS+m7BcVSrdmmwy/5HZe1p29Yd3kTm5xNce/asRZdc2ItO8yaQ161XltjvH3fHndPp2j/NSJuo1KtnbZo+7ejEsSqeKPNUFdNN5duod5+Xac6cLVkP0zqRWVu/5wtI/eA9oH89euThvbO6SX2hV6/Guvo8/w0obU9+29l/6Jv06YT1IQ3+pL5/PDSARozoQGU10leo9FeaGD16AS1bXk5XXL5b9a5iGap5jg1lnvyfuJs27Yccbyr95a1bt9OQ/d4LvVCrVgktWXQ0NW1WK7Tfyg1lnnyGmf6j7Sknt6b779srjbn/82t33f0VXXHlV2n4Z804jLp2a5i238odyjyt+WELde0xOu1702GHNqVnntqfGjWuGcJ8151f0SW/mxba52/cfcdudOFFPdP2W7vDEk+S31vvvWcGXXjJ1JCCUu+r09//tgedfnoXKi2r/Hds1tdr6ZzzxqfdJFLmfeT/Zubh1LFTg1COsY0i8OSzlLwOjLhy3JMz4xeOe3Jm/MJxT1X1SarGL4rAkxPjF0XgyW9T6scvHPfkzPiF4578tuTE+IXjnpwZv6hmTya+32A8wu9VCvsz4cmvIcYj7PZk6joojEKEsx3v9zAeEeEaiHBIdV7vGI+IIOh/h5jw5NR4RKaVPaPjznkkJjLnRJTfAViROT9e1XV0dd95E+d9L1m8kdq1fyWxImKQ0bJlKf31z7vT76/+IvQf6l2YyKzRU8PGz9O6dTvoZ6fsRLfdOoB2alM3UBV69Cc0Dz/pfXpx5PLQfn9D02qXfn01emre8gW/6vSna3rTeef1CE14qHgh6f/uuXsGXXRpeLJEDW9hvvVrTlA1+VKjpyQNoac33jiFrvnjzMQ+/6aBQw9pTqNGr0js0zqRWaOn1A/eRx7RjF55+aCECxefaPTke0htO/6+pk1L6dXR+9PgvVv4m079afWUr4Rnn5lHJ50yIXSa/znkX//aN7TP1g11nryVCBo1fZ7WrvWe/O9v19616fMJR1LtOpU3RAWvBY9nnz2OHnp4YbBZ8fjc03vSicPbh/bZuqHN0xVXTKRbb58Twun/AoA/iTl5omvyAQ/+7WvvptEvk3dRjx61aMa0Y7wPvKHd1m7Y4Enye6u/MkLnbi+lraB9/Z+60zXX9M3oxR+EHLjnqzRt+qbQ6xec14Huuad6VmV23ZMPWvI6CIkU3CgGTy6MXxSDJxfGL4rBU7buKPU7mM3jF8XgyYXxi2Lw5Len1Lbj79M0flEsnnwv+fzZNn7hvCdHxi9c9+TK+IUNniS/32A8Ip/evupjJT35JWM8omr+UV+V9iSdH/V9FnKc6/2ezwbjEYVcIZXnVtf1nvqdCuMRlU4yPZP25NR4RCaAjPswkZkRZhDl5IrMm7bT1gXltGO7t5Jpq9pU0kTPz+sGXkKP1XyHVKguETcmTVxF/Qe9kzjaX0XqnLPa04039KPGTWpS6zYveD8Bvz3xugsTmTWuePnp+BVUv34N2nW3JgkX2Z4sWriBuvd6jTZsqJwI4x/75OP96efe6sBq/hS2p5UrNlFdb4Xsep6rXH/+pPOOXdInTHwx8WDqu3vTXKfb87pCT5ngzZ+3nnru+jpt3FjZbq79QzdvQtkWuvPuuYlTtE5k1tjvufDBO3HhRH2isD35d0+37zSSvvtuW+Jd+r8CMPbtg2g371cDnPxT6CmOh8F7v0bjPw2vsv3pJwfSoD2bx4kzf44yT9/MWkvder4R4nTzTT3pyit3C+1L3Zj4+SoasGflZ3n/df/fr+uu2z31UDu3lXnq4k12Tf7lBv+709dfHU6du1S9Am/f3V+mKVPLQw7Gvr0fHTC0dWiftRsWeJL83ppp4sMhw5rQG68No5IqftAmU/ur1s+Kjnvy24fkdWCs/RWBJyfGL4rAkxPjF0XgKVPfpG78ogg8OTF+UQSenBi/KAJPmfq9XPusG79w3JMz4xeOe3Jm/MICT5LfbzAekauHj/66pCe/FhiPiO6iqiOlPUnnV/Xe2F5zvN/zOWE8gudqqY7rHeMR+buT9uTUeARWZM7/AqvOMzStyLx96Wb64fJZtGPljxNaSpqXUePbulFpqx9/gnr78s20/j+Lacvo74nWVE6QreDr/ex4ab86VO+3balWv0bViTxW2TbcIZVvxWd89QP12m1MxWn7DGlID9y3Z2gSpYsTmTV6ytfrQQePoXfHhn9G/uoru9BNN/XLN6raji8GT0cd/S698urKEOPXXh5Chx/RNrTP5g1XPJ04/D164cXKlcw7dKjhrZR4NF39f5OcmMis0ZMTH7zzbLwaPWUabL3uj93p2mszr2CZJxIrD9foKV+QH3+0nPbZ/73QaYP3akCffHx4aJ/NG9o8vfbqIjry6E9CSB9/pB/98lddQvtSN5YvK6dWbV4O7f7D1V3phhv2CO2zdUOTp83eTbj1Gr5A2yrv26DhJ7aiZ5/ZPyfev/51Gl159Veh4266oQddfXWf0D5bN2zwJPm99Te/+YQefXxRCP+EcQfSwEG5b9zo03c0TZ0WXpV52peHUO9dG4fyTGy47slnKHkdmHDkl1EMnvJlaeP4BTylW7Rx/KJYPWkbvygGTy6MXxSDJxfGL4rBU/q/QFXvsXH8wnVProxfuOzJpfELGzxV3Qulv5rP9xuMR6TzM7UnH09+nTAeYcpMuJx8PYXPzr0lnZ+7BulHuN7vpb/j3HswHpGbUZQjOK53jEdEIV3YMfl6cmo8ojB0Oc/Gisw5EeV/gJYVmcvfXUkbfj8/9Abr3dKe6gxtTuufXkyb7l5K5K3eV+VfSQnVvrgV1T9Fz2S+ivdjwR1SVXLN8OIOby75nXdNp+7dGtFRR++cdoSLE5k1rkyaJibHjjPO+IT+8Wj4P8ZrmtRS8fYUtqccWtJePvCgMTT2vfCE8ymTh+laxdQBT2+NWUyHHP5RyM8Lz+5Jx5/Qni699DMnJjJr7Pdc+OAduqiibChsTwcPG0PvvFvZj9WsSbRg7lHUeqc6Ud6xzmMUesoXdOpghH/+U/8eSCf/tGO+UdV3vDJPqat6+OCuvKIL3Xxz1Tehvf/eUjrgoA9CnP/z5EA65dSOoX3WbijyNH3aD7Rr3x9vAA14/vnGnnTVVVWvmu0f669U0LHLa5R8Q3nUSdBBWdX6aIEnye+tO7d/kRYtqpyh3rhxCa1afgKVlpXkxH7TTVPoD9fODB334P196ayzu4f2Gdlw3JPPUPI6MOLIL6QIPOXL0srxC3hK02jl+EURelI5flEEnpwYvygCT06MXxSBp7R/gHLssHL8wnFPzoxfOOzJqfELCzzl6IbSXs7n+w3GI9LwGduRjye/UhiPMKYmVFC+nkInR9iQzo9QhfRDHO/30t9w7j0Yj8jNKMoRhV7vGI+IQrnwY/L15NR4RPJ/QCscZVoCJjKnISlsh6YVmTNOZL65PZW/tIK2j9uQF4iyIxpS4+u65nVOdR6s8Q6pXLxcnMjsoqdUj6ee+gH992nvpoGkv3vv6kPnX9AjaY/dT5335N3P0bTFC/T99+GV6TesPZ7q1vN+p1zJn3ZPW7fsoD57jKYZMzYniPs/Jf7mG8Mqtl2ZyKzRkxMfvBNXVbQn2jz5P8vaoPELVF5eeYPaqT/dif79732jvWGlR2nzlC/mObPXUbeer9P2pH+e2rUro3lzjqMy79dTtPxp87Rxwzaq3+jF0ERXfzLl9ClHUtt2dbNiP/yIt+mNN1eHXp85/VDq3kPHr9to8jTyxQV0/PDxIdb/+ucA+tnPO4X2Zdvo2XsUzZxZ+XmjW7ea9PWMY7MdbtV+DZ7ifm9dvWozNWs5KsT7qJ80p9GjDgzty7Yx5s3FdOgR4RviLrukE91224Bsp4jtd9lTVGhxr4Oo+RzHwVM6RRvHL+ApxZOl4xfF5knr+EUxeHJh/MJ1T66MX7juKeVfn5ybto5fuO7JlfELlz25NH6hwVNqZxX1+w3GI1LJmd2O6ilqrTAeEZVUfsdxe0otXTo/tbwo2y73e1Hef9oxGI9IQxJ3RyHXO8Yj4lLP/7x8PTk1HpE/rrzOwETmvHBFO1jzisxU05v04E0Wi/NX/95OVHuvJnFONX+OwjukckHS8ME713tIe91BT6nvccDAV2jipI2h3c/8dxCNOKlDaJ/VG457euD+mXTehVNCCvr2qUNfTD4qtM/6DeWebr99Ov3uiukJzP5qslMmH0o9ev44AcyVicw2rPyWgBzxiQsfvCO+1crDlLWnqVO+924EeKuy/t6zkc/vRccet0ton3Mbyjzly//iiyfQ3ffOC50WddXZ0EnVvaHQU6afjBqydwMaNfJAat6idhrRe+6eQRddOjW0X9Uqv37NFXl68YX5dMKIT0O8H3pgdzrzrG6hfdk2fnLUO/Tqa6sSL5d5961t3Tw8sW31EwWe4n5vTf5p0MDBHbfuSpdc2ivYrPJx3twfV9tOPujEE1rSc88ekLzLzHOHPUUFGPc6iJrPchw8pWG0cvwCnkKerB2/KDJPascvisCTE+MXjntyZvzCcU+hf3wibFg7flEEnpwYv3DYk1PjFwo8pXZXUb/fYDwilZzZ7aieotYK4xFRSeV3HLen1NKl81PLi7TtcL8X6f2nHITxiBQgBWwWcr1jPKIA8Hmemq8np8YjsCJznldLNR+ufUXmTPhK96xLNfdr7P0Wh/cfcL9cR9vGrveepE92Luldm5o+3jtThHX7NN4hlQuiig/eud5Eyusuekp+i9/OWUedu72evItKvHsJ5s4+gtp3qB/ab/OGy54mfLqS9j9wbGgVU9/Fs08NouEjFE029+qs2dOSxRupe69Xae3ayn97Lr+sM91yS/9E03BlIrNGT9k+ePs/4bVt2w4qLfXmv0X4yfeETAVPtHl64p9z6Je/nhgiO/WLYbTrbpU3oPl36a5YUe6tPr+ZdtqpLjVpWit0vMYNbZ7yYfzD91to5w6jaN26yn6xTp0SWjjvqIwTafPJNn2sRk8TP19FA/d6J7Qqs8+tY8ca9Mx/96NBezavwOj3g9ff8CX96fqvQ1jr1y+hyZ8fSl27NQztt3lDkyffz4A93wnh/L+rutKNN+4R2pdt45xzxtODf18QelnLL3Fo8BT3e+t7Y5fS0IM/CHnJ56Ycvz3Wa/h86HP9oIH16dPxR4QyTWy47Ckqv7jXQdR8juPgKUzR1vELeKr0ZPP4RTF50jx+UQyeXBi/cN2TK+MXrnuq/Ncn9zObxy+KwZML4xcue3Jp/EKDp+QeK5/vNxiPSCZn9nk+nqLWDOMRUUlFP07CU3Lp0vnJZeXz3OV+Lx8O/rEYj8iXWPbjC7neMR6RnSv3K3E8OTUewQ00JQ8rMqcA4dhUvSJzMoCmZdTw7i5Us2d4QuWWGetp7VnfEG30/ktgyl+j//SgGl3rpey1cFPhHVK5KGr44J3rPaS97qCn5Pd4881T6eo/zEjeRfsMaUgffnBYaJ/1Gw56WrhgA91405f0j0cXehMxwwYO2L8RjX3nUG9mcHi/9VuKPZ122of0r/8sSSBu06aMvv7qaGrQsEZinysTmTWteBnAT/3g7e+vVauENm/+cYKlv5Jl+/Y1qHOnBtS1i/e/ro3oZG/V+V3ahz9fBHkqHpW1pyuumEi33j4nhHbdD8fRpEmr6Kmn59J77y+ladM3hSZltm5dRr16NqDevRrTr0/vQgMG/jgxMxRi+4YyT/ngvPXWaXTFlV+FTvntr9vRww/vHdqnYkOppxu8CcrX/ik8Qdnn7d+U9qtftKURwzt4E5i/pE8neDeBJv35k5hfe3k/2m//Vkl7FTxV5CnTT3727lWbpk05OtLnt8sv/5xuu+PbkJRli4+ilq3qhPZZuaHAU9zvrc8+M49OOmVCCPs7Y/alAw/aKbSvqo0OnUbS/PlbE4f06FGLZkw/JrFt7InDnqIyjHsdRM1nOQ6eQhitHb+AJ1IxflFEnlSPXxSBJyfGLxz35Mz4heOeQh8ScmxYPX5RJJ7Uj1847Mmp8QsFnpK7q3y+32A8Ipmc2ef5eIpaM4xHRCUV/TgJT8mlS+cnl5XXc4f7vagcMB4RlVT04wq53jEeEZ1zoUfG8eTUeARWZC70EjJ7visrMpd0rklNHu5FJQ292UcZ/jaN/57WXxD+j7v+YbXOa0UNftkuwxl27dJ2h1QUeio+eEd5I0nHuOgpeHv+SgTde42mZcvCNwTcf08fOve8HsFhKh41e3pp5AJ6/InZFZP3/H9vF3sr/876ZqO3ImnYSyDiqJ80p2ef3p/q1M3cNwbH2fio1dNHHy6nfQ94L4T0308MoFN/1im0z5WJzBo9ZfrgHZKTYcNfOfaC8zrR1VftpnLlX22efvvbT+iRxxaFTOzq/ZKGP3k5yl8N756Bq6/sRtf8oS/VqKnnLg5tnqK48I/xV8/u1HUkLVwYvtNmyuRhtFufylW2o+ZV93GaPd1yyzT6/VXhCeVV8WzXroye+vc+tO9+yiYxe29Km6fGTZ+nNWt+vKEmcBLlFzW2e78kcPyJ79Go0SuC0yoeZ399OHX2bsax/U+Dp7jfW++7dyZdcPGUkILPxh+Y1402vXYdRTNmbE5k+Ddazfv2uMS2qScue4rKMO51EDWf4zh4qqRo8/hFMXnSPH5RLJ60j18UgycXxi9c9+TK+IXrnio/JVT9zPbxi2LypHn8wnVProxfaPAU9Fj5fr/BeERAzuxjvp6i1g7jEVFJRTtOylNQunR+UE6cR5f7vVQeGI9IJSKzXcj1jvEIGSeZUuN6cmo8IhMYxn1YkZkRZhClfUXmkrY1qOlTuxLV8X4Lvoq/VUd9SbQsPIGixvAm1OiK8OSyKiKq7yVld0hFAaXhg3eU9xE6xkFPwfs7//xP6f6/zQ82Kx7bti2jGdOOooaNaob2W7+h2NMBQ9+k9z9YkxNxixaldO9d/WnEiA5UVkPPJL7QG1PoyZ9M1H/gK/TFl+WJt7LvPg3pg/fTVy13ZSKzxhWZn3l6Hp18aniFxISwHE+aNi2lF57dh4Ye2DrHkZa9rKw9jTjpfXru+WUFQxy8VwP6yPvVgNIyJf2gMk9RBf33P3Pp1NM+Cx1+4NDG9M7bh4T2qdlQ7mnMm4vpHO9z3ezZW6pEftKI1vSPvw/W9zkveFfKPF1yyWd01z1zg9pXPNarV0J33d6XzjizW2i/v7Ft6w7697+/pRtvnkKzZoVdlnpfixfN/wnt1KZu2nnW7VDgKe731muumUw3/tn7Zaikv6+/Ooy6dW+YtKfqpwO8z5UTJ21MHNSyZSktW3JCYtvYE4c9RWUY9zqIms9yHDwlMFo9flFEnlSPXxSBJyfGL4rAkxPjF457cmb8wnFPiQ8JOZ5YP35RZJ7Ujl847smZ8QsFnoIuK9/vNxiPCMiZfczXU9TaYTwiKqlox0l5CkqXzg/KifXocL+XygPjEalEZLbjXu8Yj5DxkS01rienxiOwInO2y8PO/epXZK5XSk1f6E0lzXJPpFx751za8t/VIRFl+9Wnxrd3D+2zcUPTHVJR+an44B31zfzvOBc9+W/t889W0p57v0vbUxb9femFwXTMsTvnSan6D9fsacg+r9Mn49ZFguhPZh5+Qjv661/6U6PGufvISKEGD9Lo6YH7Z9J5F1auvFfmLYQ9ccLB1Hf3pmnkXJnIrNHT/HnrafA+b3ormm+jRo1KqFmzMmrcqAbVqlVGy1dsou++20abN4dXxUwW2KZNGU2ZfCQ1b1E7ebfVz7V5OvyIt+mNN8Of2ZIBN2hQQnsOakQ7ta5LK1Zuoq9mrKUFC7YmH5J4/ujD/ej0X3dJbNv8RJunqCwHDnqVPp+4IXS41s8Q/pvQ7smfAHvHndPpiiurXpm5efNSuu7aXenss7urvClKm6cVyzd5K5e/TOvWpf/707NnLerbpyl16lifliwppxkzf/D+t4F++CH92KChzf/2CNqlff1g09pHDZ7ifm/NNEC4YO6RtPMu9SL7SF2RuUuXmvTN18dGPp/rQJc9RWUU9zqIms9xHDz9SNH28Yti8qR5/KIYPLkwflEMnlwYv3DdkyvjF657ivpZy/bxi2LzpHX8wnVProxfaPDk911xvt9gPCJqr893XBxPUUvHeERUUrmPk/Tkly6dn/sdVn2Ey/1e6jvHeEQqEf7tQq53jEfw+8iWWIgnp8YjsgFi2o8VmZlAJsdoXpG5xPuZ8aaP905+O1mfr//vd7TpzqWh10u8/yjc9AlvNWfb/xTdIRUVpYYP3lHfS+I4Bz2tX7eVBu31mjdJbFPibfpPRgxvRc88vX9on5oNxZ4uv/xzuu2Ob/NCvcsuNejJx/emA4ZiBdm8wOV58EpvAmy3nq/Q6tWVM/7PP7c93XvvnhmTXJnIrHFF5goh3tyv7dt3ZF6p13ttyZKN9M8n5tDd935dMeE5VeKxx7SgkS8OTd1t77ayfm/f/d6gjz5eG+JZ4i2qfOIJreics7rTAQe0TptYOX7cCvrZLz5KW2V2553L6JuZx1DtOt6dBbb/KfMUBecH7y+j/Q98P3Ro587eRLyZx1JJ1T+mEjrHqg3Fnj78YBmddc54mv5V+HNdVXz77FaHRo0cSh07NajqMPteU+gp35/OrQr6D6uO1XEjmwJPcb+3XnzxBO9zxLyQpm+/OTyvtpQ66N6hQw2aO+e4UKaRDYc9ReUX9zqIms9yHDyRivGLIvKkevzCcU/OjF847inxb4P28QvHPTkzfuG4p0R7quKJivGLIvKkevyiCDw5MX6hwFPc7zcYj6iisxd4Ka6nqFXBeERUUlUfJ+1JOr/qdxfxVYf7vVQCGI9IJcK7Xcj1jvEIXhdVpRXiKZHryngEVmROKFXxRPuKzPlMZC5/eyVtuGp+yEtJuxrU9MU+oX02bmi5Qyofdio+eOfzhrxjnfPk/cM04uT36bnnl4VINGtWSl9NPZJata4T2q9lQ7undWu30o7//WO7Zs0WmuetLjt37joaN34FPfLYfNqwwROX8le3bgl9MfHQvH7KOiXC+KY2T2edNY7+/o+FCU7+itizZhxFTZrWSuxLfuLKRGZtnpIdRHm+ZfN2OuVnH9DzLyxPO3zihIOoX/9maftt3KHN04EHjaGx7/2QQFm/fgmNfXsoDRzUPLEv05O1Xp/YpftoWr688oYC/7jRIwfTUUfb/wsC2jxlcpC679jjxtKo0StCu++6fVe66OJeoX2aNrR6euKfc+i3Z02kLVvCtP3PdZdd0o2WLi2nB/8+P+OK9C1bltKoF/enwXu3CJ9s8ZZWTyNfXEBnnjMhrR/Lhtq/ySN1DMbft33LcO/LSbaz7NmvwVPc761XXTWJ/nLL7BDsGdMOpR49G4X2VbXRf8ArNGnyxsQhgwbWp0/HH5HYNvXEZU9RGca9DqLmcxxX9J6UjF8Umyet4xeue3Jl/MJ1T/n+22Dr+IXrnlwZv3DdU5T2pGH8olg8aR+/KBZP2scvrPdUwPcbjEdE6fWZjinAU9QaYDwiKqkqjpP2JJ1fxVvL5yWX+71MHDAekYkKw74Cr3eMRzA4iBJRoKcoRSQfY/14RHJlBZ5jRWYJqN5/6dyxzfsPnZb/lb/rTUT+fcpE5DxWZN78xRpad0b4PySWtPUmMo+0fyKz2hUvq7imNHzwrqL6mV9ScCdb5opn3pvpy26Zt6Dl66/sQ8MOaZP5JA17HfOUjNz/Wa+b/jyF7rpnbvLuiudD9m5AH75/uJ4VMBV5yvSzHA8/uDv99oxuaR6CHa5MZHbx36fAUfDoT44dsOerNGtWePbfow/3o9N/3SU4zO5HRe3JB3n0Me/Sy6+sTDD1J1EuW3JCYruqJ3/5y1S66v9mhA65+47d6MKLeob2WbmhzFMuht/MWks9er/hrX5eeWTDhiW0aP4x1LBRzcqd2p4p9HTXnV/RJb+blkb67DN3oZv/3C9x043/U1G/u+Jzeva58E1s/on16pXQ1C8Oo06dlazMrNBTIMj/PPeHaybRy68upkWLtgW7E48NGpRQ1y516ID9W9H55/Wk667/gv71nyWJ15s2LaVVK6L1mYmTquuJAk9xv7def/2X9Mfrvg6RnTDuwJw35SSf0GvXUTRjxubErp8c2ZxeHn1gYtvYE4c9RWUY9zqIms9yXJF7UjN+UeSekq91q8cvHPbk1PiFw56S20o+z60cv3DckzPjF457ytWO1IxfFIEnJ8YvisBT0KZUj19Y7qmQ7zcYjwiuUPnHQjxFrR3GI6KSyn6ctCfp/OzvLM9XHO738iRBGI/Il1jl8YVc7xiPqOQo/awQT3HrZvV4ROpqQHHfZJbzMJE5C5i4u4tpReYtU9fS2l9/E0KlZSKz9XdIhahG21DxwTvaW0kc5ZKne++ZQRdeMjXx3oIn997Vh86/oEewqfLRJU/ZBJx77nj620ML0l4e+/Z+dMDQ1mn7bdyhydNBB4+hd8dWrh47cEA9+nTckVVOGndlIrMmT4Vc5w89+DWdfd6XoYgLz+9Ad989KLTP1g1tnk499QP679NLEzj9FZnXrTkxsV3Vk1lfr6Xuvd4IHXLxhR3pzjsHhvbZuKHNUy6G55//Kd3/t/BNiJraTbb3p83T1zPXUJ89xoRWWq5Vq4QeuHd3+s1vu2Z8m489OpvOv2hy2q88HDKsCb35xrCM59i2U5unbPwWLtjgrc5cTqtWbaa6dcuoS5eG1Hqn8K+i7D3kde+XOdYlIvbfrxG9N/bQxLbNTzR4ivu99Y47ptNll08P4R/14mDvZp3ovxDQqMnztHatt3zC//5+/at29Mgjewebxh5d9hQVYtzrIGo+x3HF7EnT+EUxe8p2nds4fuGyJ5fGL1z2lK29RNlv2/iF655cGb9w3VOutqNl/MJ1T66MX7juKVt70jZ+YbOnQr/fYDwi21XKu79QT1Frg/GIqKQyHyftSTo/87uKt9flfi8eESKMR+RHrtDrHeMR+fGOe3ShnuKW659n7XhEIW8qwrmYyBwBUr6HVExmLoIVmTVPZHZxxUsNH7zzbUuuePrXk3PoF6dPTPuZ6ssu6US33TYgbyzWnWD5HYccvLZt3eGtgjmKZs8OryB7+6296dJLe3MUIZ+hxNP3qzdT0xaj0nj06FErbV/yjrlzt9CmTZUTU/zXks/p6k1UGv3SgVVOhk7Oq7bnSjwVyueTj5fTkP3eC8VU26qIoVpE3FDm6YwzPqF/PLoo9ObWfn8cNWhYI7Qv08bGDduoXsMXQy+d/su29OijQ0L7rNxQ5qkqhqu9SZc7dxgdmgjr/QgMff3VYdS1W8OqTrX/NWWeDj3sLRrz1vchrg/e35fOOrt7aF/qxpg3F9NhR36U9nnwkw+H0uC9W6Qebt+2Mk+FAGy10wveZOfKpc9/d2knuvVWJZ/ZFXiK+7312Wfm0UmnTAipjdL2ghNWrthELVqPDjYrHq+8ogvdfHO/0D4jGw57isov7nUQNZ/luCL1pG78okg9VXWNWzl+4agn58YvHPVUVXuJ8pp14xeOe3Jm/MJxT1W1HVXjF457cmb8wnFPVbWnXK9ZNX5hqSeO7zcYj8h1JRb+OoenqLXAeERUUunHSXuSzk9/RwXucbjfi0sG4xHRyRV6vWM8IjrrQo4s1FMhZfvnWjsegRWZC1Vr9nysyFyDmo7sYxZ6jNJsvkMqxtupOEXFB+8835wLnl4auYCGnzyetm4Nv/nfnN6O/vEP86t/hWvBs+WCpygkfvObT+jRx8MTATV51OLJ/+nBbj3Dq79G8RPlmG9mHkZduto94U+Lpyi8qzpm9jdrqWuPsOeDD2pCb43ByqRVcYv72h//+AVdf+Os0OlTJg+j3fo0Ce3LtOEPPNSo/XzopdN+1oaeeGKf0D4bN1xqT3/5y1S66gxLkDIAAEAASURBVP9mhDCrmvwfqnl4Q5On8o3bqEHjF2nbtsr3MGTvBvTRB4cTeRPLc/1ddtlndMddc0OH3X9PHzr3PPt/nUOTpxDgPDfGj1tBg/cZGzrrqX8PpJN/2jG0z9YNDZ7ifm/9dPwK2mvI2BD6889tT/feu2doX7aNcZ+soL33DZ9/x6270iWX9sp2ith+lz1FhRb3Ooiaz3FcMXrSOH5RjJ6iXN+2jV+46sm18QtXPUVpM1UdY9v4heueXBm/cN1TVW1G0/iFy55cGr9w2VNVbSnXa7aNX9joiev7DcYjcl2Nhb3O5SlqLTAeEZVU+DhpT9L54XfDs+Vyv1cIIYxH5KbHcb1jPCI350KP4PBUaB2sHY8o9I3lOB8rMucAFOdlrMhs/0RmV1b6Tb4+NXzwTq5vpOeW3skWqe7eQW+NWUxHHftx2iqxJ57Qkp55an8qLYsw4yVqYdV5nHJPUdHdfPNUuvoP4UlkZ/xmZ/r73wdHjaje45R4+nbOOurc7XURVnNnH0EdOtYXyWYLVeKp0Pf72quL6MijPwnFHH9cS3rh+QNC+6zdUObpuWfn0Yifhlex/Nc/B9DPft4pJ+I5s9dRl+7hNnndH7vTtdf2zXlutR+gzFM2Xls2b6eOXV6i775Lmj3rHTzm9X1o2CFtsp2mZ78iTxM/X0UD9nwnxPbPN/akq67aLbQv20amu6cvv6wz3XJL/2yn2LNfkadCoI046X167vlliQh/5fN5c46gXdpb/vkhqLECT3G/t2ZaUXnQwPr06fgjgndf5eP1139Jf7zu69Axr47em444sl1on5ENhz1F5Rf3Ooiaz3JckXlSO35RZJ6iXtvWjV846sm58QtHPUVtN9mOs278wnFPzoxfOO4pW3tRN37hsCenxi8c9pStLUXZb934hWWeOL/fYDwiyhUZ7xhOT1FrgPGIqKQqj5P2JJ1f+U6Ynznc7xVCCuMRVdPjut4xHlE150Jf5fJUaD2sHY/AisyFqjV7PlZkxorMZq+4ytJUfPCurG6kZzbeyRap4t5B/kSVQw5/n9av3xE65cgjmtFLLx5INWo6MonZe3eaPYXk5Ng488xx9PAjC0NH3XxTT7ryymiTl0InVsOGFk+bN233JjK/RIsWhSfsFYqsY8caNHP6MVSrdmmhUaLna/FUKIRMq7NceH4HuvvuQYVGGzlfm6eZM9ZQz13fDLH59a/a0SOP7B3al2kj00/nPf2fQXTSyR0yHW7VPm2essF78ok59IvTJ4Ze7t2rNk2benRon9YNTZ6efmou/fRnn4VQP/TA7nTmWd1C+7JtzJ+3njp0fi308mWXdKLbbhsQ2mfjhiZPcfn5g39de7xO27dXJmhb+VyDp0K+t/bsPYpmztycEFRWRrRw3k9opzZ1E/uyPek/4BWaNHlj4uVatUpo9YpjqV79Gol9pp647ikKx0Kugyj5HMcUkyfN4xfF5Cmf69q28QtXPbk2fuGqp3zaTqZjbRu/cN2TK+MXrnvK1Fb8fdrGL1z25NL4hcuesrWlXPttHL+wyZPE9xuMR+S6KvN/XcJTlFpgPCIKpcpjpD1J51e+E/5nrvd7cYlhPCI7Oc7rHeMR2TkX+gqnp0LrYu14RKFvLMf5WJE5B6A4L2NFZqzIHOe6KfQcDR+8836Plt3JFrX+kyetoqEHv0s//BCexHzQgY3p1ZcPotp1vP/i7tKfUk/5KPB/iq13n9H07bdbQ6e98eoQOvSwtqF91m4o8rTDm0BUXp7fRObfXf45PfDg/AT+5s1LacHcYxPbtb0JzCpWQVfkKQE3zydrfthCe3iTiVLb0+iRg+moo3fOM62aDlfmafu2HdSo6Quhm2saNy7xJn8dSw0aVj2Ba8DAV2jipMqJXz7xLycNoz59m1QT/DyKVeYp2zvr1/8VmvxF2EE+k2ez5VqzX5Gnjz5cTvse8F4I3UUXdKC77op2E8abb3xHhx35cej8x/7Rj351epfQPis3FHmKw2/rlh108inv0wsvLg+d/uZr+9Ahhypa+VyBp0K+t5577nj620MLQo5uuqEHXX111WMQY99dSgcO+yB03oFDG9M7bx8S2mdsw3FPUTgWch1EyWc5pkg8qR+/KBJP+VzTVo5fOOzJqfELhz3l04aSj7Vy/MJxT86MXzjuKbmdJD9XN37hsCenxi8c9pTcfqI+t3b8whJPUt9vMB4R9QqNdpyUpyilYzwiCqUfj5H2JJ0f/Z3GPNLxfi8OFYxHZKcmcb1jPCI777ivSHiKWxerxyOwInNcrdVzHlZkxorM1XPlEan44J0nHJvuZItadX/ViP2GvkXLlyct5eadPGTvBjTmjWHVsuJX1LrHPU6bpz/96Qv6zPtp+N9d2puGHtg60tu+8MIJdO/989KOXbb4KGrZqk7afht3aPOUL8NLL/2M7rx7buK0Vq1KaeniExLbWp5o8zR92g+0Zs0WGrx3i8iIh494j55/ITxRrFmzUlo0/1iqU1fHjR7aPPlyfvvbT+iRxxaFPOVaBfufj8+mX/1mUuicPrvVockTf6LixgCNnkKwvY1331lCBx3yYWi33178Seh16+loL6HKZ9jQ5Gnjhm3eTQEv0tak+5p8HxMnHEYdOtbP8O4qd/n/QX7YoW/Ru2N/qNzpPdNyY4AmTyHAETbWrd1KJ3r/Nr05ZnXo6F49a9P0abpWPtfgqZDvrWPeXEyHHvFRyFODBiU09YvDs7ZBf3WKPnu8TF9/XbmSsx/w7FODaPiI6vl1Adc9hQRl2SjkOsgSyb67GDy5MH7huidXxi9c95RvB2Tr+IXrnlwZv3Ddk9+eXBi/KAZPqX2fxvELlz25NH7hsqfUdpRr2+bxCxs8SX6/wXhErqsz+uuSnqLUAuMRUSgRSXuSzo/2Lgs7yvV+D+MRhV0fyWfbdL1jPCLZTPi5pCfnxiPC6Ni3sCIzO1IirMhc9WpIAsjzj7TkDqn8K579DA0fvLPXPssryjytXrXZW2X0VZo/P2l2i/fWBvSvR++8dQg1alwzyxtVvluZp928lZWnTd9UAX3//RrRWWd0o+OO2yXjJPOFCzbQ76+cSP95akmapBNPaEnPPXtA2n5rdyjzlC9HWz945/s+SJmn3ruOpq9mbKJ+e9Slyy7pTUd7Kypn6+s+/GAZ/d81k+n9D9akYXnphcF0zLFKVmP2a6/Mk1/lT8evoL2GjPWfhv7OP7c93XvPnt4H2NBuuvnmqZ6vGZR6U+Xbb+5LBx28U/hgW7cUekpFedTR79Irr64M7f795Z3pL3/pH9qnekOZp0wrTO2xe1164vF9sq5UvmrlZrr8is/p0cfDNxM0alRCq5afQGU1UhqgjUKVeZozex099fS3tMfuzWjYsDZUy/tlhkx/38xaSyf99H2aNDm86nnt2iX0zpj9acg+LTOdZu8+BZ4K/d66R7+X6Ysvy0MOunWrSSOfH0q9d20c2u/7PfXnH9KEz9aH9vfsWYumTzmGSjJfFqFjRTaKwFMuboVeB7nyWV533JMz4xeOe3Jm/MJxT/n2OdaOXzjuyZnxC8c9+e3JifGLIvCU2vepHL9w3JMz4xeOe3Jm/KKaPZn4foPxiNSeP/9tE55y1QrjEbkIEUl7ks7P/Q6ZjnC838N4BM91Ytv1jvGIzF6lPTk3HpE6eSAz1th7MZE5NrrMJ2JFZqzInPnK4Nl71lnjvP/IHl4pLEhO/Y+z/n9879unXvBy4nG/fVvS7bcPTGzb/MSGO9ny4fPXv06jK6/+KuMpNfOcw3zqT9vS448PyZhl205tnrr3fIlmzdoSwli/fgkNHNCQOndqQG3a1PVW1N5EX89aQ59OWEsbN+4IHetvtG9fg76YeCQ1aVor7TVbd2jzlC9Haz945/lGtHnaqe2LtHTptsS79Pu6wXs1pE4dG1DbtvW8SbA76Nu5671VENfQ5C/Ck8SCk847pz3dd583kVbRnzZPAdr99n+DPvxobbCZeOzevRYN3rM5denS0Osf19DH41bSnDnhftI/+NhjWtDIF4cmzrP9iVZPAdcZX/1AvfuMCU0mL/MWYf72myNol/ZVr/4bZGh41ObpySfm0C9On5iGtsSbi3zkEc29X+FoQe13qU916pTRokUbaKbX/z3574W0bl3654nnnt6TThzePi3Lxh3aPN1223S6/PfTK1D6K/YO3quxd3NhM2rl/ZJGWWkJLVla7vWHyzL2if5JTz7en35+WmcbVVRZJ1s8SX5vfXn0Qjr6uHEZOXTpUpP28yafN2tWi6Z6vxrx4Uff04YN4bbn96NvvbFf5F9myVhQgTuLwZOPSPI6KFBBpNNd9+TK+IXrnlwZv3DdU6ROJekgW8cvXPfkyviF656CpqJ9/KJYPAW+tI5fuO7JlfEL1z25Mn5R3Z5MfL/BeETQ68d/NOHJrx3GI+I78s+U9iSdX9i7j3626/0exiOiXwtVHWnb9Y7xiMy2pD05Nx6RGSPbXkxkZkNZGYQVmbEic+XVwPds/bqt1KDxyIID69YtoQ3rTiw4x0hANd/Jlu97POec8fTg3xfke1rG4zt2rEHfzj4u42vW7VTm6eBhY+idd8M/654PU3/yw3vvHED7eDcFqPpT5ilftrZ+8M73fWhb6bdDp5Fpq9Dn857796tLH394ONX2Jvyp+lPanpYuKadBg1+nBQvCvxwQhb2/6vZL3iRmVRNolXoKfJx99jh66OGFwWbF4/ATW9Gzz+wf2qd+Q6Gn3/9+It1y25yC0F9+WWe65RZFK2sr8/TnP0/xVpWfGcvRNf/Xla6/fo9Y51b7SRZ4MvG99aqrJtFfbpkdC/ddt+9KF13cK9a5bCcVgScT1wGbj2xBjntyZvzCcU/OjF847ilbN5Jtv7XjF457cmb8wnFPQbtRP35RJJ4CX2rHL4rAkxPjF457cmb8opo9mfp+g/GIoOeP92jCE8Yj4rlJPkvak3R+8nsRfe54v4fxCJ6rx7brHeMRmb1Ke3JuPAIrMme+kGzdixWZsSKz1LX5/erN1LTFqILjmzcvpRXLTig4x0RAdd/Jlu97vOCCT+m+B+bne1rG4zt0qEFz5+iYyKzN06SJq+jU0z6kGTM2Z2Rf1c5DD2lKt90yIOtPx1d1bnW/ps1Tvrys/eCd5xvR5umKKybSrbfnP5mvRYtS+tM1u3p3xnenGjW9ZUyV/WnzlIz3yy9W01HHvhd5MnNpKZE/4fIGb1JfzVrehqI/zZ7WrtlCrduOSvtVgA/fU3gjTY5rRqOnHduJLr3sM+8GtnlUXh5e7TXH26XGjUvo4gu70rXX9KXSMj39nzZP//n3t/SzX3yeS0fodf+GjTtuG1itK/WGKhRjwwZPJr63bt+2g665dnLFZObtXnuM8uf/AssD9/ajX/yy+lfaLgZPJq6DKN4LOcZ1T66MX7juyZXxC9c95dvX2Dp+4bonV8YvXPeU3J40j18UkyfN4xfF4MmF8QvXPbkyflHdnkx9v8F4RPK/1Pk/N+EJ4xH5e0k9Q9qTdH7q+5Hadr3fw3gEz5Vj2/WO8YjMXqU9OTcekRkj216syMyGsjIIKzJjRebKq4H3Wd/dX6YpU8sLCj1g/0Y09t1DC8owdnI138mW7/t89ZVFdNIp42j9+vwmtGQqZ8TwVvTM0/tnesm+fco8+QD9AbzXXltE/3xyDo19bzktW5Z9BkTDhiW0e98G9EdvwtGwQ9rYxz9qjRR6ivrW/ONSf/Jj9751aPKko/KJsONYhZ4+m7CS/vnEbHr19cU0Z86WrBxr1CDq3LkWnXDcLnTVlbtRo8Y1sx5r/QsKPSUz3bxpOz3wwEz681+/ouXLM/d/vq/99m1c0fcdMLR18ul6niv2tGjhBurW87XQROZjj2lBI71VsZ37U+xp2dJyuufeGfS3h+bQqlWZ21Lgq02bMjrvnK50wfk9dfZ/yjxt27qDbr1tGj32zzn09dfZb17zP+f16F6XLvS8nHaaN8FVz9zy4NIKP1riydT31o8+XE633zmdXn1tBW3alPk7mH8j76k/3YUuurAndenaMMyruraKxJOp60BMo+OenBm/cNyTf307MX5RBJ7y6YusHb8oAk9OjF8Ugafk9qR2/KKIPKkevygiT6rHLxz35Mz4RTV7Mv39BuMRyf9aR39uyhPGI6I7yXSktCfp/EzvSWRfEfR7GI8o/Mqx7XrHeERmpyY8OTUegRWZM19Itu7FisxYkdnWa1Njvar7TjaNzKqjzi54+nrmGpo3b703obmcVq7cRI0a1aRu3Rp5/2tIrVrXqQ6s7GW64CkXlJUrNtEPP2yh2rVLqW3belSia/HYiren3dOK5ZtoypTVtMJz4belbd6KiZ06NaDu3RtVPJbV0D5D7MerULunRFvy5nwt9CbMfvPNWpo9ey1t2LCVWrSoQ629fm/AgObUuIniyebem9TuaVP5top/l7Z6EzIbNqxJLVrWTqhz6Yl2T4EL/9+g+fPXV/xv0aINVKNGKbVvX586dPjxf/Xqe3cHKP7T7Mn/Weovv1xNS5ZspO+/30x165ZVfM7z/21q07auYivpVdfsKf3dRN+zxvv894X3iwOLF2+s6Ddrer/24H8WbOv53X33Ztb9+kOxeopu1I4j4ckOD7lqUYyeNI5fFKOnXNeujeMXxeZJ6/hFsXlKtCVl4xfF5knr+EWxeQrak7bxi2LypHn8opg8BW3Jf8R4RDINPOciUKztiYufqZxi9ITxCFNXl2w5GI+Q5RslXf14RJQ3WcAxWJG5AHjZTtWyIvOWqWtp7W9me0t7VK5cVHZwA2p8c7dsby20f9uicvrhxBlE2yvPL+1Xh5o81Ct0nJUb1XyHlJVMbKwUPNloJb1O8JTOxMY98GSjlfQ6wVM6Exv3wJONVtLrBE/pTGzcA082WkmvEzylM7FxDzzZaCW9TvCUzsTGPfBko5X0OsFTOhMb98CTjVbS6wRP6Uxs3ANPNlpJrxM8pTOxcQ882WglvU7wlM7Exj3wZKOV9DrBUzoTG/fAk41W0usET+lMbNwDTzZaSa8TPKUzsXFP4ClpjqlENTGRmZmqphWZK976hm20dckmIm/FxFJvBdLS1rXyI1K+nbYu3kQ7tmyn0oY1qKyNjpXiivEOqfzE2nE0PNnhIVct4CkXITtehyc7POSqBTzlImTH6/Bkh4dctYCnXITseB2e7PCQqxbwlIuQHa/Dkx0ectUCnnIRsuN1eLLDQ65awFMuQna8Dk92eMhVC3jKRciO1+HJDg+5agFPuQjZ8To82eEhVy3gKRchO16HJzs85KoFPOUiZMfr8GSHh1y1gKdchOx4HZ7s8JCrFvCUi5Adryc8CVcHE5kFAGtZkVngreuJDO4U2DZcT52LsabwpMM6PMGTDgI6aon2BE86COioJdoTPOkgoKOWaE/wpIOAjlqiPcGTDgI6aon2BE86COioJdoTPOkgoKOWaE/wpIOAjlqiPcGTDgI6aon2BE86COioJdoTPOkgoKOWaE+6PGFFZh2+glqqW5E5qHiRPSbuFNg+osjeua63C086fMETPOkgoKOWaE/wpIOAjlqiPcGTDgI6aon2BE86COioJdoTPOkgoKOWaE/wpIOAjlqiPcGTDgI6aon2BE86COioJdoTPOkgoKOWaE/wpIOAjlqiPcGTDgI6aon2pMyTcHWxIrMAYKzILACVOxJ3dHATlcmDJxmu3KnwxE1UJg+eZLhyp8ITN1GZPHiS4cqdCk/cRGXy4EmGK3cqPHETlcmDJxmu3KnwxE1UJg+eZLhyp8ITN1GZPHiS4cqdCk/cRGXy4EmGK3cqPHETlcmDJxmu3KnwxE1UJg+eZLhyp8ITN1GZPHiS4cqdCk/cRGXy4EmGK3cqPHETlckLPGFFZhm+UqlYkVmKLG8u7ujg5SmVBk9SZHlz4YmXp1QaPEmR5c2FJ16eUmnwJEWWNxeeeHlKpcGTFFneXHji5SmVBk9SZHlz4YmXp1QaPEmR5c2FJ16eUmnwJEWWNxeeeHlKpcGTFFneXHji5SmVBk9SZHlz4YmXp1QaPEmR5c2FJ16eUmnwJEWWNxeeeHlKpcGTFFneXHji5SmVlvAkVcD/crEiswBgrMgsAJU7MrhTYNtw7mTkcRKAJ06aclnwJMeWMxmeOGnKZcGTHFvOZHjipCmXBU9ybDmT4YmTplwWPMmx5UyGJ06aclnwJMeWMxmeOGnKZcGTHFvOZHjipCmXBU9ybDmT4YmTplwWPMmx5UyGJ06aclnwJMeWMxmeOGnKZcGTHFvOZHjipCmXBU9ybDmT4YmTplwWPMmx5UwOPGFFZk6q8llYkVmeMUcJiTsFto/giEOGEAF4EgLLHAtPzECF4uBJCCxzLDwxAxWKgychsMyx8MQMVCgOnoTAMsfCEzNQoTh4EgLLHAtPzECF4uBJCCxzLDwxAxWKgychsMyx8MQMVCgOnoTAMsfCEzNQoTh4EgLLHAtPzECF4uBJCCxzLDwxAxWKgychsMyx8MQMVCgOnoTAMsfCEzNQobiEJ6H8IBYrMgckGB+xIjMjTKmo4E4BrMgsRZgnF554OEqnwJM0YZ58eOLhKJ0CT9KEefLhiYejdAo8SRPmyYcnHo7SKfAkTZgnH554OEqnwJM0YZ58eOLhKJ0CT9KEefLhiYejdAo8SRPmyYcnHo7SKfAkTZgnH554OEqnwJM0YZ58eOLhKJ0CT9KEefLhiYejdAo8SRPmyYcnHo7SKfAkTZgnP/CEFZl5eJpKwYrMpkgXVk7iTgGsyFwYSOGz4UkYMFM8PDGBFI6BJ2HATPHwxARSOAaehAEzxcMTE0jhGHgSBswUD09MIIVj4EkYMFM8PDGBFI6BJ2HATPHwxARSOAaehAEzxcMTE0jhGHgSBswUD09MIIVj4EkYMFM8PDGBFI6BJ2HATPHwxARSOAaehAEzxcMTE0jhGHgSBswUD09MIIVjEp6ky9nh/QmXUXTxWJFZgfLgTgGsyGy3LHiy209QO3gKSNj9CE92+wlqB08BCbsf4cluP0Ht4CkgYfcjPNntJ6gdPAUk7H6EJ7v9BLWDp4CE3Y/wZLefoHbwFJCw+xGe7PYT1A6eAhJ2P8KT3X6C2sFTQMLuR3iy209QO3gKSNj9CE92+wlqB08BCbsf4cluP0Ht4CkgYfcjPNntJ6gdPAUk7H4MPAlPMy7BRGbe6wArMvPylEpL3CmAFZmlELPkwhMLRvEQeBJHzFIAPLFgFA+BJ3HELAXAEwtG8RB4EkfMUgA8sWAUD4EnccQsBcATC0bxEHgSR8xSADyxYBQPgSdxxCwFwBMLRvEQeBJHzFIAPLFgFA+BJ3HELAXAEwtG8RB4EkfMUgA8sWAUD4EnccQsBcATC0bxEHgSR8xSADyxYBQPgSdxxCwFJDyxpGUPwUTm7Gxiv4IVmWOjM3dicKcAVmQ2xzxOSfAUh5r5c+DJPPM4JcJTHGrmz4En88zjlAhPcaiZPweezDOPUyI8xaFm/hx4Ms88TonwFIea+XPgyTzzOCXCUxxq5s+BJ/PM45QIT3GomT8Hnswzj1MiPMWhZv4ceDLPPE6J8BSHmvlz4Mk88zglwlMcaubPgSfzzOOUCE9xqJk/B57MM49TIjzFoWb+HHgyzzxOiYEnrMgch171nYMVmauPfT4lJ+4UwIrM+WAzfiw8GUceq0B4ioXN+EnwZBx5rALhKRY24yfBk3HksQqEp1jYjJ8ET8aRxyoQnmJhM34SPBlHHqtAeIqFzfhJ8GQceawC4SkWNuMnwZNx5LEKhKdY2IyfBE/GkccqEJ5iYTN+EjwZRx6rQHiKhc34SfBkHHmsAuEpFjbjJ8GTceSxCoSnWNiMnwRPxpHHKhCeYmEzflLCk3DJWJFZADBWZBaAyh0Z3CmAFZm5yfLmwRMvT6k0eJIiy5sLT7w8pdLgSYosby488fKUSoMnKbK8ufDEy1MqDZ6kyPLmwhMvT6k0eJIiy5sLT7w8pdLgSYosby488fKUSoMnKbK8ufDEy1MqDZ6kyPLmwhMvT6k0eJIiy5sLT7w8pdLgSYosby488fKUSoMnKbK8ufDEy1MqDZ6kyPLmBp6wIjMvV+k0rMgsTZgnP3GnAFZk5gEqlAJPQmCZY+GJGahQHDwJgWWOhSdmoEJx8CQEljkWnpiBCsXBkxBY5lh4YgYqFAdPQmCZY+GJGahQHDwJgWWOhSdmoEJx8CQEljkWnpiBCsXBkxBY5lh4YgYqFAdPQmCZY+GJGahQHDwJgWWOhSdmoEJx8CQEljkWnpiBCsXBkxBY5lh4YgYqFJfwJJQfxGJF5oAE4yNWZGaEKRUV3CmAFZmlCPPkwhMPR+kUeJImzJMPTzwcpVPgSZowTz488XCUToEnacI8+fDEw1E6BZ6kCfPkwxMPR+kUeJImzJMPTzwcpVPgSZowTz488XCUToEnacI8+fDEw1E6BZ6kCfPkwxMPR+kUeJImzJMPTzwcpVPgSZowTz488XCUToEnacI8+fDEw1E6BZ6kCfPkB56wIjMPT1MpWJHZFOnCykncKYAVmQsDKXw2PAkDZoqHJyaQwjHwJAyYKR6emEAKx8CTMGCmeHhiAikcA0/CgJni4YkJpHAMPAkDZoqHJyaQwjHwJAyYKR6emEAKx8CTMGCmeHhiAikcA0/CgJni4YkJpHAMPAkDZoqHJyaQwjHwJAyYKR6emEAKx8CTMGCmeHhiAikcA0/CgJni4YkJpHBMwpN0OTu8P+Eyii4eKzIrUB7cKYAVme2WBU92+wlqB08BCbsf4cluP0Ht4CkgYfcjPNntJ6gdPAUk7H6EJ7v9BLWDp4CE3Y/wZLefoHbwFJCw+xGe7PYT1A6eAhJ2P8KT3X6C2sFTQMLuR3iy209QO3gKSNj9CE92+wlqB08BCbsf4cluP0Ht4CkgYfcjPNntJ6gdPAUk7H6EJ7v9BLWDp4CE3Y+BJ+lpxv5EZvzxEfCuqoowPIKDfyHgOsB1gOsA7QD9APoB9APoB9APoB9AP4B+AP0A+gH0A+gH0A+gH0A/gH4A/QD6AfQD6AfQD6AfQD+AfgD9APoB9APoB9APoB9AP4B+AP0A+gH0A+gHtPYD/rUr+fdj7yBZQhFma73YUG/8Y+k3V1wHuA5wHaAdoB9AP4B+AP0A+gH0A+gH0A+gH0A/gH4A/QD6AfQD6AfQD6AfQD+AfgD9APoB9APoB9APoB9AP4B+AP0A+gH0A+gH0A+gH0A/gH4A/UDQD/jXgtRfiR/sFYQ/JgIlJSV+70W0fQRTImIkCJSUPfejJ4lwZLIRSLQntkQESRCAJwmq/JnwxM9UIhGeJKjyZ8ITP1OJRHiSoMqfCU/8TCUS4UmCKn8mPPEzlUiEJwmq/JnwxM9UIhGeJKjyZ8ITP1OJRHiSoMqfCU/8TCUS4UmCKn8mPPEzlUiEJwmq/JnwxM9UIhGeJKjyZ8ITP1OJRHiSoMqfCU/8TCUS4UmCKn+mKU+YyMzvjirkbRsukIxINgKlz/7oCfP42ZBKBZnqDKXqXyy58KTDNDzBkw4COmqJ9gRPOgjoqCXaEzzpIKCjlmhP8KSDgI5aoj3Bkw4COmqJ9gRPOgjoqCXaEzzpIKCjlmhP8KSDgI5aoj3Bkw4COmqJ9gRPOgjoqCXaEzzpIKCjlibaEyYyM18LCWlYkZmZLG8cVmTm5SmVlmhPUgUgl4UAPLFgFA+BJ3HELAXAEwtG8RB4EkfMUgA8sWAUD4EnccQsBcATC0bxEHgSR8xSADyxYBQPgSdxxCwFwBMLRvEQeBJHzFIAPLFgFA+BJ3HELAXAEwtG8RB4EkfMUgA8sWAUD4EnccQsBcATC0bxEHgSR8xSADyxYBQPgSdxxCwFwBMLRvEQU54wkVlAZYU8rMgsQJYxEisyM8KUjTLVGcq+C/fT4UmHY3iCJx0EdNQS7QmedBDQUUu0J3jSQUBHLdGe4EkHAR21RHuCJx0EdNQS7QmedBDQUUu0J3jSQUBHLdGe4EkHAR21RHuCJx0EdNQS7QmedBDQUUu0J3jSQUBHLU20J0xkZr4WEtKwIjMzWd44rMjMy1MqLdGepApALgsBeGLBKB4CT+KIWQqAJxaM4iHwJI6YpQB4YsEoHgJP4ohZCoAnFoziIfAkjpilAHhiwSgeAk/iiFkKgCcWjOIh8CSOmKUAeGLBKB4CT+KIWQqAJxaM4iHwJI6YpQB4YsEoHgJP4ohZCoAnFoziIfAkjpilAHhiwSgeAk/iiFkKgCcWjOIhpjxhIrOAygp5WJFZgCxjJFZkZoQpG2WqM5R9F+6nw5MOx/AETzoI6Kgl2hM86SCgo5ZoT/Ckg4COWqI9wZMOAjpqifYETzoI6Kgl2hM86SCgo5ZoT/Ckg4COWqI9wZMOAjpqifYETzoI6Kgl2hM86SCgo5ZoT/Ckg4COWppoT5jIzHwtJKRhRWZmsrxxWJGZl6dUWqI9SRWAXBYC8MSCUTwEnsQRsxQATywYxUPgSRwxSwHwxIJRPASexBGzFABPLBjFQ+BJHDFLAfDEglE8BJ7EEbMUAE8sGMVD4EkcMUsB8MSCUTwEnsQRsxQATywYxUPgSRwxSwHwxIJRPASexBGzFABPLBjFQ+BJHDFLAfDEglE8BJ7EEbMUAE8sGMVDTHnCRGYBlRXysCKzAFnGSKzIzAhTNspUZyj7LtxPhycdjuEJnnQQ0FFLtCd40kFARy3RnuBJBwEdtUR7gicdBHTUEu0JnnQQ0FFLtCd40kFARy3RnuBJBwEdtUR7gicdBHTUEu0JnnQQ0FFLtCd40kFARy3RnuBJBwEdtTTRnjCRmflaSEjDiszMZHnjsCIzL0+ptER7kioAuSwE4IkFo3gIPIkjZikAnlgwiofAkzhilgLgiQWjeAg8iSNmKQCeWDCKh8CTOGKWAuCJBaN4CDyJI2YpAJ5YMIqHwJM4YpYC4IkFo3gIPIkjZikAnlgwiofAkzhilgLgiQWjeAg8iSNmKQCeWDCKh8CTOGKWAuCJBaN4CDyJI2YpAJ5YMIqHmPKEicwCKivkYUVmAbKMkViRmRGmbJSpzlD2XbifDk86HMMTPOkgoKOWaE/wpIOAjlqiPcGTDgI6aon2BE86COioJdoTPOkgoKOWaE/wpIOAjlqiPcGTDgI6aon2BE86COioJdoTPOkgoKOWaE/wpIOAjlqiPcGTDgI6ammiPWEiM/O1kJCGFZmZyfLGYUVmXp5SaYn2JFUAclkIwBMLRvEQeBJHzFIAPLFgFA+BJ3HELAXAEwtG8RB4EkfMUgA8sWAUD4EnccQsBcATC0bxEHgSR8xSADyxYBQPgSdxxCwFwBMLRvEQeBJHzFIAPLFgFA+BJ3HELAXAEwtG8RB4EkfMUgA8sWAUD4EnccQsBcATC0bxEHgSR8xSADyxYBQPMeUJE5kFVFbIw4rMAmQZI7EiMyNM2ShTnaHsu3A/HZ50OIYneNJBQEct0Z7gSQcBHbVEe4InHQR01BLtCZ50ENBRS7QneNJBQEct0Z7gSQcBHbVEe4InHQR01BLtCZ50ENBRS7QneNJBQEct0Z7gSQcBHbVEe4InHQR01NJEe8JEZuZrISENKzIzk+WNw4rMvDyl0hLtSaoA5LIQgCcWjOIh8CSOmKUAeGLBKB4CT+KIWQqAJxaM4iHwJI6YpQB4YsEoHgJP4ohZCoAnFoziIfAkjpilAHhiwSgeAk/iiFkKgCcWjOIh8CSOmKUAeGLBKB4CT+KIWQqAJxaM4iHwJI6YpQB4YsEoHgJP4ohZCoAnFoziIfAkjpilAHhiwSgeYsoTJjILqKyQhxWZBcgyRmJFZkaYslGmOkPZd+F+OjzpcAxP8KSDgI5aoj3Bkw4COmqJ9gRPOgjoqCXaEzzpIKCjlmhP8KSDgI5aoj3Bkw4COmqJ9gRPOgjoqCXaEzzpIKCjlmhP8KSDgI5aoj3Bkw4COmqJ9gRPOgjoqKWJ9oSJzMzXQkIaVmRmJssbhxWZeXlKpSXak1QByGUhAE8sGMVD4EkcMUsB8MSCUTwEnsQRsxQATywYxUPgSRwxSwHwxIJRPASexBGzFABPLBjFQ+BJHDFLAfDEglE8BJ7EEbMUAE8sGMVD4EkcMUsB8MSCUTwEnsQRsxQATywYxUPgSRwxSwHwxIJRPASexBGzFABPLBjFQ+BJHDFLAfDEglE8xJQnTGQWUFkhDysyC5BljMSKzIwwZaNMdYay78L9dHjS4Rie4EkHAR21RHuCJx0EdNQS7QmedBDQUUu0J3jSQUBHLdGe4EkHAR21RHuCJx0EdNQS7QmedBDQUUu0J3jSQUBHLdGe4EkHAR21RHuCJx0EdNQS7QmedBDQUUsT7QkTmZmvhYQ0rMjMTJY3Disy8/KUSku0J6kCkMtCAJ5YMIqHwJM4YpYC4IkFo3gIPIkjZikAnlgwiofAkzhilgLgiQWjeAg8iSNmKQCeWDCKh8CTOGKWAuCJBaN4CDyJI2YpAJ5YMIqHwJM4YpYC4IkFo3gIPIkjZikAnlgwiofAkzhilgLgiQWjeAg8iSNmKQCeWDCKh8CTOGKWAuCJBaN4iClPmMgsoLJCHlZkFiDLGIkVmRlhykaZ6gxl34X76fCkwzE8wZMOAjpqifYETzoI6Kgl2hM86SCgo5ZoT/Ckg4COWqI9wZMOAjpqifYETzoI6Kgl2hM86SCgo5ZoT/Ckg4COWqI9wZMOAjpqifYETzoI6Kgl2hM86SCgo5Ym2hMmMjNfCwlpWJGZmSxvHFZk5uUplZZoT1IFIJeFADyxYBQPgSdxxCwFwBMLRvEQeBJHzFIAPLFgFA+BJ3HELAXAEwtG8RB4EkfMUgA8sWAUD4EnccQsBcATC0bxEHgSR8xSADyxYBQPgSdxxCwFwBMLRvEQeBJHzFIAPLFgFA+BJ3HELAXAEwtG8RB4EkfMUgA8sWAUD4EnccQsBcATC0bxEFOeMJFZQGWFPKzILECWMRIrMjPClI0y1RnKvgv30+FJh2N4gicdBHTUEu0JnnQQ0FFLtCd40kFARy3RnuBJBwEdtUR7gicdBHTUEu0JnnQQ0FFLtCd40kFARy3RnuBJBwEdtUR7gicdBHTUEu0JnnQQ0FFLtCd40kFARy1NtCdMZGa+FhLSsCIzM1neOKzIzMtTKi3RnqQKQC4LAXhiwSgeAk/iiFkKgCcWjOIh8CSOmKUAeGLBKB4CT+KIWQqAJxaM4iHwJI6YpQB4YsEoHgJP4ohZCoAnFoziIfAkjpilAHhiwSgeAk/iiFkKgCcWjOIh8CSOmKUAeGLBKB4CT+KIWQqAJxaM4iHwJI6YpQB4YsEoHgJP4ohZCoAnFoziIaY8YSKzgMoKedW0IvP2JZto7d3zafvcTVW/s7ISKmlc9uP/mtSgsra1qfaQJlSjc72qz3PlVazIrMakqc5QDRBLKwpPlopJqRY8pQCxdBOeLBWTUi14SgFi6SY8WSompVrwlALE0k14slRMSrXgKQWIpZvwZKmYlGrBUwoQSzfhyVIxKdWCpxQglm7Ck6ViUqoFTylALN2EJ0vFpFQLnlKAWLoJT5aKSakWPKUAsXQTniwVk1IteEoBYukmPFkqJqVa8JQCxNJNeLJUTEq1THjCROYU6IVuJqRV04rMa66bTVtfWRP/bdQpodLd61C937SlWns0ip9j+Zmursi8evVq2rRpE9WrV48aNdLvL9GeLL+e8q0ePOVLzMzx5eXltGDBAlq0aBGtWrWK2rVrR7169XKiLfkEXWlP69evp4ULF9J3331X4alNmzbUrVs3atmypZkLRbgUVzwJY6r2eNc8LVmyhGbNmkXLly+ntm3bUteuXalFixbVzrnQCrjmKeCBzxEBCbse8e+TXT6y1Qaf97KRsXs/+j07/aDfs9NL1Frt2LGDtmzZQjVr1qz4rhj1PNuOc/Xznm2cC60PPBVK0Mz5rnnC91wz100hpcydO5d8T/5YhP/XuXNn6tKlC9WpU6eQWCvOda09BVDxuTwgoeMRn/fgySQBV/o9jBuZvGril4XxiPjsTJ4JTyZpxy8LnuKzw5l8BFz5HMFHxM4kU54wkVnAf4W8alqRefXxU2jHoq0s76qkRy2qf3l7qtW3IUueVSGOrcg8YcIEOuuss2jSpEkJzOeddx7dd999iW2tT0x1hib4wJMJyvmVsW7dOnryySfppZdeorFjx1bcCJCa4E9o3mOPPeiGG26gfv36pb6saltre1qxYgU99thjNGrUKPrkk09o27ZtadwbN25M/fv3pxtvvJGGDBmS9rqmHdo8bdiwgU499VSaOHFiLMwnn3wy3XrrrbHOrc6TtHlKZrVx40a688476dlnn6VvvvmG/L4w9c+/Icq/meN3v/sdDR8+PPVlNduaPaVCxueIVCLVv41/n6rfQZQa4PNeFEp2HoN+zz4v6Pfsc5JvjR5++OGK77b+zaH+5Bb/s1KzZs3oxBNPpIceeijfOCuO1/Z5D9+frLhsclYCnnIisu4AfM+1TknGCi1durTi36HRo0fT/Pnz047x+/SOHTvSRRddROeccw7VqlUr7RgtO7T9+1QVV3wur4qOfa/h8559TjLVCJ4yUamefRg3qh7u+ZaK8Yh8iVXP8fBUPdzzLRWe8iVm7vgLLrigYt4KR4lNmjShV155hXbZZReOOPEMTd+f4GmH6PWAiczMeBONq5pWZOacyFyBxhs4qvX/7Z0JvBdV+f8f7mVfBUTFBUUEzAUtzF+KmZo7+jMXFFOzX5mQSy5JbhVpYZqiQeK+BOXPFSX/qb/MMpc0K3NfABdIcJcdZLv3/u8Z+w4z3+V+t3NmzjO85/WCO3Nm5jnPvD9zzpyZ7zPPfLefdP/mZpZJpWsuKxmZzRtSP/rRj2TSpEnS3Nwcg3rEEUfI9OnTY2XaFsL2pM3xPH/RKQ+IB4smEHbixIly2WWXBVl9K3GpsbFRvve978nFF18s3bt3r2QXr7bR2J5Wr14dBCabgMtigZalAI8ePVp+9atfqcwoq1Gn3//+93LooYeWkqNsuXlZwARSaJo06pTj++tf/zoYO1TDfNddd5VrrrlGhg8fnjOj4q9mnaKAGUdEafgxz/XJDx3KecF4rxwhf9fT7/mnDf2ef5rU4pH5AscOO+wgRs/8aaONNhITXKZt0jje4/5Jx1mGTjp0ynnJfW6OhN9/Z8yYISeffHKYgbmctyZDs0lssOeee5bb1Lv1Gq9PxSAyLi9Gxe8yxnt+65PzDp1yJNL9y3OjdPlXWjvPIyolle526JQu/0prR6dKSaW3Xd++fSuOXanEyzvvvFOOPvroSjZNdRtt90/o5PZ0IZDZAd+gkfmUkXmDRmkY2GHdkbYmsmxZ0iQtS1sDX82/1eWj5Rv36S69Lh28zob2uQxkZH744YeDLMzmE2zFpiwEMpvj0nbRytcCnfKJ+LF8+OGHi3l4Xst00EEHyYMPPljLrqnvo6091aPTf//3f1t7YzFp4bTpZLKaf+Mb36gZ0+abby7vvPNOzfuntaM2nQwn86UG85ZoLdPGG28sL774opggF02TRp2ifBlHRGn4M8/1yR8t2vKkHp0Y77VF1u06+j23fGu1Xk97YlxeK3X7+x188MHy0EMPFTWsNZDZHIy28R73T0VPQe8K0ck7SUo6xH1uSTTerDCBYiaA+ZZbbqnaJ5NF7G9/+5sMHTq06n3T3kHb9SmfF+PyfCI6lhnvoVOaBLT1e/Xc5/LcKLkzrR6deB6BTq4JrE/9Hu3J9dn0mX3z1bSFCxdaq8x8ldxop2HS1J7QqXyMaT3nHIHM9dArsm/YuDzKyNzprI2l27GbFvH2s6I1s5bLykc+kTX3tnaIS1oDm0tMHY7vIz2+t2WJtbqKNWdk/uSTT+Sss84S80C9rSkLgcxhe2rrQD1dh06eCtPq1po1a6RTp07BZ3TzvTTnXP/+/YM33VauXJm/OlyeNm2anHDCCeGyhhlt7cl85rhDhw5ifuyITl26dJHPfe5zss022wQDeRNYWSpz2NSpU+sKsI3Wm9S8Np0Ml3p/4DWfsb7nnnuSQmylHo06vfzyy/LFL35R8vu2Xr16iRkzmExHps3NnTs3CHAp9qKUtge0GnXKnaCMI3Ik/PvL9ck/TYp5xHivGBW/y+j3/NWHfs9fbarx7P7775fDDjus5C5aA5k1jve4fyp5Gnq1Ap28kqOkM9znlkTj1Yrrr79exo4dW+BTt27dgi8/DRs2LHi2ZwKWi73obp4B/utf/5IePXoU2PC1QOP1KceScXmOhL6/jPd0aIZOfujEcyM/dCjnBc8jyhHyYz06+aFDOS/QqRwhP9bvu+++8qc//cmaM+ZrUyNHjrRmz5UhbfdP6OTqTPjMLoHMDvgGjcyjjMzlAplDBCuaZNH5b0jz0yvCothMO5FuV24lnUb0jhWrXFCakdkEep1yyikVfX4tC4HM5tzSdtEyPqOToeDv9Omnn0rXrl1DBzt37izHHXdckBlkxx13FBMoa4JnX3jhhSBz6VNPPRVum5sxn4uYP39+EBCdK9PwV1N7Wrt2bRBUmeO67bbbyplnnhkEkEf1M9tdeeWVMn78+IIATRPw/Oqrr+ZMqPmrSScDNf8H3uHDh8tNN91UMW+jk3m5QNukTadiN1WjR4+WKVOmiHlzNDqZz0v98pe/lHPPPTdaHMzPmjVLBg/W85UObToZyIwjCk47rwq4Prl909qW2Iz3dOiU05t+L0fCz7/0e7raU7GzyLzItv3228tbb71VbHVQpjWQ2TivbbzH/VPJ09CrFejklRwlneE+tyQab1YsXrw4eIbw0UcfxXw64IADxHzm2LxcHZ2uuuoqOfvss6NFwbx5RnHGGWcUlPtcoO36ZFgyLvf5jGrbN8Z7bfPxZS06+aKECM+NdNzn8jwCnfzpNYp7omm8R3vS0Z6WL18ur7zySvETro1So++IESNiW3Ts2FHee++9gt+AYxt5tKCpPaGT2/ZEILPlhhk2LkUZmfMRrLjnfVk58X2RpiInX/cG6fPITiIN+XvpWtaYkdlcZDbffHNpbo5nze7Xr59ceumlct5558UCnLMQyBy2J0WnFzrpEMtk8Fi2bJl8/etflyuuuCLIwlzMcxPQPGrUKLnvvvsKVj/33HOy8847F5T7WqCxPZmAcTOZIOVTTz1VGhsbS+KdNGlSEOgc3aB9+/aBzpqCZDXqlP8Dr/mE4QMPPBCVInPz2nQyb1qbHweXLl0aamGCWf75z3+KeZmj1DRmzBi54YYbYqvvvvtuOeqoo2Jlvi5o08lwZBzh69kU94vrU5yHr0uM93xVJu4X/V6ch69L9Hu+KlOZXz/96U/lxz/+cbixGf/tv//+YrLB5Satgcwax3vcP+XOOr//opPf+hjvuM/1XyPj4bhx44Jnr1FvzZe5TBBzqed81157bZDMJbrP0KFD5bXXXgteXomW+zqv8frEuNzXs6kyvxjvVcYp7a3QKW0F4vXz3CjOw9clnkf4qkzcL3SK8/B1CZ18VaZ+v+666y455phjYoZMHMxtt90WK/N1QeP9Uy0s0akyagQyV8apqq2CRqYxI3PkKNe+sUKWHD9LpLkwmLnzef2l6xGbRLZWOKswI7P5fJrJcpmbzIM+80m2n/3sZ7LBBhvIxhtvLB9++GFudfCZ+OnTp4fLWme0XbTQSceZ9swzz4j5fOEOO+xQ1uF58+aJeVi+YkU8W/20adOC7MBlDXi0gbb29PHHHwcZso1W5SYTdD5w4MCCT1A+//zzstNOrS/gKJq06bQ+/sBrTidNOs2ePVuGDBkSawWXXHKJnH/++bGy/IVnn31Wdtlll1jxj370I7n44otjZT4vaNLJcGQc4fPZtM43rk/rWPg8x3jPZ3XW+Ua/t46Fz3P0ez6r07Zvc+fOFfMFFJNxLDeZ8Zx5wc1kt8xNWgOZjf/axnvcP+XOOr//opPf+hjvuM8t/N3GR9UGDRoU+yKA+U1j5syZYsrbmoYNGyYvvfRSbJNHH31U9tprr1iZzwvark+My30+m9r2jfFe23x8WYtOviixzg+eG61j4fMczyN8Vmedb+i0joXPc+jkszr1+falL31JzHUtOpnlXXfdNVrk9by2+6daYKJTZdQIZK6MU8VbhY1LcUbm3MEuuehNWfvAktziur/9GqXPA8PWLSuc05iR2WQc2G677QLa5rMA5lPw0eC8LAYyh+1J0TmGTorEqsLVffbZR8zD8uhkAgBNIKCWSWN7qpbtIYccUpAJ+MEHH5SDDjqoWlOpba9Rp/XxB15tOpl2MHLkyNh5feutt8o3v/nNWFn+gnlByowvotOFF14YvEQVLfN1XptOhiPjCF/Ppvr84vpUH7+k9ma8lxTpeD30e3EeWVmi3/NHSZP18t577w0d2nLLLYPxxgUXXJCJQGaN4z3un8LT0esZdPJansA57nP912jVqlVBIgmTfCA3mS88mS89lZvMFyjzX742CV3MMwkNk8brE+NyDWdWcR8Z7xXn4lspOvmmSPX+8NyoemZp7MHziDSoV18nOlXPLI090CkN6tXX+de//lX22GOP2I4mYPbpp5+Olfm8oPH+qVqe6FQ5MQKZK2dV8ZZBI1OekdkcbMuCNbJw5CsiTYVv9/e8fai0H9S1YibebagwI3Nzc7NcddVVQUbFQw89tABpFgOZzUFqu2ihU8GpmYmCk046SW6++ebYsWgK5ss5rq095fyu9O/ee+8tf/nLX2Kbv/jii7LjjjvGynxf0KbT+vgDrzmHNOmUn1XH+H/uueeK+WGwremxxx4ryHZkPkNkPkekZdKkk2HKOELLmVWdn1yfquOV1taM99IhT7+XDnfXtdLvuSZcmf0//vGPsv/++8c2Nl/uOuKII+Sss87KRCCzOTht4z3un2KnpLcL6OStNKFj3OcW/mYTwvFk5pVXXin4Gt6ECRPEvExTbjKZSwe2fnmtpWXdcVYaBF3OdlLrtV2fGJcndWbYrYfxnl2erqyhkyuyydrluVGyvGutjecRtZJLdj90SpZ3rbWhU63kkt0v/2UpU/vtt98uo0ePTtaROmvTdv9U7eGiU+XECGSunFVFW4aNKwMZmc0BL7nsbVk7fVHBsXc6bSPp9o3NCsq1FGjMyFyObRYDmcP2VO7gFa1HJ0ViRVw99thj5Y477oiUiEyePFlOP/30WJnPC1lsT1He5oeNPn36yKJF8WvW8uXLpWtXPS/eaNRpffyBV5tOK1askO7du8d+AOzVq5eYHxU326z0eO7AAw+UP/zhD9GmJq+//roMHTo0VubrgjadKuHIOKISSn5tw/XJLz3a8obxXlt00ltHv5ce+1prpt+rlZzd/dasWSPDhg0Lxm45y/vtt588/PDDwWJWApk1jve4f8qdkX7/RSe/9THecZ/rv0b33Xdf8PJM1FPTto4//vhoUcn5bbfdVmbOnBmuHzx4sMyaNStc9nlG4/WpHE/G5eUIJb+e8V7yzGupEZ1qoebnPjw38lOXqFc8j4jS8HcenfzVJuoZOkVp+Dv/5ptvBokwzUuJucn87jtnzhxp3759rsj7v1m8f4pCR6cojfLzBDKXZ1T1FkEjy0BGZnPgLUubZOG+L7XOrHvz3ZQ37NJFNrhmWzOrc1KYkbkc6Cw+SDLHnLWLFjqVO5P9XD98+HAxmV6i05133ilHH310tMj7+ay1pyjwKVOmyGmnnRYtCn64f+GFF2JlGha06bQ+/sBrziNtOhX79N3uu+8uv/vd72TDDTcsaBqTJk2SM888M1auLfuRRp1iwIssMI4oAsXzIq5PngsUcY/xXgSGR7P0ex6JUaEr9HsVgnK82RVXXCHjxo0La+nQoYOYr9WYoDAzZSWQ2RyLtnE5909GNf8ndPJfI+POAnnTAAA1nUlEQVQh97l+63TvvfeKyToVna677joZM2ZMtKjk/MiRI+XBBx8M1zc2NsratWvDZd9ntF2fyvFkXF6OUPLrGe8lz7yWGtGpFmp+7sNzIz91iXrF84goDX/n0clfbaKeoVOUhr/zZ5xxRpB8L+phpV/Bie7jw3zW7p+iTNEpSqP8PIHM5RlVtUXYuDKSkdkc/IKvtgaBLV33BkcApHej9PnDsKrY+LQxGZl9UqO0L2F7Kr2JujVZfOCXRZ2iJ9Zbb70lgwYNihYFP5S+/fbbsuWWW8bKfV7Isk5///vf5Stf+YqsXLkyJsFdd90lo0aNipX5vqBRp1I/8Jq3P5uamqShoUHMj01ZmjTq9Oyzz8oXv/jFWFZmo8lWW20l5sWMXXfdNZDI6HbxxRfLRRddFJOsW7du8txzz4nJgKRl0qhTObaMI8oR8ms91ye/9GjLG8Z7bdFJdx39Xrr8q62dfq9aYm62f++994IvaCxdujSs4JxzzpHLL788XM5KILPG8R73T+Fp6PUMOnktT+gc97khCi9njD677LJLzLcLLrhAzA/rlUxjx46V66+/Prapli+vabw+xUAXWWBcXgRKikWM91KEX0XV6FQFLM835bmR5wK1usfzCP81Mh6iEzolTSCL4/IcQ/OV6i222EKWLVuWK5LOnTvLO++8UzSBVbiRhzPo5KEoRVxKSicCmYvAr7coEC8jGZkNi4XHviItb66OY+nUTvo8sXO8TNMSGZnVqJVUZ5gUkCw+8DPssqZT9Hy45JJL5MILL4wWyYgRI+TJJ5+MlWlYyJpOZiD+s5/9TG6++eYgYDaqgQlsfvTRR4NzM1quYV6bTvk/8BrGHTt2lNWrPxs7mCDmAQMGyNZbbx28FLDNNtvIMcccE5Rp0KOUj9p0MsdhApTHjx9fcEjmWE488cQg8N8EMJuHSdHJBDGbLEh77rlntFjFvEad2gLLOKItOv6s4/rkjxaVesJ4r1JSyW9Hv5c881pqpN+rhZq7fY4//ni57bbbwgr69+8vM2fOlB49eoRlWQlkNgekbbzH/VN4Gno9g05eyxNzjvvcGA6vFhYsWCB9+/aN+bTddtvJyy+/XNHzOvMSzsSJE2P7f/DBB7LRRhvFynxd0HZ9KseRcXk5QsmuZ7yXLO9aa0OnWsn5tx/PjfzTJOcRzyNyJPz+i05+65PzDp1yJHT8/cUvfiHnnntuzNlvf/vbctNNN8XKtCxk7f4pxx2dciQq/0sgc+WsKtoybFwZysi8eNwsaXpsefz4WwNe+jyjN5CZjMxxOX1dCtuTrw7W4FcWH/hlUaectOZNtqFDh8qHH36YKwr+Xn311XLqqafGynxf0KzTjBkzZOrUqUEm2ZaWFjGZDGbPni1Gn2LTIYccIiYbc5cuXYqt9rpMo07FfuAtB9m8EXraaaeJycTTu3fvcpt7t16jTjmIl112mZx33nm5xbJ/N9tsM7n99tvly1/+ctltfdtAs06lWDKOKEUmnXKuT+lwt10r4z3bRO3ao9+zy7Nea/R79RJ0v7954TZ/3Pbb3/5WjjvuuFjlWQlk1jje4/4pdip6u4BO3kpT1DHuc4ti8aKwV69esmTJkpgvlXxBzXzh64gjjpD7778/tu8bb7xR8OW82AaeLGi8PpVDx7i8HKHk1jPeS451PTWhUz30/NqX50Z+6MHzCD90KOcFOpUj5Md6dPJDh3q8WLNmTZBAbN68eTEzL774ouy4446xMg0LWbx/MtzRqbazj0Dm2ri1uVfQyDKUkXnpr+bKmt8sKDjmPo/tJNKloaBcRQEZmVXIZJzM2kUriw/8sqhTroGYYOVrrrkmtxj83XTTTeW1116Tnj17xso1LGhtTya78uOPP14W8YYbbiiTJ08Ossq2b9++7Pa+bqBNpzvvvFNGjx5dE04TxDx9+nTZe++9a9o/zZ206RRl9fDDD8spp5wib775ZrS4YP7oo4+WG2+8UWV/lzsYzTrljiH6l3FElEb681yf0tfAhgeM92xQdGeDfs8d21os0+/VQi25fUzQ1/Dhw+WFF14IK91jjz3kiSeeCJdzM1kJZDbHo228x/1T7iz0+y86+a1PMe+4zy1GJf2yM888UyZNmhRzpGvXrnLVVVfJySefHCs3C2vXrg2+KjBhwoQgiUF0g4aGBjE/1JsvDWiYtF2fyjFlXF6OUDLrGe8lw7neWtCpXoJ+7c9zIz/04HmEHzqU8wKdyhHyYz06+aFDPV787//+b0HSAvNb+5///Od6zKa6b9bunwxMdKrtlCKQuTZuJfcKG1eGMjIvvfrfsmbaJ/FjbmzNyPzoMJHOOgOZycgcl9PXpbA9+epgDX5l8YFfFnUy0v7zn/+U//qv/5Lm5uaY0uYtxcMOOyxWpmFBs0677767PP300xVhNsHMRx55pJhsPCbri7ZJo05z586V3XbbLciUbQL8+/TpE7Dv2LGjfPTRR/Luu+/K6tWrS0phfoAyb4ga7bRMGnWKsjU/DF555ZUFnxyKbmPmzSdgf/KTn8jYsWNF48sB2nXK18MsM44oRiW9Mq5P6bG3VTPjPVsk3dmh33PHthbL9Hu1UEtunylTpgRfPcnV2NjYKM8++6zstFNrIoK8KSuBzBrHe9w/5Z2Mni6ik6fCtOEW97ltwElxlXkutPXWW8uyZcsKvNh2221l2LBhstVWW8n7778vM2fOlNdff10WL15csG2uwLTNAQMG5Ba9/avx+lQOJuPycoSSWc94LxnO9daCTvUS9Gd/nhv5owXPI/zRoi1P0KktOv6sQyd/tKjVk1122SV45hfdX2sMizmGLN4/meNCJ0Oh+olA5uqZld0jaGQZysi8fNp8WXX1hwXH3eeZz7f2KAXFOgrIyKxDp1Yvs3bRyuIDP3MyZU0n83B91113DTIvRxvLqFGjxHz+UOukVadzzjlHJk6cWBX2LbbYQqZNmyZ77bVXVfv5sLFGnVpaWoKgfxMskT+ZdeYHqalTpwYZs9977738TYKXA8wNlqZJo06Gr8nIZwKTX3311Ypxm88Q/e53v5OBAwdWvI8vG2rVqRQ/xhGlyKRTzvUpHe62amW8Z4ukWzv0e275Vmudfq9aYslt//HHH8uQIUNk4cKFYaUmc9jVV18dLkdnshLIbI5J43iP+6fo2ejvPDr5q02+Z9zn5hPxa9kkGzjvvPOsOLVo0SI1iQs0Xp/aEolxeVt0klnHeK8lGdB11oJOOnSqRGaeG1VCKblteB6RHOt6akKneuglty86JcfaRU3mK9Ymq3Z0Mi+Pzp49W8xXbLROWbt/Qqfaz0QCmWtnV3TPsHFlPSNz+9aMzE/tXJSBhkIyMmtQSeePUeXIZvGBX9jvlTt4JevND1VHH3203HPPPTGPTZZZE/hnNNQ4addp6dKlYrQx05IlS8RkYJkzZ4787W9/k1tuuUVWrFhRIEuXLl3k+eefD37QL1jpaYF2ncphNZmZv/71r8v06dMLNjXZ4r7whS8UlPtYoFUnE0z+ne98R9asWRPDavq3s88+Wz744AO5/vrri2bQ7tevXxDMbLJva5m06tQWX8YRbdFJZx3Xp3S411sr4716CSa3P/1ecqwrrYl+r1JSyW538skny4033hhWar52MmvWLOndu3dYFp3JSiBzFsd7UZ24f4rS8HcendLVhvvcdPlXWvt9990nY8aMCb7cVck+xfp3U9bU1BS8wFKJjTS3KeZ/mv7YqJtxuQ2K9dlgvFcfv6T2RqekSLuth+dGbvnWap3nEbWSS3Y/dEqWd621oVOt5NLfz3w5/P777485ctVVV8mZZ54ZK9O0kMX7J3Sq/QwkkLl2diX3DBpZhjIyLx7/hjQ9tDR+vN0apM+jhZ+mjG/k8RIZmT0WJ+5a1i5aWXzgZxTLkk4mQ4jJFBKdTJbZhx56SPbbb79osbr5LOkUhW8+UzlhwgSZNGlStDiYN5/HMZl5NL2BmFWdcuKYQHTzKRXzZmh0uvnmm+Vb3/pWtMjreW06mZtYE6ycP5kfEn/+85+HQS7mJYFx48bJ3Xffnb+pdO3aVV566aXgs7AFKz0t0KZTOYyMI8oR8ms91ye/9Ih6w3gvSsPvefo9v/XJ945+L59IMsvFPnd8ww03BC+wlfIgK4HM5viyNt7L14z7p3wifi6jUzq6cJ+bDvdaazXjhB/+8IfywAMPyPz58wvMdO/eXbbZZhvZc8895bTTTpOLLrpIbrvttnA783LOggULwmXfZ7J2fWJcnu4Zx3ivXZjkJF0l2q4dnXTo1LaKn63luVEllPzahucRfulRyht0KkXGr3J08kuPqDfmt/Vtt902+EpyrrxHjx4yb9486dmzZ65I5d8s3T+hU32nIIHM9fEr2DtsXBnKyLxw1MvSMjeeua/dJu2l9/07Fhy/lgIyMutQKmxPOtytyMssPvDLkk6TJ0+WM844o0BLU3766acXlGsqyJJOpbh/97vfleuuu65g9aOPPip77bVXQbmPBeuDToa70cnoFZ1MGzNtTcOkTaeZM2fKsGHDYpmWO3bsKFOmTJGTTjqpKHKT6dxokp/t3LzQ8fDDDxfdx7dCbTpVwo9xRCWU/NuG65NfmjDe80uPct7Q75Uj5Od6+r1kddlnn33E3PPkJvPS4DPPPNPmy5xZCWTO4ngvp2P0L/dPURr+zqNTstpwn5ssb9u1vfPOO0F2ZhOYbL6oNmjQINlkk01i1ZgvQpkvseUmE+D82GOP5Ra9/pvF6xPj8nRPOcZ7n32pMV0VyteOTjp0Kqckz43KEfJ7Pc8j/NYn5x065Uj4/Red/NPn1FNPlWuuuSbmmKbf12OORxaydv+EThFxa5glkLkGaOV2CRpZVjIyt95zLNj9eZGm+M1H4z7dpdelg8uh8Hc9GZn91SbPs6xdtLL4wM9IlgWdfvOb38iJJ55Y8Ga/yWA6ceLEvDNT52IWdGqL/Nq1a4O3EN98883YZldccYV8//vfj5X5vJB1nQz7p556SkaMGBGTYeTIkfL73/8+Vubzgiad9t9/f/njH/8Yw3nttdfK2LFjY2X5CyZg+cADDyzoF41+5gdFDZMmnSrhyTiiEkr+bcP1yR9NGO/5o0WlntDvVUrKr+3o95LTY+HChdKnT5+CCocOHVpQFi2YM2eOrFq1Klok0X1MRkzzmUoNX7bJ2ngvJsp/Frh/KkbFvzJ0SlYT7nPjv9ckSz+Z2jbaaKMg2DlXm3m2Z57xaZmydn1iXJ7emcd4T8fvT+ikQ6dyLZnnRuUI+b+e5xH+a2Q8RCd0SpJAVsbl5iXQLbbYIpaAyhybecl38GDFsXv/ORnQKclWUXtdSehEIHPt+hTdMxQtIxmZVz21UJafOafgWDufv6l0PXzjgnItBWRk1qFU2J50uFuRl1l84JcFnWbMmCGjRo0KbpyiQn7rW9+Sm2++OVqkdj4LOlUC32h26623xjbVpOP6otMbb7xRcFP11a9+VR555JGYdr4uaNLp008/FfNZoaamphDn7rvvLk8++WTwEkpYWGLGvMxhPtcbna6++moxb5P6PmnSqVKWjCMqJeXfdlyf0teE8V76GtTiAf1eLdT82Id+LxkdzKcKhwwZ4qQyY9sENPs8ZXG8V4w390/FqPhXhk7JacJ9bvaDmE0m5vwXqG+//XYZPXp0cidaHTVl8frEuLyOE6LOXRnvtStIslAnUie7o5MOndoSn+dGbdHRtY7nETr0Qid0SoJAlsblP//5z+WCCy6IYdOWJCzmfGQBnSIwPJ5NSicCmR2cBIF4GcnIvOi7r0vzs58WUOp1/3bSuEmngnI1BWRkViNVUp1hUkCy+MDPsNOsk8lSeuihhxZkozryyCPlzjvvlMbGxqROD+f1aNapUjiXXHKJXHjhhbHNTzrpJLnxxhtjZT4vrA86Pfjgg2JurqLT4YcfLvfee2+0yOt5LTo9++yzYj4vHp0mTJhQcLMbXR+dL5ZV7JxzzpHLL788upm381p0qhQg44hKSfm3HdendDVhvJcu/3pqp9+rh166+9LvJcP/rbfekkGDBjmp7O2335atttrKiW2bRrM23ivGhvunYlT8K0On5DThPld/sFi5s8UknLjnnnvCzUxfb74mMGDAgLDM95msXZ8Yl6d3xjHe0/H7Ezrp0KlUS+a5USkyOst5HqFDN3RCp6QIZGFcvnr1ahk4cKC8++67MWzmy7r77bdfrEzrAjrpUC4JnQhktnwuhKJlICPz2jmfypLRM0Wa42/4t9u4UXr/v2GWySVrjozMyfKutbawPdVqwMP9svjAT7NOJkDPfIpy+fLlsbPl4IMPFvP2dYcOHWLlmhc061QN9+985zty0003xXYxN8Pnn39+rMzXhfVFp2JvjZ5++ukyefJkX6WJ+aVJpzvuuEOOPfbYmP/XXXedjBkzJlZWamHu3LkFASwmS/PEiRNL7eJNuSadKoXGOKJSUv5tx/UpPU0Y76XH3kbN9Hs2KKZjg34vGe6rVq0KApnnz59vtUITwPz6669Lp05+JzHI4nivmJDcPxWj4l8ZOiWnCfe58d9rkiOfTE0mGNB8Grm5uTmsUFumsSxenxiXh6dj4jOM93S8vIFOOnQq1oB5blSMiu4ynkfo0A+d0CkJAlkZl0+bNk1OPPHEGLLttttOXnnllViZ1gV00qFcUjoRyOzgfAjE056RufUZ0cIjX5KW+WsLCHW+cFPpetjGBeWqCsjIrEaupDrDpIBk8YGfYadRp+eee0723ntvWbx4cUz+ffbZRx544AHp3LlzrDwLCxp1qoa7+bTo9ttvLyZzWHT6v//7PznggAOiRV7PZ10n0+Y+//nPF+h0//33B9nRvRYn4pwWnZ588kn58pe/HPFc5Hvf+55MmjQpVlZq4Q9/+IMceOCBsdW33HKL/M///E+szNcFLTpVyo9xRKWk/NqO61N6ejDeS4+9rZrp92yRTNYO/V6yvE2g18qVK6uq1Hxh49prrw336du3r/z73/8Ol00As5avE2VtvBeK8J8Z7p/yifi5jE7J6sJ9rt5gsXJnypo1a2T06NEFX+wyzyZMMgpNU9auT4zL0z37GO/p6PfQSYdO0dbMc6MojWzM8zxCh47ohE5JEsjCuNz8rv7888/HsFWTtCq2o6cL6OSpMHluJaETgcx50OtdDEXTnJG5NYh58YWzpelPywpxdG+QPo/sJNJQuMqUrJ29XFY+tShY2XlEb2m/Tddgfs2ry2TVEwtl7YvLpV2/DtJhWDfptOsG0rh5OoGCZGQOZPH+v7A9ee9p5Q5m8YGfRp1MZqk999xTPvroo5h4u+++u5hPcHTr1i1WnoUFbTqNHz9ezKdCv//97wcB55VoYDL6Xn311QWbfvDBB7LRRhsVlPtYoE0n86bnkiVLZLfddqsY51FHHSXTp0+Pbd+nTx+ZN2+edOnSJVbu64ImnVasWCG9evWStWvXvZxmeJv2ZTLttTU1NTUFnyR69NFHY5u98MILMmyY/1/n0KRTDHAbC4wj2oCT0CquTwmBtlAN4z0LED0wQb+Xvgj0e+lr4MKDs846S375y1+Gps39krlv0jZpG+9x/6TjDEMn/3XiPjebGZmXLl0q5pmReTYbnT73uc/Jq6++Gi3yfl7b9akSoIzLK6Hk1zaM9/zSo5Q36FSKjPtynhu5Z1xvDTyPqJdgMvujUzKc660FneolmN7+f/7zn+WrX/1qzAHzO+8777wjXbt+Fo8XW6lwIQv3T+hk78QjkNkey9BS0MiUZmRuWbxWFp81S5pfXhUeT3Smy/jNpMvI0sFgi86cKc1PrQh2aRjRVXqcu5UsOXmWtLy/LngmtNeunXQ6tZ90+8ZmYVFiM2RkTgx1vRVl4aIVZZDFB37m+DTptGDBgiAbbDTblDmG4cOHy5/+9Kcg4M8sZ3HSpNMOO+wQfg7FBJ2ffPLJ8rWvfa1okLkZqJ977rly++23F8h25JFHyj333FNQ7nOBJp3MZ2tee+21oE2dffbZQUZlEzRbbHriiSfkhz/8oTz++OMFq2fMmCGHHXZYQbnPBZp0Kvam7s477yxTp04tGZD8ySefyLhx4+TWW2+NydCzZ08x69q3bx8r93VBk06VMGQcUQklt9twfdIRNMF4T4dOlbRW+r1KKLndhn4vO+0peqZkJWDCHJOm8R73TzraEzrp0In7XB06vfnmm3LHHXeIeQax7777isn4X2yaPXu2HHPMMWIyY0Yns715XjtixIhosYp5TdenSoAyLq+Ekl/bMN7zS49S3qBTKTJuy3lupGMcwfMIdHLbE9RvXdN4j/akoz0VOysPOeSQ4Gvi0XU/+MEP5LLLLosWqZ/X1J6KwUanYlRqKyOQuTZuJfcKG5eyjMxN766S5b95V9b+bnFrWuXinXj7kT2l5/hBJY/drFh0Rmsg89OfBTJL30aR5a3pnVcWt5cz1HFMP+n+7c1zi4n81ZqR2QTy5X8yIAfsH//4R242+Gse8hXLlrjHHnvIlVdeGdvW14WwPfnqYAm/0KkEGE+KL730Ujn//POLetOhQ4ei5aUKjz322CAQsNR6n8q1tachQ4aI+REjOplM2bvssosMHDhQ+vfvH2TUNtv8/e9/F/MZovxpwIABQZ/Zu3fv/FXeLmvTaZNNNollbjNt6Etf+lKQ6XfTTTeVlpYWmTNnjsyaNavk9euUU06RKVOmeKtJMce06TRt2jQ58cQTCw7FHMfBBx8cZNQ27aVz584yf/58mTlzpvz2t7+VZcsKv85x9913BxmSCox5WKBNpxxCxhE5En7+5frkpy75XjHeyyfi9zL9nt/60O/5rU+t3mUlYELbeI/7p1rP2GT3Q6dkeddaG/e5tZJLdr/LL79czI/sZurevXvwzOgLX/hC8OW0xsZGef/99+Wvf/2rPPnkk0UdMzqfcMIJRdf5XKjt+pRjybg8RyIbfxnv6dARndLRiedG6XCvtlaeR1RLLJ3t0Skd7tXWik7VEvNje5NMbPvttw9+b895ZO6j3nrrLTG/62Zl0nr/lOOPTjkSdv4SyGyHY8xK0Mg8ysjcMKyztN+j5zofm1qkZclaaV7cJC0frZHmV1uzL5uA4zamdtt0lN6/2V6kNTa5rSkWyJy3Ybv+7aXdph2k+aWVIqsjwc2d20mfP+8k0r5d3h4OFxVmZDbBRD169KgbSpcuXcR8fk/LpO2ihU7+n1ljx46V66+/3oqjW221lbz99ttWbCVhRFN7Mp9IMZ/gqHUyg/i//OUvYl7e0DZp0mnLLbeU/Ozm1fA2P16ZH6xMAK22SZNOhq354dD8gFjPdM4559Rto576a9lXm06MI2pROdl9uD5F7uOSRV9VbYz3dOhkRKXfq+rUTmVj+j097amaEyQrARPmmDWN97h/0tGe0EmHTqb9c59rKPg9TZgwIfg6Vy1emq96/fSnP61lVy/20XR9MsAYl3tx2lh1gvGeVZzOjKGTM7RtGua5kY7xHs8j0KnNhuzBSk3jPdqTjvaUf1qPGTNGbrjhhljxUUcdJSbpVNYmTe0pnz065ROpb5lA5vr4FewdNi6PMjIXOFllQeMBPaTXT7YpG8RszBYNZO7dKD2vGyztB3YJam6av1IWnzCz9cnIuuDpLhdtLl0O6lelZ7VvrjEj88KFC6VPnz61H/R/9uzbt698/PHHddtJwkDYnpKozFId6GQJpEMzp512mrXsr+bHLZNtVsOkrT3961//kuOOO05ef/31qvHuv//+QbBlsaz0VRtLeAdtOo0bN06uuOKKqiltuOGGMn78eDED+2ozoVddmYMdtOlkEDQ3N8vZZ58dvMixcmXrS2VVTL169ZIzzjhDfvzjH4t5SUDLpFEnxhH+n11cn/zXyHjIeE+HTsZL+j3/taLf81+jWjzMSsCEtvEe90+1nK3J74NOyTOvtUbuc2sll9x+t912mxx//PFVVfj5z39eJk6cKHvvvXdV+/m0sbbrk2HHuNynM8iOL4z37HB0bQWdXBMubp/nRsW5+FbK8wjfFCnuDzoV5+JbKTr5pkh5f5YsWSLmi1H5X6V+4oknVCZya+uINd4/5Y4HnXIk7P0lkNkey9BS0Mg8ysgcOlbtTJcG6XzWJtL1axtXvGdBIHNrEPMGt31OGjbsELOx/I73ZNWV74dlHb+9oXQfs0W47HxGYUZmw8QE5b300kt14fnKV74SZCmty0iCO2u8aKFTgidIDVU98MADcswxx8jy5ctr2Du+y6hRo+Suu+6KF3q8pK09mR+kHnroITGfkTTZlT/88MOSdE3G+p122ikItNxvv/1KbqdhhTad/vGPf8jUqVMDrcynbEpN7du3l6233loOP/xwOf/888UEx2qetOmUY/3BBx/I5MmT5brrrpMFCxbkiov+7d+/v5xyyily+umnq9VLo06MI4qejl4Vcn3ySo6izjDe05Vhgn6v6GnsVSH9nldyWHEm/1PK5l7q+eeft2I7aSPaxnvcPyV9htRWHzrVxi2tvbjPTYt8+XrXrl0bJBv49a9/LbNmzSq5g3muN3To0OD5wwknnBBk2y+5sZIV2q5PBivjciUnV4VuMt6rEFTKm6FTOgLw3EjPcyOeR6TTRqqtFZ2qJZbO9uiUDvdaa503b54MGTIkFsh82GGHyYwZM2o16fV+Gu+fDFB0sn9aEchsmWnYuFLKyLzo1Nel+R+f1ndUfRul0zf7SbcjNxFp364qW7FA5sZ2ssHvt5eGvvEgZmOwZdFaWbj/uoDc9iN7Ss/xg6qqq56NNWZkrud4te4btietB7Ce+I1OOoTOgk4zZ86UuXPnBgHNn3zyifTs2VMGDx4c/Nt448pfuvFZMe06ffTRR8ELNybzv9GoqalJBg4cGNxomb8mmDkLk3adchoYnf79738H/+bPnx/oM2DAADHZ5s2/bt265TZV+TcrOqmEX4XTWdCJ61MVgrOpUwJZaE9OAXliPAs60e95cjLV6YYZCy5evFg6deokm266qTQ0NNRpMfndtbcn7p+SP2dqqRGdaqGW3j7c56bHvlzN77//vrz44oti/i5atEi6dOkSPNMzP86b61CWJu3Xpyxp0daxrA86Md5r6wzwZx06+aNF1j3JQr/H8wgdZyk6oZMvBLT3e+YLuybRm3lB1Lz82a9fP1/QWvUDnazidGYsKZ0IZHYgYSBeShmZVz+7WJb9YI7I0ua2j6w1yFhMfHFr1uV23RukYXAn6bBrD+m0W29p7N+p7X3bWBsLZO7cTvo8vnPJrRd8qTXTS/Nnb/w17N5VNvjl0JLbWl+hNCOzdQ4KDCbVGSpA4bWL6OS1PKFz6BSi8HoGnbyWJ3QOnUIUXs+gk9fyhM6hU4jC6xl08lqe0Dl0ClF4PYNOXssTOodOIQqvZ9DJa3lC59ApROH1DDp5LU/oHDqFKLyeQSev5QmdQ6cQhdcz6OS1PKFz6BSi8HoGnbyWJ3QOnUIUXs+gk9fyhM6hU4jC6xl08lqe0LkkdCKQOcRtZyYULaWMzHaOonYrVQUy79kayLzyP4HMu7UGMk9KLpCZjMy1a5zknmF7SrJS6qqaADpVjSyVHdApFexVV4pOVSNLZQd0SgV71ZWiU9XIUtkBnVLBXnWl6FQ1slR2QKdUsFddKTpVjSyVHdApFexVV4pOVSNLZQd0SgV71ZWiU9XIUtkBnVLBXnWl6FQ1slR2QKdUsFddKTpVjSyVHdApFexVV4pOVSNLZQd0SgV71ZWiU9XIUtkBnVLBXnWl6FQ1slR2SEonApkdyBuIl1JGZgeHU5VJLYHMQkbmqnRNc+OkOsM0jzELdaOTDhXRCZ10ENDhJe0JnXQQ0OEl7QmddBDQ4SXtCZ10ENDhJe0JnXQQ0OEl7QmddBDQ4SXtCZ10ENDhJe0JnXQQ0OEl7QmddBDQ4SXtCZ10ENDhJe0JnXQQ0OFlEu2JQGbL50IoGhmZRTq3kz6P71yS8AIyMpdkw4rPCITtCSBeE0Anr+UJnUOnEIXXM+jktTyhc+gUovB6Bp28lid0Dp1CFF7PoJPX8oTOoVOIwusZdPJantA5dApReD2DTl7LEzqHTiEKr2fQyWt5QufQKUTh9Qw6eS1P6Bw6hSi8nkEnr+UJnUOnEIXXM+jktTyhc+gUovB6Bp28lid0Dp1CFF7PoJPX8oTOJaUTgcwhcnszgXhkZPY6kJmMzPbOd9eWkuoMXR9H1u2jkw6F0QmddBDQ4SXtCZ10ENDhJe0JnXQQ0OEl7QmddBDQ4SXtCZ10ENDhJe0JnXQQ0OEl7QmddBDQ4SXtCZ10ENDhJe0JnXQQ0OEl7QmddBDQ4SXtCZ10ENDhZRLtiUBmy+dCKBoZmb0OZG7XeI+0tLRYVh9ztgmE7cm2YexZJYBOVnE6M4ZOztBaNYxOVnE6M4ZOztBaNYxOVnE6M4ZOztBaNYxOVnE6M4ZOztBaNYxOVnE6M4ZOztBaNYxOVnE6M4ZOztBaNYxOVnE6M4ZOztBaNYxOVnE6M4ZOztBaNYxOVnE6M4ZOztBaNYxOVnE6M4ZOztBaNYxOVnE6M4ZOztBaNYxOVnE6M5aUTgQyO5AwEI+MzF4HMpOR2cGJ78hkUp2hI/fXG7PopENqdEInHQR0eEl7QicdBHR4SXtCJx0EdHhJe0InHQR0eEl7QicdBHR4SXtCJx0EdHhJe0InHQR0eEl7QicdBHR4SXtCJx0EdHhJe0InHQR0eEl7QicdBHR4mUR7IpDZ8rkQikZGZq8DmcnIbPnEd2QubE+O7GPWDgF0ssPRtRV0ck3Yjn10ssPRtRV0ck3Yjn10ssPRtRV0ck3Yjn10ssPRtRV0ck3Yjn10ssPRtRV0ck3Yjn10ssPRtRV0ck3Yjn10ssPRtRV0ck3Yjn10ssPRtRV0ck3Yjn10ssPRtRV0ck3Yjn10ssPRtRV0ck3Yjn10ssPRtRV0ck3Yjn10ssPRtZWkdCKQ2YGSgXhkZPY6kJmMzA5OfEcmk+oMHbm/3phFJx1SoxM66SCgw0vaEzrpIKDDS9oTOukgoMNL2hM66SCgw0vaEzrpIKDDS9oTOukgoMNL2hM66SCgw0vaEzrpIKDDS9oTOukgoMNL2hM66SCgw0vaEzrpIKDDyyTaE4HMls+FUDQyMnsdyExGZssnviNzYXtyZB+zdgigkx2Orq2gk2vCduyjkx2Orq2gk2vCduyjkx2Orq2gk2vCduyjkx2Orq2gk2vCduyjkx2Orq2gk2vCduyjkx2Orq2gk2vCduyjkx2Orq2gk2vCduyjkx2Orq2gk2vCduyjkx2Orq2gk2vCduyjkx2Orq2gk2vCduyjkx2Orq2gk2vCduyjkx2Orq0kpROBzA6UDMRbTzMyL75gtjQ9suwzqj0bpM8jO5UkvGC/F0QWNwfrG/ftLr0uGVxyW+srGu6WpBqZdd/XM4PopENwdEInHQR0eEl7QicdBHR4SXtCJx0EdHhJe0InHQR0eEl7QicdBHR4SXtCJx0EdHhJe0InHQR0eEl7QicdBHR4SXtCJx0EdHhJe0InHQR0eEl7QicdBHR4SXtCpxwBAplzJCz9DRvXepqR2WBs/nB1638t0tC3o0iHdqXJrmmR5k9at21oJw0btW6b4ERG5gRh11FV2J7qsMGu7gmgk3vGNmpAJxsU3dtAJ/eMbdSATjYoureBTu4Z26gBnWxQdG8DndwztlEDOtmg6N4GOrlnbKMGdLJB0b0NdHLP2EYN6GSDonsb6OSesY0a0MkGRfc20Mk9Yxs1oJMNiu5toJN7xjZqQCcbFN3bQCf3jG3UgE42KLq3gU7uGduoAZ1sUHRvA53cM7ZRQ1I6EchsQ608G4F462lG5jwU/i6SkdlfbfI8S6ozzKuWxSoJoFOVwFLaHJ1SAl9ltehUJbCUNkenlMBXWS06VQkspc3RKSXwVVaLTlUCS2lzdEoJfJXVolOVwFLaHJ1SAl9ltehUJbCUNkenlMBXWS06VQkspc3RKSXwVVaLTlUCS2lzdEoJfJXVolOVwFLaHJ1SAl9ltehUJbCUNkenlMBXWS06VQkspc3RKSXwVVaLTlUCS2nzJHQikNmyuKFo63FGZstInZgjI7MTrNaNhu3JumUM2iSATjZpurOFTu7Y2rSMTjZpurOFTu7Y2rSMTjZpurOFTu7Y2rSMTjZpurOFTu7Y2rSMTjZpurOFTu7Y2rSMTjZpurOFTu7Y2rSMTjZpurOFTu7Y2rSMTjZpurOFTu7Y2rSMTjZpurOFTu7Y2rSMTjZpurOFTu7Y2rSMTjZpurOFTu7Y2rSMTjZpurOVlE4EMjvQMBCPjMwOyFo0SUZmizDdmkqqM3R7FNm3jk46NEYndNJBQIeXtCd00kFAh5e0J3TSQUCHl7QndNJBQIeXtCd00kFAh5e0J3TSQUCHl7QndNJBQIeXtCd00kFAh5e0J3TSQUCHl7QndNJBQIeXtCd00kFAh5dJtCcCmS2fC6FoZGS2TNauOTIy2+XpylrYnlxVgF0rBNDJCkbnRtDJOWIrFaCTFYzOjaCTc8RWKkAnKxidG0En54itVIBOVjA6N4JOzhFbqQCdrGB0bgSdnCO2UgE6WcHo3Ag6OUdspQJ0soLRuRF0co7YSgXoZAWjcyPo5ByxlQrQyQpG50bQyTliKxWgkxWMzo2gk3PEVipAJysYnRtBJ+eIrVSATlYwOjeSlE4EMjuQMhCPjMwOyFo0SUZmizDdmkqqM3R7FNm3jk46NEYndNJBQIeXtCd00kFAh5e0J3TSQUCHl7QndNJBQIeXtCd00kFAh5e0J3TSQUCHl7QndNJBQIeXtCd00kFAh5e0J3TSQUCHl7QndNJBQIeXtCd00kFAh5dJtCcCmS2fC6FoZGS2TNauOTIy2+XpylrYnlxVgF0rBNDJCkbnRtDJOWIrFaCTFYzOjaCTc8RWKkAnKxidG0En54itVIBOVjA6N4JOzhFbqQCdrGB0bgSdnCO2UgE6WcHo3Ag6OUdspQJ0soLRuRF0co7YSgXoZAWjcyPo5ByxlQrQyQpG50bQyTliKxWgkxWMzo2gk3PEVipAJysYnRtBJ+eIrVSATlYwOjeSlE4EMjuQMhCPjMwOyFo0SUZmizDdmkqqM3R7FNm3jk46NEYndNJBQIeXtCd00kFAh5e0J3TSQUCHl7QndNJBQIeXtCd00kFAh5e0J3TSQUCHl7QndNJBQIeXtCd00kFAh5e0J3TSQUCHl7QndNJBQIeXtCd00kFAh5eJtKcWJqsEWk+twB5/4WBOBM4DzgPOA9oB/QD9AP0A/QD9AP0A/QD9AP0A/QD9AP0A/QD9AP0A/QD9AP0A/QD9AP0A/QD9AP0A/QD9AP0A/QD9AP0A/QD9AP0A/QD9AP2A1n7AnLsup896B5c1rIe2tZ5s+M3F0jRXzgPOA84D2gH9AP0A/QD9AP0A/QD9AP0A/QD9AP0A/QD9AP0A/QD9AP0A/QD9AP0A/QD9AP0A/QD9AP0A/QD9AP0A/QD9AP0A/QD9AP0A/UCuHzDngqupnTHcWhETBCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAIHECBDInBhqKoIABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAARyBAhkzpHgLwQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIJAYAQKZE0NNRRCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgECOAIHMORL8hQAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABBIjQCBzYqipCAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEMgRIJA5R4K/EIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAQGIECGRODDUVQQACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAjkCBDLnSPAXAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQSIwAgcyJoaYiCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAIEeAQOYcCf5CAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACiREgkDkx1FQEAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEI5AgQyJwjwV8IQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAgMQIEMieGmoogAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIACBHAECmXMk+AsBCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQgkRoBA5sRQUxEEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCCQI0Agc44EfyEAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAIHECBDInBhqKoIABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAARyBAhkzpHgLwQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIJAYAQKZE0NNRRCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgECOAIHMORL8hQAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABBIjQCBzYqipCAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEMgRIJA5R4K/EIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAQGIECGRODDUVQQACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAjkCBDLnSPAXAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQSIwAgcyJoaYiCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAIEeAQOYcCf5CAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACiREgkDkx1FQEAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEI5AgQyJwjwV8IQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAgMQIEMieGmoogAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIACBHAECmXMk+AsBCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQgkRoBA5sRQUxEEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCCQI/D/AXS7PVttGH42AAAAAElFTkSuQmCC\" data-image-state=\"image-loaded\"\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; 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=\"\"\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: 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=\"font-weight: 700; \"\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; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eThe following restrictions apply:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cul style=\"block-size: 100px; font-family: Helvetica, Arial, sans-serif; list-style-type: square; margin-block-end: 20px; margin-block-start: 10px; margin-bottom: 20px; margin-top: 10px; perspective-origin: 391px 50px; transform-origin: 391px 50px; margin-top: 10px; margin-bottom: 20px; \"\u003e\u003cli style=\"background-position-x: 0px; background-position-y: 50%; block-size: 20px; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10px; text-align: left; transform-origin: 363px 10px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"background-position-x: 0%; background-position-y: 0%; block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eThe function should only have one (1) line of code, excluding the function start line.\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"background-position-x: 0px; background-position-y: 50%; block-size: 20px; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10px; text-align: left; transform-origin: 363px 10px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"background-position-x: 0%; background-position-y: 0%; block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eSemicolons (\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"background-position-x: 0%; background-position-y: 0%; block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e;\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"background-position-x: 0%; background-position-y: 0%; block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e) are considered end-of-line characters.\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"background-position-x: 0px; background-position-y: 50%; block-size: 20px; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10px; text-align: left; transform-origin: 363px 10px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"background-position-x: 0%; background-position-y: 0%; block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003ePlease suppress the function end line. Keyword '\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"background-position-x: 0%; background-position-y: 0%; block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; font-weight: 700; \"\u003eend'\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"background-position-x: 0%; background-position-y: 0%; block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e is not allowed.\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"background-position-x: 0px; background-position-y: 50%; block-size: 20px; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10px; text-align: left; transform-origin: 363px 10px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"background-position-x: 0%; background-position-y: 0%; block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eImporting libraries is not allowed.\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"background-position-x: 0px; background-position-y: 50%; block-size: 20px; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10px; text-align: left; transform-origin: 363px 10px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"background-position-x: 0%; background-position-y: 0%; block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eRegular expressions and string manipulation are not allowed.\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003c/ul\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function d = D(n)\r\n  y = x;\r\nend","test_suite":"%%\r\nn = 1:25;\r\nd_correct = [1 1 2 3 5 8 1 3 2 1 3 4 5 5 8 9 1 4 4 2 3 3 3 7 7];\r\nassert(isequal(D(n),d_correct))\r\n%%\r\nn = 100:100:1000;\r\nd_correct = [0 4 3 7 4 0 7 9 7 8];\r\nassert(isequal(D(n),d_correct))\r\n%%\r\nn = 1000:1000:10000;\r\nd_correct = [8 9 7 6 8 1 0 4 3 4];\r\nassert(isequal(D(n),d_correct))\r\n%%\r\nn = 10000:10000:100000;\r\nd_correct = [4 7 9 9 9 6 3 7 9 1];\r\nassert(isequal(D(n),d_correct))\r\n%%\r\nn = 100000:100000:1000000;\r\nd_correct = [1 9 2 5 9 3 2 8 9 3];\r\nassert(isequal(D(n),d_correct))\r\n%%\r\nn = 1000000:1000000:10000000;\r\nd_correct = [3 5 7 3 3 5 8 2 9 1];\r\nassert(isequal(D(n),d_correct))\r\n%%\r\nn = 10000:10000:10000000;\r\nh_correct = [100 96 109 85 105 115 82 107 100 101];\r\nassert(isequal(histc(D(n),0:9),h_correct))\r\n%%\r\nfiletext = fileread('D.m');\r\nnot_allowed = contains(filetext, 'import') || contains(filetext, 'str2') || contains(filetext, 'num2') || contains(filetext, 'sprintf') || contains(filetext, 'regex') || contains(filetext, 'eval') || contains(filetext, 'assignin') || contains(filetext, 'end');\r\nassert(~not_allowed)\r\nc = 0;\r\nfor s = deblank(strtrim(splitlines(filetext)))'\r\n    if ~isempty(s{1}) \u0026\u0026 ~isequal(s{1}(1),'%')\r\n        c = c + numel(find(s{1}==';'));\r\n        if  ~isequal(s{1}(end),';')\r\n            c = c + 1;\r\n        end\r\n    end\r\nend\r\nassert(c\u003c=2)","published":true,"deleted":false,"likes_count":0,"comments_count":1,"created_by":255988,"edited_by":255988,"edited_at":"2023-03-10T18:11:52.000Z","deleted_by":null,"deleted_at":null,"solvers_count":2,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2023-03-09T11:37:24.000Z","updated_at":"2026-10-17T18:52:37.000Z","published_at":"2023-03-10T18:10:42.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\u003eFor a given index \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\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003ex\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e, the \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\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003ex\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e-th \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://en.wikipedia.org/wiki/Fibonacci_number\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eFibonacci number, \u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:customXml w:element=\\\"equation\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"displayStyle\\\" w:val=\\\"false\\\"/\u003e\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003eF_x\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e is defined as: \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\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003eF_x=1\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e 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\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003ex=1\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e or \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\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003e2\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e, and \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\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003eF_x=F_{x-1}+F_{x-2}\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e 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\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003ex\u0026gt;2\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\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\u003eWhat this problem requires is find the digit \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\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003eD_{n}\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e, which is the \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\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:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e-th digit when the Fibonacci numbers are laid side by side\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\u003eFor 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\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003en=5\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e, \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\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003eD_5=5\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e, and if \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\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003en=25\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e, \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\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003eD_{25}=7\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"verticalAlign\\\" w:val=\\\"baseline\\\"/\u003e\u003cw:attr w:name=\\\"altText\\\" w:val=\\\"\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId1\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e--------------------------------\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eNOTE: \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003eThe following restrictions apply:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe function should only have one (1) line of code, excluding the function start line.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eSemicolons (\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e;\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e) are considered end-of-line characters.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ePlease suppress the function end line. Keyword '\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eend'\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e is not allowed.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eImporting libraries is not allowed.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eRegular expressions and string manipulation are not allowed.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\",\"relationship\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"target\":\"/media/image1.png\",\"relationshipId\":\"rId1\"}]},{\"partUri\":\"/media/image1.png\",\"contentType\":\"image/png\",\"content\":\"data:image/png;base64,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EEAAAQQQQAABBBBIuwALmdNOzoQIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgggwEJmXgMIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgggkHYBFjKnnZwJEUAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQICFzLwGEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQCDtAixkTjs5EyKAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAC5l5DSCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBA2gVYyJx2ciZEAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAARYy8xpAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAgbQLsJA57eRMiAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIsZOY1gAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAJpF2Ahc9rJmRABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEWMjMawABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEE0i7AQua0kzMhAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCLCQmdcAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCKRdgIXMaSdnQgQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBg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HXfIAQccUPZuq7ZtfT+tWrVKXnjhBRk+fLh88803UlRUFOdeu3Zt6d69u9x5553Sp0+fuPtt2mFbTlu2bJFzzz1XJkyYkBLzWWedJffff39KjzX5INtyKm21detWefjhh2XIkCEye/Zscc+FZb/cD0S5H+b461//KgMHDix7tzXbUc5J5fcFtp8no5KTie8LVL4OdL8xo5KTydf7s88+W/w9ofuhKneRnmtSr149OeOMM+SZZ57RHUGg+qZz0v19ge76gZAVDDKdU+mnoPv7guXLlxe/b0aMGCELFiwoPXXxbdeiZcuWctVVV8kll1wi+fn5cWNM7UhnTun674Hu85ju+oleC7py0v19ge7/numunyiLZPt05aTjeV5xxRXF14mSPZ+g99WpU0dGjRol++yzj/cQ3fW9iVK4oSunFA6FhyCAAAIIIIAAAggggAACCCCAAAIIZJkAC5kVB+5d7ItYR2ZVC5lz2jodmf9LR2bFL5uUy7mdRm6++WZ59NFHZdeuXb46AwYMkKFDh/r22bbhvZ9sO/Ayx0tOZUAisOkuhH3wwQfl3nvvLe7qG+SQ8vLy5Morr5Tbb79datasGeQhkRpj4/tp+/btxQuT3QWXiRZalgd89tlny+DBg63sKGtjTiNHjpSTTz65vDgq3O9+WMBdEGbTl405xXxffPHF4u8d/o+9MwGzojj398fOgICA4o4issQFNRCTqHGNxi3xuqAYNeTmGuG6RCUStyTGJLhcRQOPqLgGboyiosR/wKvGkKhJTNS4K+BKhLig7JssM3+qk26655xheqmtz7z9PPOc7jpVX1W9v+rqmj5ff52F+T777CM33XSTDB48ODRTik9fddK5LqiFedIHnVysC3SOAxsnpA86uR7vKnL97rvvLqodjbdevXqJctZ0vfmgk+l1gWn7NjT0Qaewn6bXBdOmTZMzzzwzisAc1tvUp4rQrB5gPOCAA5rKYi3dlk42rwem5zHT9quJb0In0+sC09cz0/ar6dBcmgmdTPazZ8+eqe8VNdd39f2UKVPkpJNOirKath9VlHHHhE4Zm0B2CEAAAhCAAAQgAAEIQAACEIAABCAAgRZMAEdmA+IHN/3KEJG5rrW02rpNJgIdv72V1B25ZaYyXmaugYjMjz32WBCFWb2atdpWC47Mql9lv4mOTtVGp/u04447TtSP6nm2I488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p3g72IcABCAAAQhAAAIQgAAEIAABCEAAAhBomQRwZDage3DTj4jMBshqNElEZo0wzZqqtZvoun6YNEs9u/Va0ylO4Morr5TLLrssniT77befPP3004m0MhzUmk7qh8Gf//zncscddwQOs3ENlGPzzJkzA6fzeHoZ9sumU2OHIsW4ffv2smbNmgC3cmLu3bu37LzzzsFDAbvssoucfPLJQVoZ9GiqjWXTSfVDOShffvnlFV1SfRk+fHjg+K8cmNWP/fFNOTGr6IgHHHBAPLkU+77rZHpdUJZ50ned4oPdxLrA9DiIt7/Ivu866Rrvp512mtx9990Rqm222UZmz54tXbp0idJ8dWRWDXStk+l1gWn7kciGd1zrpLpnYl2wcOFC6dmzZ4LerrvuKq+++mqqdbl6aGDs2LGJ8h999JH06tUrkWbrwLZOuq4Hpucx0/az6mtbp3j7TKwLdF3P4u2M75u2H68rvm9bJ1v9/J//+R+56KKL4l2V//qv/5Lbb789kZb3wLT9xu2yrVPj+jmGAAQgAAEIQAACEIAABCAAAQhAAAIQaLkEcGTWrH10s68EEZnbHNhZOhyV/IFpUzja9q6Ttn07bSpLab4jInM5pIrOp3I0N1Urdf0wmaoyS5lqUacQnYp8M2DAAPn444/DpODzxhtvlLPPPjuR5vtBmXWaNm2aTJo0KYgk29DQICoC2JtvvilKn2rbMcccIyoac11dXbWvvU4ro07VHIqag6wiVJ1zzjmiIvR17969uezefV9GnUKI11xzjVx88cXhYbOf2223ndxzzz3yla98pdm8vmUog0661gVlnifLoFM4tk2tC3SNg7CdJj590snkeFcPqjWe7371q1/JqaeemsDqqyOzDzqZXheYtp8Q2tCBDzqFXTOxLujWrZssXbo0rCL4TPOmFPUmj+OPP14efvjhRNm33nqr4g05iQyGDlzopON6YHoeM20/q5wudArbWHRdYPJ6ptpo2n7IIc2nSZ1c9nPt2rXBA7vz5s1LYHj55Zdljz32SKTlOTBtv3GbTOrUuC6OIQABCEAAAhCAAAQgAAEIQAACEIAABCDQmACOzI2JaDgObvqVICJz5q62bSU9ntpLpBbeDk9E5szyuypQazfRdfww6UqLTdVbazqFfVXOyjfddFN4GHxuu+228sYbb0jXrl0T6WU4KKtOKrryk08+2SziLbbYQsaPHx9ElW3btm2z+X3NUDadpkyZIsOGDcuFUzkxT506VQ4++OBc5V0WKptOcVaPPfaYnHXWWfL222/Hkyv2TzrpJLnttttKOd+FnfFdJ13rgrLPk77rFI4nU+sCXeMgbKepT190MjXelRPl4MGD5aWXXooQ7r///vLUU09Fx+GOr47Mqn2udTK9LjBtP9TY9KdrneL9070uOP/882XcuHHxKqRTp05yww03yJlnnplIVwfr1q0LoqCPGTMmeFgxnqF169aiHARVZHQXm22dil4PTM9jpu3n1di2TmE7i64LTF3PwvaZth/Wk/bTlE4u+/nrX/+64mEn9b/t73//+7RYNpnPtP1qlZvSqVpdpEEAAhCAAAQgAAEIQAACEIAABCAAAQhAIE4AR+Y4DQ370c2+EkRkztPd7o/uLq26t8tT1KsyRGT2So4mGxOdT03mKN8XRX+Y9LHHtaiT4vzcc8/JF7/4Ramvr09gV9F+jj322ERaGQ7KrNO+++4rf/nLX1JhVs7MJ5xwgqjocioaXNm2Muo0d+5c+fKXvxxEylYO/j169AjYt2/fXhYsWCD//Oc/Zc2aNU1KoRxTVMQqpV1ZtjLqFGerHIauv/76ilcgx/OoffVq+J/85CcycuRIKePDAWXQSde6oMzzZBl0UueDyXWBrnGg2mlq80knU+N9woQJwdsCQoZt2rSR559/Xvbcc88wKfr01ZHZB51MrwtM249ENrjjg07x7uleF6j138477yzLly+PVxPsDxw4UAYNGiQ77bSTfPjhhzJ79myZNWuWLFmypCJvmKA07927d3ho7dOFTkWvB6bnMdP284jrQifVTh3rAlPXs5CjafthPWk+Terksp9DhgwJ1gpxBjrvGZm2H2+32jepU+O6OIYABCAAAQhAAAIQgAAEIAABCEAAAhCAQGMCODI3JqLhOLjpV4sRmTew6f74HtKqW3mjXEbyEpE5QuH7Tq3dRC/6w6SvetWaTupH93322SeIvBxnPnToUFGvRS7rVladLrzwQhk7dmwm7DvssINMnjxZDjrooEzlfMhcRp0aGhoCp3/l9NV4U98pR5VJkyYFEbM/+OCDxlmChwPUD75l2sqok+KrIosqx+TXX389NW71WuTf/OY30qdPn9RlfMnou0661gVlnyd918n0ukDXODB93vmik4nx/sknn0j/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cII88MADFek+J5RJJ/Ua3TfeeCM4p0aNGhVEVFZOs9W2p556Sn74wx/Kk08+WfH1tGnT5Nhjj61I9zmhTDpVi+y11157yaRJk5p0SP70009l9OjRctdddyVk6Nq1q6jv2rZtm0j39cB3nYqsC2ppnnSpkw/rgiLjwOa551In38a7LQe9PPq61Mn0usC0/Ty885ZxqZPpdcHbb78t9957r6i1xle/+lVREcqrbW+++aacfPLJoiLfxjeVX/1ftt9++8WTnezb1snm9cD0PGbafnxA6NTJ9LrA9PXMtP0496z7OnVy0c9jjjkmeHtXvN8/+MEP5Jprrokn5d43bT9tw3TqlLZO8kEAAhCAAAQgAAEIQAACEIAABCAAAQhAQBHAkVnzOIhu9tV6ROY1DbLwyJdFlm0Is/zvre2Jm0vXH/QJD4PPxWfPkvpnV0Vp7Yb3lC5n946OXe2UNSKzcuRr/ArDkOGzzz4b7gaf6se/atES999/f7n++usTeX09iM4nXxvYRLvQqQkwniRfffXVcskll1RtTbt27aqmN5V4yimnBI6ATX3vU3rZzqf+/fuLcm6IbypS9pAhQ6RPnz6yzTbbBBG1VZ6//e1vol4T23jr3bt3MGd279698VfeHpdNp6233joRgVKdQ1/60peCSL/bbrutNDQ0yHvvvSdz5sxp8vp11llnyYQJE7zVpFrDyqbT5MmTZfjw4RVdUf046qijgoja6nzp2LGjzJ8/X2bPni2/+tWvZPny5RVl7r///iByYsUXHib4opOpdUGtzJOudbK1LjA1Dmydeq518m2823TQy6Kxa51MrwtM28/Cukhe1zqZXhdce+21opz71LbZZpsFa8PPf/7zwRtS2rRpIx9++KH86U9/kqeffroqRtW+008/vep3NhNN6eTL9cD0PGbafjgWdOtkel1g+npm2n7IPeunbp1s91M9vLvbbrsF/9+GfVfz2TvvvCPq/6iim2n7adunW6e09ZIPAhCAAAQgAAEIQAACEIAABCAAAQhAAAKKAI7MBsZBcNOvxiMyK2yrn14oK0fN3UiwdSvpes8AadvnX6+FX/3khu8vjH2/RRvp8f82vIa8zcYizvZKGJFZORN16dKlMLK6ujpRr5Mty1a2m+jo5P/IGjlypEycOFFLQ3faaSd59913tdiyYaRM55N6Zat6tWreTf2o+Ic/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nnves//7+yW7MzvzP2efZ85h93jmbMkO74/wBwIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIGCZRgIrNB2igKBEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABECgggAmMuNCAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQME4AE5mNI0eBIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACmMiMawAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQMA4AUxkNo4cBYIACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACGAiM64BEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAAB4wQwkdk4chQIAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiCAicy4BkAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABIwTwERm48hRIAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAACYy4xoAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAwTgATmY0jR4EgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAKYyIxrAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARA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\",\"relationship\":null}],\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"target\":\"/matlab/document.xml\",\"relationshipId\":\"rId1\"}]}"}],"problem_search":{"problems":[{"id":2053,"title":"Strange Number Algorithms","description":"Three integer numbers will be provided to you. Write a function to \r\n\r\n Step1: Multiply first number by 3.\r\n Step2: Add 6 with the getting result.\r\n Step3: divide it by 3.\r\n Step4: Subtract the first number.\r\n\r\n Step1: Double the second number.\r\n Step2: Add 9 with result.\r\n Step3: Subtract 3 with the result.\r\n Step4: Divide the result by 2.\r\n Step5: Subtract the result with the second number.\r\n\r\n Step1:Add 7 to the third number.\r\n Step2:Multiply the number with 2.\r\n Step3:Subtract 4 from the result.\r\n Step4:Divide the result by 2.\r\n Step5:Subtract the third number from the result.\r\n\r\nReturn a single row matrix with the three answers.\r\n\r\n","description_html":"\u003cp\u003eThree integer numbers will be provided to you. Write a function to\u003c/p\u003e\u003cpre\u003e Step1: Multiply first number by 3.\r\n Step2: Add 6 with the getting result.\r\n Step3: divide it by 3.\r\n Step4: Subtract the first number.\u003c/pre\u003e\u003cpre\u003e Step1: Double the second number.\r\n Step2: Add 9 with result.\r\n Step3: Subtract 3 with the result.\r\n Step4: Divide the result by 2.\r\n Step5: Subtract the result with the second number.\u003c/pre\u003e\u003cpre\u003e Step1:Add 7 to the third number.\r\n Step2:Multiply the number with 2.\r\n Step3:Subtract 4 from the result.\r\n Step4:Divide the result by 2.\r\n Step5:Subtract the third number from the result.\u003c/pre\u003e\u003cp\u003eReturn a single row matrix with the three answers.\u003c/p\u003e","function_template":"function amat = strange(n)\r\n  amat = n(1)-n(1)*3+6/3;\r\nend","test_suite":"%%\r\nn = [1 10 100];\r\na(1)=(((n(1)*3)+6)/3)-n(1);\r\na(2)=(((n(2)*2)+9)-3)/2-n(2);\r\na(3)=(((n(3)+7)*2)-4)/2-n(3);\r\ny_correct = a;\r\nassert(isequal(strange(n),y_correct))\r\n%%\r\nn = [0 499 999];\r\na(1)=(((n(1)*3)+6)/3)-n(1);\r\na(2)=(((n(2)*2)+9)-3)/2-n(2);\r\na(3)=(((n(3)+7)*2)-4)/2-n(3);\r\ny_correct = a;\r\nassert(isequal(strange(n),y_correct))\r\n%%\r\nn = [999 666 333];\r\na(1)=(((n(1)*3)+6)/3)-n(1);\r\na(2)=(((n(2)*2)+9)-3)/2-n(2);\r\na(3)=(((n(3)+7)*2)-4)/2-n(3);\r\ny_correct = a;\r\nassert(isequal(strange(n),y_correct))\r\n%%\r\nn = [7 63 347];\r\na(1)=(((n(1)*3)+6)/3)-n(1);\r\na(2)=(((n(2)*2)+9)-3)/2-n(2);\r\na(3)=(((n(3)+7)*2)-4)/2-n(3);\r\ny_correct = a;\r\nassert(isequal(strange(n),y_correct))\r\n","published":true,"deleted":false,"likes_count":2,"comments_count":0,"created_by":17471,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":101,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2013-12-15T06:55:46.000Z","updated_at":"2026-02-20T14:09:20.000Z","published_at":"2013-12-15T06:56:52.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThree integer numbers will be provided to you. Write a function to\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[ Step1: Multiply first number by 3.\\n Step2: Add 6 with the getting result.\\n Step3: divide it by 3.\\n Step4: Subtract the first number.\\n\\n Step1: Double the second number.\\n Step2: Add 9 with result.\\n Step3: Subtract 3 with the result.\\n Step4: Divide the result by 2.\\n Step5: Subtract the result with the second number.\\n\\n Step1:Add 7 to the third number.\\n Step2:Multiply the number with 2.\\n Step3:Subtract 4 from the result.\\n Step4:Divide the result by 2.\\n Step5:Subtract the third number from the result.]]\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\u003eReturn a single row matrix with the three answers.\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":61490,"title":"Determine if a credit card number conforms to American Express, Visa, or Mastercard schema or if it fails to conform to any of these.","description":"When you pay for things online, sometimes when you enter your credit card number, the online merchant is able to instantly identify whether the card number you're entering is a valid American Express, Visa, or Mastercard number. After completing this problem, you'll be able to do the same.\r\nHere are the rules for each credit card type:\r\nFor American Express:\r\nThe card number begins with either 34 or 37.\r\nThe card number is 15 digits.\r\nFor Visa:\r\nThe card number begins with 4.\r\nThe card number is 13, 16, or 19 digits.\r\nFor Mastercard:\r\nThe first two digits are 51–55, or the first four digits are 2221–2720.\r\nThe card number is 16 digits.\r\nOn top of these requirements, the credit card number must pass what's called a Luhn check, which is a practical implementation of Luhn's algorithm.\r\nWrite MATLAB code that determines if a credit card number conforms to American Express's rules, Visa's, Mastercard's, or none of the above. You will simply return one of the following responses:\r\n'American Express'\r\n'Visa'\r\n'Mastercard'\r\n'Invalid'\r\nYour output must match one of these exactly, including spelling and capitalization.\r\nThe input ccNum is a character array containing only digits.\r\nEXAMPLE:\r\nHere's an example of a Luhn check on a valid American Express number:\r\n    ccNum = '375981264037217'\r\nThe last digit is referred to as the check digit and the rest of the digits are referred to as the payload. Identify the digits that fall into these categories. In this case, 7 is the check digit and 37598126403721 is the payload.\r\nCounting from the right, with the rightmost payload digit as position 1, double the digits in positions 1, 3, 5, and so on:\r\n    [3 14 5 18 8 2 2 12 4 0 3 14 2 2];\r\n         3. If any number is greater than 9, subtract 9 from it. \r\n    [3 5 5 9 8 2 2 3 4 0 3 5 2 2]; \r\n         4. Sum the digits in the result, which in this case is 53.\r\n         5. Check if this sum + the check digit, 7, is a multiple of 10. Since 53 + 7 = 60, which is a multiple of 10, this combined with the fact that prefix of this credit card number is 37 and the fact that the original credit card number is 15 digits in length confirms that this is an American Express card number. In which case, you will return:\r\n    ccType = 'American Express' \r\nIf you appreciated this problem, please consider rating its difficulty and liking!","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.44px; min-height: 0px; white-space: normal; color: rgb(33, 33, 33); font-family: Menlo, Monaco, Consolas, monospace; font-style: normal; font-size: 14px; font-weight: 400; text-decoration: none; white-space: normal; \"\u003e\u003cdiv style=\"block-size: 1038.44px; display: block; min-width: 0px; padding-block-start: 0px; padding-inline-start: 2px; padding-left: 2px; padding-top: 0px; perspective-origin: 468.5px 519.219px; transform-origin: 468.5px 519.219px; 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; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 444.5px 31.5px; text-align: left; transform-origin: 444.5px 31.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eWhen you pay for things online, sometimes when you enter your credit card number, the online merchant is able to instantly identify whether the card number you're entering is a valid American Express, Visa, or Mastercard number. After completing this problem, you'll be able to do the same.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 444.5px 10.5px; text-align: left; transform-origin: 444.5px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eHere are the rules for each credit card type:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 444.5px 10.5px; text-align: left; transform-origin: 444.5px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eFor \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eAmerican Express:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003col style=\"block-size: 40.875px; font-family: Helvetica, Arial, sans-serif; list-style-type: decimal; margin-block-end: 20px; margin-block-start: 10px; margin-bottom: 20px; margin-top: 10px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 451.5px 20.4375px; transform-origin: 451.5px 20.4375px; margin-top: 10px; margin-bottom: 20px; \"\u003e\u003cli style=\"block-size: 20.4375px; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 423.5px 10.2188px; text-align: left; transform-origin: 423.5px 10.2188px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe card number begins with either 34 or 37.\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4375px; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 423.5px 10.2188px; text-align: left; transform-origin: 423.5px 10.2188px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe card number is 15 digits.\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003c/ol\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 444.5px 10.5px; text-align: left; transform-origin: 444.5px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eFor \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eVisa\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003col style=\"block-size: 40.875px; font-family: Helvetica, Arial, sans-serif; list-style-type: decimal; margin-block-end: 20px; margin-block-start: 10px; margin-bottom: 20px; margin-top: 10px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 451.5px 20.4375px; transform-origin: 451.5px 20.4375px; margin-top: 10px; margin-bottom: 20px; \"\u003e\u003cli style=\"block-size: 20.4375px; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 423.5px 10.2188px; text-align: left; transform-origin: 423.5px 10.2188px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe card number begins with 4.\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4375px; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 423.5px 10.2188px; text-align: left; transform-origin: 423.5px 10.2188px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe card number is 13, 16, or 19 digits.\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003c/ol\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 444.5px 10.5px; text-align: left; transform-origin: 444.5px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eFor \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eMastercard:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003col style=\"block-size: 40.875px; font-family: Helvetica, Arial, sans-serif; list-style-type: decimal; margin-block-end: 20px; margin-block-start: 10px; margin-bottom: 20px; margin-top: 10px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 451.5px 20.4375px; transform-origin: 451.5px 20.4375px; margin-top: 10px; margin-bottom: 20px; \"\u003e\u003cli style=\"block-size: 20.4375px; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 423.5px 10.2188px; text-align: left; transform-origin: 423.5px 10.2188px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe first two digits are 51–55, or the first four digits are 2221–2720.\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4375px; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 423.5px 10.2188px; text-align: left; transform-origin: 423.5px 10.2188px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe card number is 16 digits.\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003c/ol\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 444.5px 21px; text-align: left; transform-origin: 444.5px 21px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eOn top of these requirements, the credit card number must pass what's called a \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003eLuhn check\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e, which is a practical implementation of \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://en.wikipedia.org/wiki/Luhn_algorithm\"\u003e\u003cspan style=\"border-block-end-color: rgb(0, 91, 130); border-block-start-color: rgb(0, 91, 130); border-bottom-color: rgb(0, 91, 130); border-inline-end-color: rgb(0, 91, 130); border-inline-start-color: rgb(0, 91, 130); border-left-color: rgb(0, 91, 130); border-right-color: rgb(0, 91, 130); border-top-color: rgb(0, 91, 130); caret-color: rgb(0, 91, 130); color: rgb(0, 91, 130); column-rule-color: rgb(0, 91, 130); outline-color: rgb(0, 91, 130); row-rule-color: rgb(0, 91, 130); text-decoration-color: rgb(0, 91, 130); text-emphasis-color: rgb(0, 91, 130); \"\u003e\u003cspan style=\"\"\u003eLuhn's algorithm.\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 444.5px 21px; text-align: left; transform-origin: 444.5px 21px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eWrite MATLAB code that determines if a credit card number conforms to American Express's rules, Visa's, Mastercard's, or none of the above. You will simply return one of the following responses:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgb(247, 247, 247); block-size: 72px; 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; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 464.5px 36px; transform-origin: 464.5px 36px; margin-left: 3px; margin-top: 10px; margin-bottom: 10px; \"\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 18px; 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; font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; line-height: 18.004px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 464.5px 9px; text-wrap-mode: nowrap; transform-origin: 464.5px 9px; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(33, 33, 33); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(33, 33, 33); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(33, 33, 33); border-left-style: none; border-left-width: 0px; border-right-color: rgb(33, 33, 33); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 0px 0px; tab-size: 4; transform-origin: 0px 0px; unicode-bidi: normal; white-space-collapse: preserve; \"\u003e\u003cspan style=\"border-block-end-color: rgb(133, 22, 209); border-block-start-color: rgb(133, 22, 209); border-bottom-color: rgb(133, 22, 209); border-inline-end-color: rgb(133, 22, 209); border-inline-start-color: rgb(133, 22, 209); border-left-color: rgb(133, 22, 209); border-right-color: rgb(133, 22, 209); border-top-color: rgb(133, 22, 209); caret-color: rgb(133, 22, 209); color: rgb(133, 22, 209); column-rule-color: rgb(133, 22, 209); margin-inline-end: 0px; margin-right: 0px; outline-color: rgb(133, 22, 209); row-rule-color: rgb(133, 22, 209); text-decoration-color: rgb(133, 22, 209); text-emphasis-color: rgb(133, 22, 209); \"\u003e'American Express'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 18px; 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; font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; line-height: 18.004px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 464.5px 9px; text-wrap-mode: nowrap; transform-origin: 464.5px 9px; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(33, 33, 33); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(33, 33, 33); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(33, 33, 33); border-left-style: none; border-left-width: 0px; border-right-color: rgb(33, 33, 33); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 0px 0px; tab-size: 4; transform-origin: 0px 0px; unicode-bidi: normal; white-space-collapse: preserve; \"\u003e\u003cspan style=\"border-block-end-color: rgb(133, 22, 209); border-block-start-color: rgb(133, 22, 209); border-bottom-color: rgb(133, 22, 209); border-inline-end-color: rgb(133, 22, 209); border-inline-start-color: rgb(133, 22, 209); border-left-color: rgb(133, 22, 209); border-right-color: rgb(133, 22, 209); border-top-color: rgb(133, 22, 209); caret-color: rgb(133, 22, 209); color: rgb(133, 22, 209); column-rule-color: rgb(133, 22, 209); margin-inline-end: 0px; margin-right: 0px; outline-color: rgb(133, 22, 209); row-rule-color: rgb(133, 22, 209); text-decoration-color: rgb(133, 22, 209); text-emphasis-color: rgb(133, 22, 209); \"\u003e'Visa'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 18px; 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; font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; line-height: 18.004px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 464.5px 9px; text-wrap-mode: nowrap; transform-origin: 464.5px 9px; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(33, 33, 33); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(33, 33, 33); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(33, 33, 33); border-left-style: none; border-left-width: 0px; border-right-color: rgb(33, 33, 33); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 0px 0px; tab-size: 4; transform-origin: 0px 0px; unicode-bidi: normal; white-space-collapse: preserve; \"\u003e\u003cspan style=\"border-block-end-color: rgb(133, 22, 209); border-block-start-color: rgb(133, 22, 209); border-bottom-color: rgb(133, 22, 209); border-inline-end-color: rgb(133, 22, 209); border-inline-start-color: rgb(133, 22, 209); border-left-color: rgb(133, 22, 209); border-right-color: rgb(133, 22, 209); border-top-color: rgb(133, 22, 209); caret-color: rgb(133, 22, 209); color: rgb(133, 22, 209); column-rule-color: rgb(133, 22, 209); margin-inline-end: 0px; margin-right: 0px; outline-color: rgb(133, 22, 209); row-rule-color: rgb(133, 22, 209); text-decoration-color: rgb(133, 22, 209); text-emphasis-color: rgb(133, 22, 209); \"\u003e'Mastercard'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 18px; 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; font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; line-height: 18.004px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 464.5px 9px; text-wrap-mode: nowrap; transform-origin: 464.5px 9px; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(33, 33, 33); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(33, 33, 33); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(33, 33, 33); border-left-style: none; border-left-width: 0px; border-right-color: rgb(33, 33, 33); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 0px 0px; tab-size: 4; transform-origin: 0px 0px; unicode-bidi: normal; white-space-collapse: preserve; \"\u003e\u003cspan style=\"border-block-end-color: rgb(133, 22, 209); border-block-start-color: rgb(133, 22, 209); border-bottom-color: rgb(133, 22, 209); border-inline-end-color: rgb(133, 22, 209); border-inline-start-color: rgb(133, 22, 209); border-left-color: rgb(133, 22, 209); border-right-color: rgb(133, 22, 209); border-top-color: rgb(133, 22, 209); caret-color: rgb(133, 22, 209); color: rgb(133, 22, 209); column-rule-color: rgb(133, 22, 209); margin-inline-end: 0px; margin-right: 0px; outline-color: rgb(133, 22, 209); row-rule-color: rgb(133, 22, 209); text-decoration-color: rgb(133, 22, 209); text-emphasis-color: rgb(133, 22, 209); \"\u003e'Invalid'\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; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 444.5px 10.5px; text-align: left; transform-origin: 444.5px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 10px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eYour output must match one of these exactly, including spelling and capitalization.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.5px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 444.5px 10.75px; text-align: left; transform-origin: 444.5px 10.75px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe input \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003eccNum\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e is a character array containing only digits.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 20px; font-family: Helvetica, Arial, sans-serif; font-size: 20px; font-weight: 700; line-height: 20px; margin-block-end: 5px; margin-block-start: 20px; margin-bottom: 5px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 20px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 444.5px 10px; text-align: left; transform-origin: 444.5px 10px; white-space-collapse: preserve; margin-left: 4px; margin-top: 20px; margin-bottom: 5px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eEXAMPLE:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 444.5px 10.5px; text-align: left; transform-origin: 444.5px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eHere's an example of a Luhn check on a valid American Express number:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgb(247, 247, 247); block-size: 18px; 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; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 464.5px 9px; transform-origin: 464.5px 9px; margin-left: 3px; margin-top: 10px; margin-bottom: 10px; \"\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: 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; font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; line-height: 18.004px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-inline-start: 4px; padding-left: 4px; text-wrap-mode: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(33, 33, 33); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(33, 33, 33); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(33, 33, 33); border-left-style: none; border-left-width: 0px; border-right-color: rgb(33, 33, 33); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 0px 0px; tab-size: 4; transform-origin: 0px 0px; unicode-bidi: normal; white-space-collapse: preserve; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e    ccNum = \u003c/span\u003e\u003cspan style=\"border-block-end-color: rgb(133, 22, 209); border-block-start-color: rgb(133, 22, 209); border-bottom-color: rgb(133, 22, 209); border-inline-end-color: rgb(133, 22, 209); border-inline-start-color: rgb(133, 22, 209); border-left-color: rgb(133, 22, 209); border-right-color: rgb(133, 22, 209); border-top-color: rgb(133, 22, 209); caret-color: rgb(133, 22, 209); color: rgb(133, 22, 209); column-rule-color: rgb(133, 22, 209); margin-inline-end: 0px; margin-right: 0px; outline-color: rgb(133, 22, 209); row-rule-color: rgb(133, 22, 209); text-decoration-color: rgb(133, 22, 209); text-emphasis-color: rgb(133, 22, 209); \"\u003e'375981264037217'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003col style=\"block-size: 61.3125px; font-family: Helvetica, Arial, sans-serif; list-style-type: decimal; margin-block-end: 20px; margin-block-start: 10px; margin-bottom: 20px; margin-top: 10px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 451.5px 30.6562px; transform-origin: 451.5px 30.6562px; margin-top: 10px; margin-bottom: 20px; \"\u003e\u003cli style=\"block-size: 40.875px; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 423.5px 20.4375px; text-align: left; transform-origin: 423.5px 20.4375px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe last digit is referred to as the \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003echeck digit\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e and the rest of the digits are referred to as the \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003epayload\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e. Identify the digits that fall into these categories. In this case, 7 is the check digit and 37598126403721 is the payload.\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4375px; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 423.5px 10.2188px; text-align: left; transform-origin: 423.5px 10.2188px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eCounting from the right, with the rightmost payload digit as position 1, double the digits in positions 1, 3, 5, and so on:\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003c/ol\u003e\u003cdiv style=\"background-color: rgb(247, 247, 247); block-size: 18px; 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; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 464.5px 9px; transform-origin: 464.5px 9px; margin-left: 3px; margin-top: 10px; margin-bottom: 10px; \"\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: 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; font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; line-height: 18.004px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-inline-start: 4px; padding-left: 4px; text-wrap-mode: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(33, 33, 33); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(33, 33, 33); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(33, 33, 33); border-left-style: none; border-left-width: 0px; border-right-color: rgb(33, 33, 33); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 0px 0px; tab-size: 4; transform-origin: 0px 0px; unicode-bidi: normal; white-space-collapse: preserve; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e    [3 14 5 18 8 2 2 12 4 0 3 14 2 2];\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; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 444.5px 10.5px; text-align: left; transform-origin: 444.5px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 10px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e         3. If any number is greater than 9, subtract 9 from it. \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgb(247, 247, 247); block-size: 18px; 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; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 464.5px 9px; transform-origin: 464.5px 9px; margin-left: 3px; margin-top: 10px; margin-bottom: 10px; \"\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: 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; font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; line-height: 18.004px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-inline-start: 4px; padding-left: 4px; text-wrap-mode: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(33, 33, 33); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(33, 33, 33); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(33, 33, 33); border-left-style: none; border-left-width: 0px; border-right-color: rgb(33, 33, 33); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 0px 0px; tab-size: 4; transform-origin: 0px 0px; unicode-bidi: normal; white-space-collapse: preserve; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e    [3 5 5 9 8 2 2 3 4 0 3 5 2 2]; \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; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 444.5px 10.5px; text-align: left; transform-origin: 444.5px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 10px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e         4. Sum the digits in the result, which in this case is 53.\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; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 444.5px 31.5px; text-align: left; transform-origin: 444.5px 31.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e         5. Check if this sum + the check digit, 7, is a multiple of 10. Since 53 + 7 = 60, which is a multiple of 10, this combined with the fact that prefix of this credit card number is 37 and the fact that the original credit card number is 15 digits in length confirms that this is an American Express card number. In which case, you will return:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgb(247, 247, 247); block-size: 18px; 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; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 464.5px 9px; transform-origin: 464.5px 9px; margin-left: 3px; margin-top: 10px; margin-bottom: 10px; \"\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: 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; font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; line-height: 18.004px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-inline-start: 4px; padding-left: 4px; text-wrap-mode: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(33, 33, 33); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(33, 33, 33); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(33, 33, 33); border-left-style: none; border-left-width: 0px; border-right-color: rgb(33, 33, 33); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 0px 0px; tab-size: 4; transform-origin: 0px 0px; unicode-bidi: normal; white-space-collapse: preserve; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e    ccType = \u003c/span\u003e\u003cspan style=\"border-block-end-color: rgb(133, 22, 209); border-block-start-color: rgb(133, 22, 209); border-bottom-color: rgb(133, 22, 209); border-inline-end-color: rgb(133, 22, 209); border-inline-start-color: rgb(133, 22, 209); border-left-color: rgb(133, 22, 209); border-right-color: rgb(133, 22, 209); border-top-color: rgb(133, 22, 209); caret-color: rgb(133, 22, 209); color: rgb(133, 22, 209); column-rule-color: rgb(133, 22, 209); margin-inline-end: 0px; margin-right: 0px; outline-color: rgb(133, 22, 209); row-rule-color: rgb(133, 22, 209); text-decoration-color: rgb(133, 22, 209); text-emphasis-color: rgb(133, 22, 209); \"\u003e'American Express' \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; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 444.5px 10.5px; text-align: left; transform-origin: 444.5px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 10px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eIf you appreciated this problem, please consider rating its difficulty and liking!\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function ccType = cardCheck(ccNum)\r\n\r\nend","test_suite":"%% Starts with 50\r\nccNum = '5079318603208076';\r\nccType = 'Invalid';\r\nassert(isequal(cardCheck(ccNum),ccType))\r\n\r\n%% Mastercard, starts with 2500\r\nccNum = '2500929841622948';\r\nccType = 'Mastercard';\r\nassert(isequal(cardCheck(ccNum),ccType))\r\n\r\n%% Starts with 2721\r\nccNum = '2721647258771882';\r\nccType = 'Invalid';\r\nassert(isequal(cardCheck(ccNum),ccType))\r\n\r\n%% Visa, 16 digits\r\nccNum = '4469788093208193';\r\nccType = 'Visa';\r\nassert(isequal(cardCheck(ccNum),ccType))\r\n\r\n%% Visa prefix, but 18 digits\r\nccNum = '449482141621052180';\r\nccType = 'Invalid';\r\nassert(isequal(cardCheck(ccNum),ccType))\r\n\r\n%% Mastercard, starts with 52\r\nccNum = '5254914524410648';\r\nccType = 'Mastercard';\r\nassert(isequal(cardCheck(ccNum),ccType))\r\n\r\n%% Amex prefix and length, fails Luhn\r\nccNum = '372911028594062';\r\nccType = 'Invalid';\r\nassert(isequal(cardCheck(ccNum),ccType))\r\n\r\n%% Mastercard, starts with 53\r\nccNum = '5367147513627013';\r\nccType = 'Mastercard';\r\nassert(isequal(cardCheck(ccNum),ccType))\r\n\r\n%% Amex, starts with 37\r\nccNum = '377799229836954';\r\nccType = 'American Express';\r\nassert(isequal(cardCheck(ccNum),ccType))\r\n\r\n%% Visa, 19 digits\r\nccNum = '4604541465908538016';\r\nccType = 'Visa';\r\nassert(isequal(cardCheck(ccNum),ccType))\r\n\r\n%% Mastercard, starts with 2720\r\nccNum = '2720866283601614';\r\nccType = 'Mastercard';\r\nassert(isequal(cardCheck(ccNum),ccType))\r\n\r\n%% Visa prefix and 19 digits, fails Luhn\r\nccNum = '4600130411895579906';\r\nccType = 'Invalid';\r\nassert(isequal(cardCheck(ccNum),ccType))\r\n\r\n%% Visa, 16 digits\r\nccNum = '4761698716897683';\r\nccType = 'Visa';\r\nassert(isequal(cardCheck(ccNum),ccType))\r\n\r\n%% Amex prefix and length, fails Luhn\r\nccNum = '341256789012345';\r\nccType = 'Invalid';\r\nassert(isequal(cardCheck(ccNum),ccType))\r\n\r\n%% Amex, starts with 34\r\nccNum = '341588139986980';\r\nccType = 'American Express';\r\nassert(isequal(cardCheck(ccNum),ccType))\r\n\r\n%% Mastercard, starts with 51\r\nccNum = '5176804571784729';\r\nccType = 'Mastercard';\r\nassert(isequal(cardCheck(ccNum),ccType))\r\n\r\n%% Amex, starts with 37\r\nccNum = '377973091141708';\r\nccType = 'American Express';\r\nassert(isequal(cardCheck(ccNum),ccType))\r\n\r\n%% Amex prefix, but 16 digits\r\nccNum = '3741330175682052';\r\nccType = 'Invalid';\r\nassert(isequal(cardCheck(ccNum),ccType))\r\n\r\n%% Visa, 19 digits\r\nccNum = '4634400297875347783';\r\nccType = 'Visa';\r\nassert(isequal(cardCheck(ccNum),ccType))\r\n\r\n%% Starts with 2220\r\nccNum = '2220861642524776';\r\nccType = 'Invalid';\r\nassert(isequal(cardCheck(ccNum),ccType))\r\n\r\n%% Amex, starts with 37\r\nccNum = '375981264037217';\r\nccType = 'American Express';\r\nassert(isequal(cardCheck(ccNum),ccType))\r\n\r\n%% Mastercard prefix and length, fails Luhn\r\nccNum = '5459397615846450';\r\nccType = 'Invalid';\r\nassert(isequal(cardCheck(ccNum),ccType))\r\n\r\n%% Visa, 13 digits\r\nccNum = '4884472940553';\r\nccType = 'Visa';\r\nassert(isequal(cardCheck(ccNum),ccType))\r\n\r\n%% Starts with 35\r\nccNum = '350550087547519';\r\nccType = 'Invalid';\r\nassert(isequal(cardCheck(ccNum),ccType))\r\n\r\n%% Mastercard, starts with 2221\r\nccNum = '2221520599728371';\r\nccType = 'Mastercard';\r\nassert(isequal(cardCheck(ccNum),ccType))\r\n\r\n%% Starts with 56\r\nccNum = '5637028382226463';\r\nccType = 'Invalid';\r\nassert(isequal(cardCheck(ccNum),ccType))\r\n\r\n%% Mastercard, starts with 55\r\nccNum = '5507981933190843';\r\nccType = 'Mastercard';\r\nassert(isequal(cardCheck(ccNum),ccType))\r\n\r\n%% Visa prefix, but 15 digits\r\nccNum = '425898319489393';\r\nccType = 'Invalid';\r\nassert(isequal(cardCheck(ccNum),ccType))\r\n\r\n%% Amex, starts with 34\r\nccNum = '347536455681515';\r\nccType = 'American Express';\r\nassert(isequal(cardCheck(ccNum),ccType))\r\n\r\n%% Visa, 19 digits\r\nccNum = '4672731778486488769';\r\nccType = 'Visa';\r\nassert(isequal(cardCheck(ccNum),ccType))","published":true,"deleted":false,"likes_count":0,"comments_count":0,"created_by":4062641,"edited_by":4062641,"edited_at":"2026-10-27T17:45:46.000Z","deleted_by":null,"deleted_at":null,"solvers_count":4,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2026-10-25T04:33:03.000Z","updated_at":"2026-10-27T17:45:47.000Z","published_at":"2026-10-26T22:08:39.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\u003eWhen you pay for things online, sometimes when you enter your credit card number, the online merchant is able to instantly identify whether the card number you're entering is a valid American Express, Visa, or Mastercard number. After completing this problem, you'll be able to do the same.\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\u003eHere are the rules for each credit card type:\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 \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eAmerican Express:\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\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe card number begins with either 34 or 37.\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\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe card number is 15 digits.\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 \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eVisa\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"2\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe card number begins with 4.\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\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe card number is 13, 16, or 19 digits.\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 \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eMastercard:\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\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe first two digits are 51–55, or the first four digits are 2221–2720.\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\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe card number is 16 digits.\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\u003eOn top of these requirements, the credit card number must pass what's called a \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eLuhn check\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e, which is a practical implementation of \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://en.wikipedia.org/wiki/Luhn_algorithm\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eLuhn's algorithm.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eWrite MATLAB code that determines if a credit card number conforms to American Express's rules, Visa's, Mastercard's, or none of the above. You will simply return one of the following responses:\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['American Express'\\n'Visa'\\n'Mastercard'\\n'Invalid']]\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\u003eYour output must match one of these exactly, including spelling and capitalization.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe input \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eccNum\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e is a character array containing only digits.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"heading\\\"/\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=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eHere's an example of a Luhn check on a valid American Express number:\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[    ccNum = '375981264037217']]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"2\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe last digit is referred to as the \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003echeck digit\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e and the rest of the digits are referred to as the \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003epayload\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e. Identify the digits that fall into these categories. In this case, 7 is the check digit and 37598126403721 is the payload.\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\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eCounting from the right, with the rightmost payload digit as position 1, double the digits in positions 1, 3, 5, and so on:\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[    [3 14 5 18 8 2 2 12 4 0 3 14 2 2];]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e         3. If any number is greater than 9, subtract 9 from it. \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[    [3 5 5 9 8 2 2 3 4 0 3 5 2 2]; ]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e         4. Sum the digits in the result, which in this case is 53.\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         5. Check if this sum + the check digit, 7, is a multiple of 10. Since 53 + 7 = 60, which is a multiple of 10, this combined with the fact that prefix of this credit card number is 37 and the fact that the original credit card number is 15 digits in length confirms that this is an American Express card number. In which case, you will return:\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[    ccType = 'American Express' ]]\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\u003eIf you appreciated this problem, please consider rating its difficulty and liking!\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":45385,"title":"Coin distribution","description":"Imagine, u r in a shop. ur bill is n(2200). u want to pay the bill with minimum no of coins u have.\r\n\r\nu've coins of - 2000,1000,500,100,50,20,10,5,2,1.\r\n\r\nThere are multiple ways to do that but due to the imposed condition, the correct solution for the above scenario is -\r\n\r\n   2000 - 1\r\n    100 - 2\r\n\r\nthe output should be a 2D matrix of size 2-by-x; where the 1st row contains the coins u used and 2nd row contains how many. \r\n\r\n  out=[2000 100;\r\n          1   2]","description_html":"\u003cp\u003eImagine, u r in a shop. ur bill is n(2200). u want to pay the bill with minimum no of coins u have.\u003c/p\u003e\u003cp\u003eu've coins of - 2000,1000,500,100,50,20,10,5,2,1.\u003c/p\u003e\u003cp\u003eThere are multiple ways to do that but due to the imposed condition, the correct solution for the above scenario is -\u003c/p\u003e\u003cpre\u003e   2000 - 1\r\n    100 - 2\u003c/pre\u003e\u003cp\u003ethe output should be a 2D matrix of size 2-by-x; where the 1st row contains the coins u used and 2nd row contains how many.\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003eout=[2000 100;\r\n        1   2]\r\n\u003c/pre\u003e","function_template":"function out = coin(n)","test_suite":"%%\r\ny=[2000         100\r\n      1           2]\r\nassert(isequal(coin(2200),y))\r\n\r\n%%\r\ny=[100,20,2;2,1,1]\r\nassert(isequal(coin(222),y))\r\n\r\n%%\r\ny=[2000         500         100          50          20          10           5           2           1\r\n    3           1           2           1           1           1           1           1           1]\r\nassert(isequal( coin(6788),y))\r\n\r\n%%\r\ny=[2000         100          20           5           2           1\r\n   56728           3           2           1           1           1]\r\nassert(isequal(  coin(113456348),y))\r\n\r\n%%\r\ny=[2;2]\r\nassert(isequal( coin(4),y))\r\n\r\n%%\r\ny=[1000         100          20           5           2\r\n           1           4           2           1           2]\r\nassert(isequal( coin(1449),y))","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":363598,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":53,"test_suite_updated_at":"2020-03-24T19:30:04.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2020-03-24T18:58:31.000Z","updated_at":"2026-10-21T16:25:49.000Z","published_at":"2020-03-24T19:30:04.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\u003eImagine, u r in a shop. ur bill is n(2200). u want to pay the bill with minimum no of coins u have.\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\u003eu've coins of - 2000,1000,500,100,50,20,10,5,2,1.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThere are multiple ways to do that but due to the imposed condition, the correct solution for the above scenario is -\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[   2000 - 1\\n    100 - 2]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ethe output should be a 2D matrix of size 2-by-x; where the 1st row contains the coins u used and 2nd row contains how many.\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[out=[2000 100;\\n        1   2]]]\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":55285,"title":"Number of leaps in binary search","description":"Binary search is one of the most popular searching algorithms (Binary Search Algorithm). It works only in a sorted array. It utilizes the concept of decrease and conquer. At each iteration, it halves the size of the array while searching for an element in a list of items.\r\nWhile Matlab provides the 'find' or similar functions to search for an element in an array. This problem works the other way around. You have to implement the binary search algorithm here. Instead of finding the index of an element, you've to find how many jumps/iterations do you need using binary search to reach the item you are looking for.\r\n\r\nFor example, \r\ngiven array, a= [2, 4,  5, 7, 8, 9, 19] and search item value= 8.\r\nThe item is located at index 5. But thats not what you are looking for.\r\nImplementing Binary search --\r\nstep - 1: mid_elem = 7. doesn't match and lower. so shift the search to upper half. new array is [8, 9, 19].\r\nstep - 2: mid_elem = 9. doesn't match and higher. so, shift the search to lower half. new array is [8].\r\nstep - 3: mid_elem=8. match.\r\nSo, no of steps =3.\r\n\r\nIf the value is not found, return -1.","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: 457.3px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 228.65px; transform-origin: 407px 228.65px; 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: 199.5px 8px; transform-origin: 199.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eBinary search is one of the most popular searching algorithms (\u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://en.wikipedia.org/wiki/Binary_search_algorithm\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eBinary Search Algorithm\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: 108px 8px; transform-origin: 108px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e). It works only in a sorted array. It utilizes the concept of decrease and conquer. At each iteration, it halves the size of the array while searching for an element in a list of items.\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: 384px 8px; transform-origin: 384px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eWhile Matlab provides the 'find' or similar functions to search for an element in an array. This problem works the other way around. You have to implement the binary search algorithm here. Instead of finding the index of an element, you've to find how many jumps/iterations do you need using binary search to reach the item you are looking for.\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 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: 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: 43px 8px; transform-origin: 43px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eFor example, \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: 194.5px 8px; transform-origin: 194.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003egiven array, a= [2, 4,  5, 7, 8, 9, 19] and search item value= 8.\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: 215px 8px; transform-origin: 215px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe item is located at index 5. But thats not what you are looking for.\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: 94px 8px; transform-origin: 94px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eImplementing Binary search --\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003col style=\"block-size: 61.3px; counter-reset: list-item 0; font-family: Helvetica, Arial, sans-serif; list-style-type: decimal; margin-block-end: 20px; margin-block-start: 10px; margin-bottom: 20px; margin-top: 10px; perspective-origin: 391px 30.65px; transform-origin: 391px 30.65px; margin-top: 10px; margin-bottom: 20px; \"\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.2167px; text-align: left; transform-origin: 363px 10.2167px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 328px 8px; transform-origin: 328px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003estep - 1: mid_elem = 7. doesn't match and lower. so shift the search to upper half. new array is [8, 9, 19].\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.2167px; text-align: left; transform-origin: 363px 10.2167px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 311.5px 8px; transform-origin: 311.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003estep - 2: mid_elem = 9. doesn't match and higher. so, shift the search to lower half. new array is [8].\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.2167px; text-align: left; transform-origin: 363px 10.2167px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 91px 8px; transform-origin: 91px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003estep - 3: mid_elem=8. match.\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003c/ol\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: 59.5px 8px; transform-origin: 59.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eSo, no of steps =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 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: 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: 107px 8px; transform-origin: 107px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eIf the value is not found, return -1.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":" function step = binary_step(a,val)\r\n  step = x;\r\nend","test_suite":"%%\r\na=[2,4,5,7,8,9,19];\r\nval=7;\r\ny_correct = 1;\r\nassert(isequal(binary_step(a,val),y_correct))\r\n\r\n%%\r\na=[2,4,5,7,8,9,19];\r\nval=4;\r\ny_correct = 2;\r\nassert(isequal(binary_step(a,val),y_correct))\r\n\r\n%%\r\na=[2,4,5,7,8,9,19];\r\nval=8;\r\ny_correct = 3;\r\nassert(isequal(binary_step(a,val),y_correct))\r\n\r\n%%\r\na=[2,4,5,7,8,9,19];\r\nval=21;\r\ny_correct = -1;\r\nassert(isequal(binary_step(a,val),y_correct))\r\n\r\n%%\r\na= [10,14,19,26,27,31,33,35,42,44];\r\nval=31;\r\ny_correct = 3;\r\nassert(isequal(binary_step(a,val),y_correct))\r\n\r\n%%\r\na= [10,14,19,26,27,31,33,35,42,44];\r\nval=33;\r\ny_correct = 4;\r\nassert(isequal(binary_step(a,val),y_correct))\r\n\r\n%%\r\na= [10,14,19,26,27,31,33,35,42,44,3];\r\nval=33;\r\ny_correct = 4;\r\nassert(isequal(binary_step(a,val),y_correct))\r\n\r\n%%\r\na= randperm(200);\r\nval=47;\r\ny_correct = 8;\r\nassert(isequal(binary_step(a,val),y_correct))","published":true,"deleted":false,"likes_count":0,"comments_count":1,"created_by":363598,"edited_by":223089,"edited_at":"2022-09-14T08:41:03.000Z","deleted_by":null,"deleted_at":null,"solvers_count":11,"test_suite_updated_at":"2022-09-14T08:41:03.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2022-08-12T22:28:58.000Z","updated_at":"2026-06-02T00:50:25.000Z","published_at":"2022-08-12T22:34:00.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\u003eBinary search is one of the most popular searching algorithms (\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://en.wikipedia.org/wiki/Binary_search_algorithm\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eBinary Search Algorithm\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e). It works only in a sorted array. It utilizes the concept of decrease and conquer. At each iteration, it halves the size of the array while searching for an element in a list of items.\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\u003eWhile Matlab provides the 'find' or similar functions to search for an element in an array. This problem works the other way around. You have to implement the binary search algorithm here. Instead of finding the index of an element, you've to find how many jumps/iterations do you need using binary search to reach the item you are looking for.\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\u003eFor example, \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 array, a= [2, 4,  5, 7, 8, 9, 19] and search item value= 8.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe item is located at index 5. But thats not what you are looking for.\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\u003eImplementing Binary search --\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\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003estep - 1: mid_elem = 7. doesn't match and lower. so shift the search to upper half. new array is [8, 9, 19].\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\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003estep - 2: mid_elem = 9. doesn't match and higher. so, shift the search to lower half. new array is [8].\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\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003estep - 3: mid_elem=8. match.\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, no of steps =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\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\u003eIf the value is not found, return -1.\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":55530,"title":"Jump Search - 01","description":"Find the number of leaps you need to take to find an element in an array using the jump search algorithm.\r\nFor example, \r\na=[ 2,5,6,9,12,14,15,16,17,19,31]\r\nTo find 16 with a jump step of 3, you follow,  2 -\u003e 9 -\u003e 15 -\u003e 19 -\u003e 17 -\u003e 16\r\nSo, total number of jumps = 5\r\nnb. to go forward, you take n-step jump; to go backwards, you jump only one step back. \r\nIf the jump step is larger than the array size, u jump to the last element of the array.","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: 201.438px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 100.713px; transform-origin: 407px 100.719px; 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: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eFind the number of leaps you need to take to find an element in an array using the jump search algorithm.\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=\"\"\u003eFor example, \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=\"\"\u003ea=[ 2,5,6,9,12,14,15,16,17,19,31]\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=\"\"\u003eTo find 16 with a jump step of 3, you follow,  2 -\u0026gt; 9 -\u0026gt; 15 -\u0026gt; 19 -\u0026gt; 17 -\u0026gt; 16\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=\"\"\u003eSo, total number of jumps = 5\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=\"\"\u003enb. to go forward, you take n-step jump; to go backwards, you jump only one step back. \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cul style=\"block-size: 20.4375px; font-family: Helvetica, Arial, sans-serif; list-style-type: square; margin-block-end: 20px; margin-block-start: 10px; margin-bottom: 20px; margin-top: 10px; perspective-origin: 391px 10.2125px; transform-origin: 391px 10.2188px; margin-top: 10px; margin-bottom: 20px; \"\u003e\u003cli style=\"display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.2125px; text-align: left; transform-origin: 363px 10.2188px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eIf the jump step is larger than the array size, u jump to the last element of the array.\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003c/ul\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function y = jump_search(a,x,n)\r\n  y = x;\r\nend","test_suite":"%%\r\na=[ 2,5,6,9,12,14,15,16,17,19,31];\r\nx=16;\r\nn=3;\r\ny_correct = 5;\r\nassert(isequal(jump_search(a,x,n),y_correct))\r\n\r\n%%\r\na=[ 2,5,6,9,12,14,15,16,17,19,31];\r\nx=15;\r\nn=1;\r\ny_correct = 6;\r\nassert(isequal(jump_search(a,x,n),y_correct))\r\n\r\n\r\n%%\r\na=[ 2,5,6,9,12,14,15,16,17,19,31];\r\nx=2;\r\nn=5;\r\ny_correct = 0;\r\nassert(isequal(jump_search(a,x,n),y_correct))\r\n\r\n\r\n%%\r\na=[ 2,5,6,9,12,14,15,16,17,19,31];\r\nx=31;\r\nn=12;\r\ny_correct = 1;\r\nassert(isequal(jump_search(a,x,n),y_correct))\r\n\r\n\r\n%%\r\na=[ 2,5,6,9,12,14,15,16,17,19,31];\r\nx=17;\r\nn=12;\r\ny_correct = 3;\r\nassert(isequal(jump_search(a,x,n),y_correct))\r\n\r\n%%\r\na=[1,5,9,14,17,18,23,33,36,38];\r\nx=38;\r\nn=2;\r\ny_correct = 5;\r\nassert(isequal(jump_search(a,x,n),y_correct))\r\n\r\n%%\r\na=[1,5,9,14,17,18,23,33,36,38];\r\nx=11;\r\nn=4;\r\ny_correct = nan;\r\nassert(isnan(jump_search(a,x,n)))\r\n\r\n","published":true,"deleted":false,"likes_count":0,"comments_count":4,"created_by":363598,"edited_by":363598,"edited_at":"2022-09-30T16:20:21.000Z","deleted_by":null,"deleted_at":null,"solvers_count":12,"test_suite_updated_at":"2022-09-29T13:10:17.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2022-09-08T04:51:33.000Z","updated_at":"2026-09-29T21:14:07.000Z","published_at":"2022-09-28T12:58:17.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 the number of leaps you need to take to find an element in an array using the jump search algorithm.\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 example, \u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ea=[ 2,5,6,9,12,14,15,16,17,19,31]\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 find 16 with a jump step of 3, you follow,  2 -\u0026gt; 9 -\u0026gt; 15 -\u0026gt; 19 -\u0026gt; 17 -\u0026gt; 16\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, total number of jumps = 5\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003enb. to go forward, you take n-step jump; to go backwards, you jump only one step back. \u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eIf the jump step is larger than the array size, u jump to the last element of the array.\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":2189,"title":"Order of things - 1","description":"Let's assume you have a number of calculations to perform, that depend on each other. E.g. 'A' can be calculated, once the outcome of 'B' is known. And 'C' depends on the results of 'A' and 'D'. 'D' depends on 'A'. 'E' depends on all others. Find the right order of the calculations, needed to get all the results. Assume that only one calculation can be done at a time. \r\n\r\nThe dependencies of the calculations on each other is expressed in a matrix, where each row and column corresponds to a specific calculation. \r\n\r\n    A  B  C  D  E\r\n A  0  1  0  0  0\r\n B  0  0  0  0  0\r\n C  1  0  0  1  0\r\n D  1  0  0  0  0\r\n E  1  1  1  1  0\r\n\r\nA '1' indicates that the calculation on that row depends on the one mentioned at the top of that column.\r\n\r\nIn matrix terms, re-order the rows and columns (the same operation applies to both) such that the upper-right triangle, above the diagonal, only contains zeros.\r\n\r\n    B  A  D  C  E\r\n B  0  0  0  0  0\r\n A  1  0  0  0  0\r\n D  0  1  0  0  0\r\n C  0  1  1  0  0\r\n E  1  1  1  1  0\r\n\r\nReturn the new row/column order as a numeric row-vector, referring to the rows/columns of the input matrix. In this example:\r\n\r\n [ 2 1 4 3 5 ]\r\n\r\nYou may assume that all calculations can be executed, in some order or another.","description_html":"\u003cp\u003eLet's assume you have a number of calculations to perform, that depend on each other. E.g. 'A' can be calculated, once the outcome of 'B' is known. And 'C' depends on the results of 'A' and 'D'. 'D' depends on 'A'. 'E' depends on all others. Find the right order of the calculations, needed to get all the results. Assume that only one calculation can be done at a time.\u003c/p\u003e\u003cp\u003eThe dependencies of the calculations on each other is expressed in a matrix, where each row and column corresponds to a specific calculation.\u003c/p\u003e\u003cpre\u003e    A  B  C  D  E\r\n A  0  1  0  0  0\r\n B  0  0  0  0  0\r\n C  1  0  0  1  0\r\n D  1  0  0  0  0\r\n E  1  1  1  1  0\u003c/pre\u003e\u003cp\u003eA '1' indicates that the calculation on that row depends on the one mentioned at the top of that column.\u003c/p\u003e\u003cp\u003eIn matrix terms, re-order the rows and columns (the same operation applies to both) such that the upper-right triangle, above the diagonal, only contains zeros.\u003c/p\u003e\u003cpre\u003e    B  A  D  C  E\r\n B  0  0  0  0  0\r\n A  1  0  0  0  0\r\n D  0  1  0  0  0\r\n C  0  1  1  0  0\r\n E  1  1  1  1  0\u003c/pre\u003e\u003cp\u003eReturn the new row/column order as a numeric row-vector, referring to the rows/columns of the input matrix. In this example:\u003c/p\u003e\u003cpre\u003e [ 2 1 4 3 5 ]\u003c/pre\u003e\u003cp\u003eYou may assume that all calculations can be executed, in some order or another.\u003c/p\u003e","function_template":"function order = calculation_order(dependencies)\r\n  order  = 1:size(dependencies,1);\r\nend","test_suite":"%%\r\ndependencies = [\r\n  0  0\r\n  1  0\r\n];\r\norder = calculation_order(dependencies);\r\norder_correct = [ 1 2 ];\r\nassert(isequal(order_correct,order));\r\n\r\n%%\r\ndependencies = [\r\n  0  1  0  0  0\r\n  0  0  0  0  0\r\n  1  0  0  1  0\r\n  1  0  0  0  0\r\n  1  1  1  1  0\r\n];\r\norder = calculation_order(dependencies);\r\norder_correct = [ 2 1 4 3 5 ];\r\nassert(isequal(order_correct,order));\r\n\r\n%%\r\ndependencies = [\r\n  0  1  1  1  1\r\n  0  0  1  1  1\r\n  0  0  0  1  1\r\n  0  0  0  0  1\r\n  0  0  0  0  0\r\n];\r\norder = calculation_order(dependencies);\r\nordered = dependencies(order,order);\r\nassert(~nnz(triu(ordered-diag(diag(ordered)))));\r\n\r\n%%\r\ndependencies_ = tril(randi(2,10)-1);\r\ndependencies_ = dependencies_-diag(diag(dependencies_));\r\norder_ = randperm(size(dependencies_,1));\r\ndependencies = dependencies_(order_,order_);\r\nclear order_;\r\norder = calculation_order(dependencies);\r\n% [~,order] = sort(order_);\r\nassert(~nnz(triu(dependencies(order,order))));\r\n\r\n%%\r\ndependencies_ = randi(2,10)-1;\r\ndependencies_ = dependencies_-triu(dependencies_);\r\norder_ = randperm(size(dependencies_,1));\r\ndependencies = dependencies_(order_,order_);\r\nclear order_; % to prevent the evalin hack\r\norder = calculation_order(dependencies);\r\n% [~,order] = sort(order_);\r\nassert(~nnz(triu(dependencies(order,order))));\r\n\r\n%%\r\n% n = 10;\r\n% dependencies_ = tril(randi(3,n)\u003e1|diag(ones(1,n-1),-1))\u0026~eye(n);\r\n% order_ = randperm(n);\r\n% dependencies = dependencies_(order_,order_);\r\ndependencies = [\r\n     0     1     1     0     1     0     0     0     0     1\r\n     0     0     0     0     1     0     0     0     0     1\r\n     0     1     0     0     1     0     0     0     0     1\r\n     1     0     1     0     1     1     0     0     0     0\r\n     0     0     0     0     0     0     0     0     0     0\r\n     0     0     0     0     0     0     0     1     0     1\r\n     1     1     1     0     0     0     0     1     1     1\r\n     1     1     0     0     1     0     0     0     0     1\r\n     1     1     1     1     0     1     0     1     0     1\r\n     0     0     0     0     1     0     0     0     0     0\r\n];\r\norder = calculation_order(dependencies);\r\n% [~,order_correct] = sort(order_);\r\norder_correct = [ 5    10     2     3     1     8     6     4     9     7 ];\r\nassert(isequal(order,order_correct));","published":true,"deleted":false,"likes_count":2,"comments_count":2,"created_by":6556,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":21,"test_suite_updated_at":"2014-02-18T08:49:01.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2014-02-17T16:26:27.000Z","updated_at":"2026-07-21T07:16:41.000Z","published_at":"2014-02-18T08:49:01.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"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\u003eLet's assume you have a number of calculations to perform, that depend on each other. E.g. 'A' can be calculated, once the outcome of 'B' is known. And 'C' depends on the results of 'A' and 'D'. 'D' depends on 'A'. 'E' depends on all others. Find the right order of the calculations, needed to get all the results. Assume that only one calculation can be done at a time.\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 dependencies of the calculations on each other is expressed in a matrix, where each row and column corresponds to a specific calculation.\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[    A  B  C  D  E\\n A  0  1  0  0  0\\n B  0  0  0  0  0\\n C  1  0  0  1  0\\n D  1  0  0  0  0\\n E  1  1  1  1  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\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eA '1' indicates that the calculation on that row depends on the one mentioned at the top of that column.\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 matrix terms, re-order the rows and columns (the same operation applies to both) such that the upper-right triangle, above the diagonal, only contains zeros.\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[    B  A  D  C  E\\n B  0  0  0  0  0\\n A  1  0  0  0  0\\n D  0  1  0  0  0\\n C  0  1  1  0  0\\n E  1  1  1  1  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\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eReturn the new row/column order as a numeric row-vector, referring to the rows/columns of the input matrix. In this example:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[ [ 2 1 4 3 5 ]]]\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\u003eYou may assume that all calculations can be executed, in some order or another.\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":56070,"title":"Jump Search  - 02","description":"Find the number of leaps you need to take to find the 'first occurrence' of an element in an array using the jump search algorithm.\r\nFor example, \r\na=[ 2,5,6,9,12,15,15,16,17,19,31]\r\nTo find 16 with a jump step of 3, you follow,  2 -\u003e 9 -\u003e 15 -\u003e 19 -\u003e 17 -\u003e 16\r\nSo, total number of jumps = 5\r\nn.b. to go forward, you take n-step jump; to go backwards, you jump only one step back. \r\n\r\nIn this problem, you will have repetition of numbers. you need to find the index of the first occurence. \r\nThe array is always sorted. But you need to look out and go backward even after finding the element to ensure it is the first occurence.\r\nIf the jump step is larger than the array size, u directly go to the last element of the array\r\n","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: 394.75px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 197.375px; transform-origin: 407px 197.375px; 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: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eFind the number of leaps you need to take to find the '\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; \"\u003efirst occurrence\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' of an element in an array using the jump search algorithm.\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=\"\"\u003eFor example, \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=\"\"\u003ea=[ 2,5,6,9,12,15,15,16,17,19,31]\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=\"\"\u003eTo find 16 with a jump step of 3, you follow,  2 -\u0026gt; 9 -\u0026gt; 15 -\u0026gt; 19 -\u0026gt; 17 -\u0026gt; 16\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=\"\"\u003eSo, total number of jumps = 5\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.b. to go forward, you take n-step jump; to go backwards, you jump only one step back. \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=\"\"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cul style=\"block-size: 20.4375px; font-family: Helvetica, Arial, sans-serif; list-style-type: square; margin-block-end: 20px; margin-block-start: 10px; margin-bottom: 20px; margin-top: 10px; perspective-origin: 391px 10.2125px; transform-origin: 391px 10.2188px; margin-top: 10px; margin-bottom: 20px; \"\u003e\u003cli style=\"display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.2125px; text-align: left; transform-origin: 363px 10.2188px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eIn this problem, you will have repetition of numbers. you need to find the index of the first occurence. \u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003c/ul\u003e\u003cul style=\"block-size: 40.875px; font-family: Helvetica, Arial, sans-serif; list-style-type: square; margin-block-end: 20px; margin-block-start: 10px; margin-bottom: 20px; margin-top: 10px; perspective-origin: 391px 20.4375px; transform-origin: 391px 20.4375px; margin-top: 10px; margin-bottom: 20px; \"\u003e\u003cli style=\"display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 20.4375px; text-align: left; transform-origin: 363px 20.4375px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eThe array is always sorted. But you need to look out and go backward even after finding the element to ensure it is the first occurence.\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003c/ul\u003e\u003cul style=\"block-size: 20.4375px; font-family: Helvetica, Arial, sans-serif; list-style-type: square; margin-block-end: 20px; margin-block-start: 10px; margin-bottom: 20px; margin-top: 10px; perspective-origin: 391px 10.2125px; transform-origin: 391px 10.2188px; margin-top: 10px; margin-bottom: 20px; \"\u003e\u003cli style=\"display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.2125px; text-align: left; transform-origin: 363px 10.2188px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eIf the jump step is larger than the array size, u directly go to the last element of the array\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003c/ul\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=\"\"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function y = jump_search_2(a,x,n)\r\n  y = x;\r\nend","test_suite":"%% 1\r\na=[ 2,5,6,9,12,14,15,16,17,19,31];\r\nx=16;\r\nn=3;\r\ny_correct = 5;\r\nassert(isequal(jump_search_2(a,x,n),y_correct))\r\n\r\n%% 2\r\na=[ 2,5,6,9,12,14,15,16,17,19,31];\r\nx=15;\r\nn=1;\r\ny_correct = 6;\r\nassert(isequal(jump_search_2(a,x,n),y_correct))\r\n\r\n\r\n%% 3\r\na=[2,5,6,9,12,14,15,16,17,19,31];\r\nx=2;\r\nn=5;\r\ny_correct = 0;\r\nassert(isequal(jump_search_2(a,x,n),y_correct))\r\n\r\n\r\n%% 4\r\na=[ 2,5,6,9,12,14,15,16,17,19,31];\r\nx=31;\r\nn=12;\r\ny_correct = 2;\r\nassert(isequal(jump_search_2(a,x,n),y_correct))\r\n\r\n\r\n%% 5\r\na=[ 2,5,6,9,12,14,15,16,17,19,31];\r\nx=17;\r\nn=12;\r\ny_correct = 4;\r\nassert(isequal(jump_search_2(a,x,n),y_correct))\r\n\r\n%% 6\r\na=[1,5,9,14,17,18,23,33,36,38];\r\nx=38;\r\nn=2;\r\ny_correct = 5;\r\nassert(isequal(jump_search_2(a,x,n),y_correct))\r\n\r\n\r\n%% 7\r\na=[5, 10, 10, 10, 25, 30, 35, 35, 55, 65, 100, 600, 4000, 10000, 10000, 30000, 30000, 48000];\r\nx=10;\r\nn=5;\r\ny_correct = 5;\r\nassert(isequal(jump_search_2(a,x,n),y_correct))\r\n\r\n%% 8\r\na=[5, 10, 10, 10, 25, 30, 35, 35, 55, 65, 100, 600, 4000, 10000, 10000, 30000, 30000, 48000];\r\nx=30;\r\nn=2;\r\ny_correct = 4;\r\nassert(isequal(jump_search_2(a,x,n),y_correct))\r\n\r\n%% 9\r\na=[5, 10, 10, 10, 25, 30, 35, 35, 55, 65, 100, 600, 4000, 10000, 10000, 30000, 30000, 48000];\r\nx=35;\r\nn=2;\r\ny_correct = 4;\r\nassert(isequal(jump_search_2(a,x,n),y_correct))\r\n\r\n%% 10\r\na=[5, 10, 10, 10, 25, 30, 35, 35, 55, 65, 100, 600, 4000, 10000, 10000, 30000, 30000, 48000];\r\nx=35;\r\nn=3;\r\ny_correct = 3;\r\nassert(isequal(jump_search_2(a,x,n),y_correct))\r\n\r\n%% 11\r\na=[5, 10, 10, 10, 25, 30, 35, 35, 55, 65, 100, 600, 4000, 10000, 10000, 30000, 30000, 48000];\r\nx=350;\r\nn=3;\r\ny_correct = nan;\r\nassert(isnan(jump_search_2(a,x,n)))\r\n\r\n%% 12\r\na=[5, 10, 10, 10, 25, 30, 35, 35, 55, 65, 100, 600, 4000, 10000, 10000, 30000, 30000, 48000];\r\nx=10000;\r\nn=4;\r\ny_correct = 7;\r\nassert(isequal(jump_search_2(a,x,n),y_correct))\r\n\r\n\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":8,"created_by":363598,"edited_by":363598,"edited_at":"2022-09-30T16:17:38.000Z","deleted_by":null,"deleted_at":null,"solvers_count":6,"test_suite_updated_at":"2022-09-30T16:12:42.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2022-09-28T12:51:46.000Z","updated_at":"2026-07-30T21:52:40.000Z","published_at":"2022-09-28T13:13:44.000Z","restored_at":null,"restored_by":null,"spam":null,"simulink":false,"admin_reviewed":false,"description_opc":"{\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFind the number of leaps you need to take to find the '\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003efirst occurrence\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e' of an element in an array using the jump search algorithm.\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 example, \u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ea=[ 2,5,6,9,12,15,15,16,17,19,31]\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 find 16 with a jump step of 3, you follow,  2 -\u0026gt; 9 -\u0026gt; 15 -\u0026gt; 19 -\u0026gt; 17 -\u0026gt; 16\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, total number of jumps = 5\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003en.b. to go forward, you take n-step jump; to go backwards, you jump only one step back. \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=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eIn this problem, you will have repetition of numbers. you need to find the index of the first occurence. \u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe array is always sorted. But you need to look out and go backward even after finding the element to ensure it is the first occurence.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eIf the jump step is larger than the array size, u directly go to the last element of the array\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\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":55290,"title":"Cut the rod","description":"A rod of length n can be cut in different sizes. Different price is associated with different length of cuts. \r\nlength, len= [1, 2, 3, 4, 5,  6,   7,  8]\r\nprice, p     = [1, 5, 8, 9,10,17,17,20]\r\nHere, if you cut a piece of length 5, the price for that piece is 10. For length of 8, the price is 20.\r\nSay, you have to obtain a rod of length x. By cutting the rod in which way will give you the maximum price.\r\n\r\nFor instance, say x=4. you can cut the rod in pieces like (1,3)/(3,1), (2,2), (1,1,1,1), (1,1,2)/(1,2,1)/... or (4).\r\nThe maximum revenue that you can get here is when you cut the rod in (2,2) pieces to get length x =\u003e 5+5=10. \r\nFor (1,3)=\u003e9; (1,1,1,1)=\u003e 4; (1,1,2)=\u003e7, (4)=\u003e9. \r\n\r\nIn this problem, you have to return the maximum reveneue you can obtain by cutting the rod of size x.","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: 322.875px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 161.438px; transform-origin: 407px 161.438px; 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: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eA rod of length n can be cut in different sizes. Different price is associated with different length of cuts. \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cul style=\"block-size: 40.875px; font-family: Helvetica, Arial, sans-serif; list-style-type: square; margin-block-end: 20px; margin-block-start: 10px; margin-bottom: 20px; margin-top: 10px; perspective-origin: 391px 20.4375px; transform-origin: 391px 20.4375px; margin-top: 10px; margin-bottom: 20px; \"\u003e\u003cli style=\"block-size: 20.4375px; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.2125px; text-align: left; transform-origin: 363px 10.2188px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003elength, len= [1, 2, 3, 4, 5,  6,   7,  8]\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4375px; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.2125px; text-align: left; transform-origin: 363px 10.2188px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eprice, p     = [1, 5, 8, 9,10,17,17,20]\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003c/ul\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=\"\"\u003eHere, if you cut a piece of length 5, the price for that piece is 10. For length of 8, the price is 20.\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=\"\"\u003eSay, you have to obtain a rod of length x. By cutting the rod in which way will give you the maximum price.\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=\"\"\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: 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=\"\"\u003eFor instance, say x=4. you can cut the rod in pieces like (1,3)/(3,1), (2,2), (1,1,1,1), (1,1,2)/(1,2,1)/... or (4).\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=\"\"\u003eThe maximum revenue that you can get here is when you cut the rod in (2,2) pieces to get length x =\u0026gt; 5+5=10. \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=\"\"\u003eFor (1,3)=\u0026gt;9; (1,1,1,1)=\u0026gt; 4; (1,1,2)=\u0026gt;7, (4)=\u0026gt;9. \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=\"\"\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: 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=\"\"\u003eIn this problem, you have to return the maximum reveneue you can obtain by cutting the rod of size x.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function y = rod_cut(x,p)\r\n  y = x;\r\nend","test_suite":"%%\r\np=[1,5,8,9,10,17,17,20];\r\nx=4;\r\ny_correct = 10;\r\nassert(isequal(rod_cut(x,p),y_correct))\r\n\r\n%%\r\np=[1,5,8,9,10,17,17,20];\r\nx=8;\r\ny_correct = 22;\r\nassert(isequal(rod_cut(x,p),y_correct))\r\n\r\n%%\r\np=[1,5,8,9,10,17,17,20];\r\nx=7;\r\ny_correct = 18;\r\nassert(isequal(rod_cut(x,p),y_correct))\r\n\r\n%%\r\np=[1,5,8,9,10,17,17,20];\r\nx=6;\r\ny_correct = 17;\r\nassert(isequal(rod_cut(x,p),y_correct))\r\n\r\n%%\r\np=[10,5,3,18];\r\nx=4;\r\ny_correct = 40;\r\nassert(isequal(rod_cut(x,p),y_correct))\r\n\r\n\r\n%%\r\np=[10,5,3,18];\r\nx=2;\r\ny_correct = 20;\r\nassert(isequal(rod_cut(x,p),y_correct))\r\n\r\n\r\n%%\r\np=[10,5,36,18,36];\r\nx=4;\r\ny_correct = 46;\r\nassert(isequal(rod_cut(x,p),y_correct))\r\n\r\n%%\r\np=[10,5,36,18,36];\r\nx=5;\r\ny_correct = 56;\r\nassert(isequal(rod_cut(x,p),y_correct))","published":true,"deleted":false,"likes_count":3,"comments_count":0,"created_by":363598,"edited_by":363598,"edited_at":"2022-08-13T23:35:18.000Z","deleted_by":null,"deleted_at":null,"solvers_count":14,"test_suite_updated_at":"2022-08-13T23:35:18.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2022-08-13T23:28:51.000Z","updated_at":"2026-07-16T09:42:15.000Z","published_at":"2022-08-13T23:35:18.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 rod of length n can be cut in different sizes. Different price is associated with different length of cuts. \u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003elength, len= [1, 2, 3, 4, 5,  6,   7,  8]\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eprice, p     = [1, 5, 8, 9,10,17,17,20]\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\u003eHere, if you cut a piece of length 5, the price for that piece is 10. For length of 8, the price is 20.\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\u003eSay, you have to obtain a rod of length x. By cutting the rod in which way will give you the maximum price.\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\u003eFor instance, say x=4. you can cut the rod in pieces like (1,3)/(3,1), (2,2), (1,1,1,1), (1,1,2)/(1,2,1)/... or (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\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe maximum revenue that you can get here is when you cut the rod in (2,2) pieces to get length x =\u0026gt; 5+5=10. \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 (1,3)=\u0026gt;9; (1,1,1,1)=\u0026gt; 4; (1,1,2)=\u0026gt;7, (4)=\u0026gt;9. \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\u003eIn this problem, you have to return the maximum reveneue you can obtain by cutting the rod of size x.\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":2190,"title":"Order of things - 2","description":"This problem is closely related to \u003chttp://www.mathworks.nl/matlabcentral/cody/problems/2189-order-of-things-1 Problem 2189, Order of things - 1\u003e. For the details, see the description for that problem. Basically, we have to find the order in which to execute tasks of which the results and prerequisites depend on each other. \r\n\r\n* However, this time it may be impossible to find a solution, since dependencies may be cyclic. In that case, return an empty vector.\r\n* Furthermore, if there are multiple orders possible, return them as multiple rows of the output vector.\r\n\r\nAgain, the dependencies of the tasks on each other is expressed in a matrix, where each row and column corresponds to a specific task. Each row expresses on which result that task depends. A |1| indicates that the calculation on that row depends on the one mentioned at the top of that column.\r\n\r\nReturn the new row/column order as a numeric row-vector, referring to the rows/columns of the input matrix. Of an empty array when no solution is possible. Or a matrix of rows containing the orders, where each row is a different solution, in case multiple solutions exist.\r\n\r\n   A  B  C  D  E\r\nA  0  1  0  0  0\r\nB  0  0  0  0  0\r\nC  1  0  0  1  0\r\nD  1  0  1  0  0\r\nE  1  1  1  1  0\r\n\r\nThe above problem can not be solved, since |C| depends on |D|, which in its place depends on |C|. The returned value would be |[]| .\r\n\r\n   A  B  C  D  E\r\nA  0  1  0  0  0\r\nB  0  0  0  0  0\r\nC  1  0  0  0  0\r\nD  1  0  0  0  0\r\nE  1  1  1  1  0\r\n\r\nThe returned matrix should be \r\n\r\n [\r\n   2 1 3 4 5 \r\n   2 1 4 3 5\r\n ]\r\n\r\nGood luck!","description_html":"\u003cp\u003eThis problem is closely related to \u003ca href = \"http://www.mathworks.nl/matlabcentral/cody/problems/2189-order-of-things-1\"\u003eProblem 2189, Order of things - 1\u003c/a\u003e. For the details, see the description for that problem. Basically, we have to find the order in which to execute tasks of which the results and prerequisites depend on each other.\u003c/p\u003e\u003cul\u003e\u003cli\u003eHowever, this time it may be impossible to find a solution, since dependencies may be cyclic. In that case, return an empty vector.\u003c/li\u003e\u003cli\u003eFurthermore, if there are multiple orders possible, return them as multiple rows of the output vector.\u003c/li\u003e\u003c/ul\u003e\u003cp\u003eAgain, the dependencies of the tasks on each other is expressed in a matrix, where each row and column corresponds to a specific task. Each row expresses on which result that task depends. A \u003ctt\u003e1\u003c/tt\u003e indicates that the calculation on that row depends on the one mentioned at the top of that column.\u003c/p\u003e\u003cp\u003eReturn the new row/column order as a numeric row-vector, referring to the rows/columns of the input matrix. Of an empty array when no solution is possible. Or a matrix of rows containing the orders, where each row is a different solution, in case multiple solutions exist.\u003c/p\u003e\u003cpre\u003e   A  B  C  D  E\r\nA  0  1  0  0  0\r\nB  0  0  0  0  0\r\nC  1  0  0  1  0\r\nD  1  0  1  0  0\r\nE  1  1  1  1  0\u003c/pre\u003e\u003cp\u003eThe above problem can not be solved, since \u003ctt\u003eC\u003c/tt\u003e depends on \u003ctt\u003eD\u003c/tt\u003e, which in its place depends on \u003ctt\u003eC\u003c/tt\u003e. The returned value would be \u003ctt\u003e[]\u003c/tt\u003e .\u003c/p\u003e\u003cpre\u003e   A  B  C  D  E\r\nA  0  1  0  0  0\r\nB  0  0  0  0  0\r\nC  1  0  0  0  0\r\nD  1  0  0  0  0\r\nE  1  1  1  1  0\u003c/pre\u003e\u003cp\u003eThe returned matrix should be\u003c/p\u003e\u003cpre\u003e [\r\n   2 1 3 4 5 \r\n   2 1 4 3 5\r\n ]\u003c/pre\u003e\u003cp\u003eGood luck!\u003c/p\u003e","function_template":"function order = calculation_order(dependencies)\r\n  order  = 1:size(dependencies,1);\r\nend","test_suite":"%%\r\ndependencies = [\r\n  0  0\r\n  1  0\r\n];\r\norder = calculation_order(dependencies);\r\norder_correct = [ 1 2 ];\r\nassert(isequal(order_correct,order));\r\n\r\n%%\r\ndependencies = [\r\n  0  1  0  0  0\r\n  0  0  0  0  0\r\n  1  0  0  0  0\r\n  1  0  0  0  0\r\n  1  1  1  1  0\r\n];\r\norder = calculation_order(dependencies);\r\norder_correct = sortrows([ 2 1 4 3 5 ; 2 1 3 4 5 ]);\r\nassert(isequal(order_correct,order));\r\n\r\n%%\r\ndependencies = [\r\n  0  1  0  0  0\r\n  1  0  0  0  0\r\n  1  0  0  0  0\r\n  1  0  0  0  0\r\n  1  1  1  1  0\r\n];\r\norder = calculation_order(dependencies);\r\nassert(isequal([],order));\r\n\r\n%%\r\ndependencies = [\r\n  0  1  1  1  1\r\n  0  0  1  1  1\r\n  0  0  0  1  1\r\n  0  0  0  0  1\r\n  0  0  0  0  0\r\n];\r\norder = calculation_order(dependencies);\r\nordered = dependencies(order,order);\r\nassert(~nnz(triu(ordered-diag(diag(ordered)))));\r\n\r\n%%\r\ndependencies_ = [\r\n  0  0  0  0  0\r\n  0  0  0  0  0\r\n  0  0  0  0  0\r\n  1  0  0  0  0\r\n  0  1  0  0  0\r\n];\r\norder_ = randperm(size(dependencies_,1));\r\ndependencies = dependencies_(order_,order_);\r\norder_ = 0;\r\norder = calculation_order(dependencies);\r\nassert(isequal(size(unique(order,'rows'),1),30));\r\nfor ii = 1:size(order,1)\r\n   ordered = dependencies(order(ii,:),order(ii,:));\r\n   assert(~nnz(triu(ordered-diag(diag(ordered)))));\r\nend\r\n","published":true,"deleted":false,"likes_count":2,"comments_count":0,"created_by":6556,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":12,"test_suite_updated_at":"2014-02-19T08:24:05.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2014-02-18T08:49:38.000Z","updated_at":"2026-08-25T21:57:07.000Z","published_at":"2014-02-19T08:24:05.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"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 closely related to\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://www.mathworks.nl/matlabcentral/cody/problems/2189-order-of-things-1\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eProblem 2189, Order of things - 1\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e. For the details, see the description for that problem. Basically, we have to find the order in which to execute tasks of which the results and prerequisites depend on each other.\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\u003eHowever, this time it may be impossible to find a solution, since dependencies may be cyclic. In that case, return an empty vector.\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\u003eFurthermore, if there are multiple orders possible, return them as multiple rows of the output 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\u003eAgain, the dependencies of the tasks on each other is expressed in a matrix, where each row and column corresponds to a specific task. Each row expresses on which result that task depends. A\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e1\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e indicates that the calculation on that row depends on the one mentioned at the top of that column.\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\u003eReturn the new row/column order as a numeric row-vector, referring to the rows/columns of the input matrix. Of an empty array when no solution is possible. Or a matrix of rows containing the orders, where each row is a different solution, in case multiple solutions exist.\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[   A  B  C  D  E\\nA  0  1  0  0  0\\nB  0  0  0  0  0\\nC  1  0  0  1  0\\nD  1  0  1  0  0\\nE  1  1  1  1  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\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe above problem can not be solved, since\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:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eC\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e depends on\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eD\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e, which in its place depends on\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eC\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e. The returned value would be\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:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e[]\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[   A  B  C  D  E\\nA  0  1  0  0  0\\nB  0  0  0  0  0\\nC  1  0  0  0  0\\nD  1  0  0  0  0\\nE  1  1  1  1  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\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe returned matrix should be\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   2 1 3 4 5 \\n   2 1 4 3 5\\n ]]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eGood luck!\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":2685,"title":"FloydWarshall","description":"Our task is to find shortest paths between every pair of nodes. Floyd-Warshall is a graph algorithm for finding shortest paths in weighted graph. The input of a function will be in weighted adjacency matrix representation. If two vertices does not have any edge than this matrix has Inf value. Function will return a matrix with values of shortest paths between each pair of nodes.\r\nExample :\r\n input= [0   1  Inf Inf \r\n        Inf  0   2  Inf\r\n        Inf Inf  0   3\r\n         4   7  Inf  0]\r\n\r\n output= [0   1   3   6\r\n          9   0   2   5\r\n          7   8   0   3\r\n          4   5   7   0]","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: 307.9px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 153.95px; transform-origin: 407px 153.95px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 84px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; 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 42px; text-align: left; transform-origin: 384px 42px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 372.5px 8px; transform-origin: 372.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eOur task is to find shortest paths between every pair of nodes. Floyd-Warshall is a graph algorithm for finding shortest paths in weighted graph. The input of a function will be in weighted adjacency matrix representation. If two vertices does not have any edge than this matrix has Inf value. Function will return a matrix with values of shortest paths between each pair of nodes.\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: 29.5px 8px; transform-origin: 29.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eExample\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: 4px 8px; transform-origin: 4px 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: 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: 96px 8.5px; tab-size: 4; transform-origin: 96px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e input= [0   1  Inf Inf \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: 92px 8.5px; tab-size: 4; transform-origin: 92px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e        Inf  0   2  Inf\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 88px 8.5px; tab-size: 4; transform-origin: 88px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e        Inf Inf  0   3\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: 92px 8.5px; tab-size: 4; transform-origin: 92px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e         4   7  Inf  0]\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 0px 8.5px; tab-size: 4; transform-origin: 0px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 92px 8.5px; tab-size: 4; transform-origin: 92px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e output= [0   1   3   6\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: 92px 8.5px; tab-size: 4; transform-origin: 92px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e          9   0   2   5\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: 92px 8.5px; tab-size: 4; transform-origin: 92px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e          7   8   0   3\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: 96px 8.5px; tab-size: 4; transform-origin: 96px 8.5px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e          4   5   7   0]\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function y = floydwarshall(x)\r\n  y = x;\r\nend","test_suite":"%%\r\nx = [0   1  Inf Inf;\r\n    Inf  0   2  Inf;\r\n    Inf Inf  0   3\r\n     4   7  Inf  0];\r\ny_correct = [0   1   3   6;\r\n             9   0   2   5;\r\n             7   8   0   3;\r\n             4   5   7   0];\r\nassert(isequal(floydwarshall(x),y_correct))\r\n\r\n%%\r\nx = [0   8  Inf  1;\r\n    Inf  0   1  Inf;\r\n     4  Inf  0  Inf;\r\n    Inf  2   9   0];\r\ny_correct = [0   3   4   1\r\n             5   0   1   6\r\n             4   7   0   5\r\n             7   2   3   0];\r\nassert(isequal(floydwarshall(x),y_correct))\r\n\r\n%%\r\nx = [0   3   6  Inf Inf Inf Inf\r\n     3   0   2   1  Inf Inf Inf\r\n     6   2   0   1   4   2  Inf\r\n    Inf  1   1   0   2  Inf  4\r\n    Inf Inf  4   2   0   2   1\r\n    Inf Inf  2  Inf  2   0   1\r\n    Inf Inf Inf  4   1   1   0];\r\ny_correct = [0 3 5 4 6 7 7\r\n            3 0 2 1 3 4 4\r\n            5 2 0 1 3 2 3\r\n            4 1 1 0 2 3 3\r\n            6 3 3 2 0 2 1\r\n            7 4 2 3 2 0 1\r\n            7 4 3 3 1 1 0];\r\nassert(isequal(floydwarshall(x),y_correct))\r\n\r\n%%\r\nx = [0   3  Inf  5;\r\n     2   0  Inf  4;\r\n    Inf  1   0  Inf;\r\n    Inf Inf  2   0];\r\ny_correct = [0 3 7 5\r\n             2 0 6 4\r\n             3 1 0 5\r\n             5 3 2 0];\r\nassert(isequal(floydwarshall(x),y_correct))\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":1,"created_by":32478,"edited_by":223089,"edited_at":"2023-01-03T06:19:00.000Z","deleted_by":null,"deleted_at":null,"solvers_count":52,"test_suite_updated_at":"2023-01-03T06:19:00.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2014-11-23T22:43:29.000Z","updated_at":"2026-09-19T07:05:29.000Z","published_at":"2014-11-23T22:44:41.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\u003eOur task is to find shortest paths between every pair of nodes. Floyd-Warshall is a graph algorithm for finding shortest paths in weighted graph. The input of a function will be in weighted adjacency matrix representation. If two vertices does not have any edge than this matrix has Inf value. Function will return a matrix with values of shortest paths between each pair of nodes.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eExample\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[ input= [0   1  Inf Inf \\n        Inf  0   2  Inf\\n        Inf Inf  0   3\\n         4   7  Inf  0]\\n\\n output= [0   1   3   6\\n          9   0   2   5\\n          7   8   0   3\\n          4   5   7   0]]]\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":57715,"title":"Easy Sequences 96: One-line Code Challenge - Polynomial Folding Function","description":"The Matlab fold function is a very useful functional programming construct. Unfortunatlely, fold is not available io Cody players.\r\nIn this problem we are required to create the function foldPoly, that takes in 2 inputs, a polynomial vector P and a values vector V. Assuming V is never empty, we define the function as follows:\r\n    foldPoly = @(P,V) fold(@(a,b) polyval(P,a+b),V);\r\nwhich is equivalent, in older Matlab, to:\r\n    function z = foldPoly(P,V)\r\n        z = V(1);\r\n        for i = 2:length(V)\r\n            z = polyval(P,(V(i)+z));\r\n        end\r\n    end\r\nThe challenge here is to write the foldPoly function in just one (1) line of code, excluding the function start and end line.\r\n-----------------\r\nNOTE: Empty lines and comment lines (starting with %) shall not be counted, but semicolons (;) will be considered as an end-of-line character.\r\nHINT: It is helpful to have a Matlab in your computer (or you can use Matlab Online), to be able check if your implementation behaves the same way as the built-in fold function.","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.440001px; 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: 468px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 234px; transform-origin: 407px 234px; 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: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eThe Matlab \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://www.mathworks.com/help/symbolic/fold.html\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; font-weight: 700; text-decoration-line: underline; \"\u003efold\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e function is a very useful functional programming construct. Unfortunatlely, \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-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; font-weight: 700; \"\u003efold \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=\"\"\u003eis not available io Cody players.\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=\"font-weight: 700; \"\u003eIn this problem we are required to create 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-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; font-weight: 700; \"\u003efoldPoly\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; \"\u003e,\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e that takes in 2 inputs, a polynomial vector \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-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; font-weight: 700; \"\u003eP\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 and a values vector \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-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; font-weight: 700; \"\u003eV.\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 Assuming \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-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; font-weight: 700; \"\u003eV\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 is never empty, we define the function as follows:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgb(247, 247, 247); block-size: 20px; 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 10px; transform-origin: 404px 10px; 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: 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; 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; \"\u003e    foldPoly = @(P,V) fold(@(a,b) polyval(P,a+b),V);\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=\"\"\u003ewhich is equivalent, in older Matlab, to:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgb(247, 247, 247); block-size: 120px; 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 60px; transform-origin: 404px 60px; margin-left: 3px; margin-top: 10px; margin-bottom: 10px; margin-right: 3px; \"\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20px; 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 10px; transform-origin: 404px 10px; 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; \"\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); text-decoration-color: rgb(14, 0, 255); text-emphasis-color: rgb(14, 0, 255); \"\u003efunction \u003c/span\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003ez = foldPoly(P,V)\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20px; 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 10px; transform-origin: 404px 10px; 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; \"\u003e        z = V(1);\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20px; 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 10px; transform-origin: 404px 10px; 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; \"\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); text-decoration-color: rgb(14, 0, 255); text-emphasis-color: rgb(14, 0, 255); \"\u003efor \u003c/span\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003ei = 2:length(V)\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20px; 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 10px; transform-origin: 404px 10px; 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; \"\u003e            z = polyval(P,(V(i)+z));\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20px; 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 10px; transform-origin: 404px 10px; 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; \"\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); text-decoration-color: rgb(14, 0, 255); text-emphasis-color: rgb(14, 0, 255); \"\u003eend\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20px; 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 10px; transform-origin: 404px 10px; 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; \"\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); text-decoration-color: rgb(14, 0, 255); text-emphasis-color: rgb(14, 0, 255); \"\u003eend\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: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eThe challenge here is to write the\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; \"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; font-weight: 700; \"\u003efoldPoly\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; \"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003efunction in \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; text-decoration-line: underline; \"\u003ejust one (1) line of code\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, excluding the \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-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; font-weight: 700; \"\u003efunction\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 start and \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-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; font-weight: 700; \"\u003eend\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 line.\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=\"\"\u003e-----------------\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-weight: 700; \"\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; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eEmpty lines and comment lines (starting with \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-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; font-weight: 700; \"\u003e%\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e) shall not be counted, but \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=\"text-decoration-line: underline; \"\u003esemicolons (\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-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; font-weight: 700; text-decoration-line: underline; \"\u003e;\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"text-decoration-line: underline; \"\u003e) will be considered as an end-of-line character.\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=\"font-weight: 700; \"\u003eHINT:\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 It is helpful to have a Matlab in your computer (or you can use \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://www.mathworks.com/products/matlab-online.html\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"text-decoration-line: underline; \"\u003eMatlab Online\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e), to be able check if your implementation behaves the same way as the built-in \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-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; font-weight: 700; \"\u003efold \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=\"\"\u003efunction.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function z = foldPoly(P,V)\r\n    z = V(1);\r\n    for i = 2:length(V)\r\n        z = polyval(P,(V(i)+z));\r\n    end\r\n%end","test_suite":"%%\r\nP = [1 2 1]; V = 0:3;\r\nz_correct = 2809;\r\nassert(isequal(foldPoly(P,V),z_correct))\r\n%%\r\nP = [1 -2 -3 4]; V = 0:5;\r\nz_correct = 22624;\r\nassert(isequal(foldPoly(P,V),z_correct))\r\n%%\r\nP = [1 1]; V = 1:10;\r\nz_correct =  [5 8 11 14 17 20 23 26 29 32];\r\nassert(isequal(arrayfun(@(v) foldPoly(P,[v v v]),V),z_correct))\r\n%%\r\nP = [1 -1 1 -1 1 -1 1 -1]; V = 0:3;\r\nz_correct = 40408373573655;\r\nassert(isequal(foldPoly(P,V),z_correct))\r\n%%\r\nP = [1 3 3 1]; V = ones(1,5);\r\nz_correct = 3.0554;\r\nassert(isequal(round(foldPoly(P,V)/1e39,4),z_correct))\r\n%%\r\nP = [-5 5 -5 5 -5]; V = zeros(1,5);\r\nz_correct = -9.1460;\r\nassert(isequal(round(foldPoly(P,V)/1e60,4),z_correct))\r\n%%\r\nP = repmat([-1 0],1,10); V = [1 1 1];\r\nz_correct = 1.1108;\r\nassert(isequal(round(foldPoly(P,V)/1e111,4),z_correct))\r\n%%\r\nfiletext = fileread('foldPoly.m');\r\nnot_allowed = contains(filetext, 'str2') || contains(filetext, 'regex') || contains(filetext, 'eval') || contains(filetext, 'assignin');\r\nassert(~not_allowed)\r\nc = 0;\r\nfor s = deblank(strtrim(splitlines(filetext)))'\r\n    if ~isempty(s{1}) \u0026\u0026 ~isequal(s{1}(1),'%')\r\n        c = c + numel(find(s{1}==';'));\r\n        if  ~isequal(s{1}(end),';')\r\n            c = c + 1;\r\n        end\r\n    end\r\nend\r\nassert(c\u003c=2)","published":true,"deleted":false,"likes_count":0,"comments_count":3,"created_by":255988,"edited_by":255988,"edited_at":"2023-03-24T05:42:24.000Z","deleted_by":null,"deleted_at":null,"solvers_count":4,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2023-02-18T09:51:56.000Z","updated_at":"2026-08-02T13:43:15.000Z","published_at":"2023-02-19T08:39:40.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\u003eThe Matlab \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/help/symbolic/fold.html\\\"\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003cw:u/\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003efold\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e function is a very useful functional programming construct. Unfortunatlely, \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003efold \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003eis not available io Cody players.\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\u003eIn this problem we are required to create the function \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003efoldPoly\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e,\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e that takes in 2 inputs, a polynomial vector \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eP\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e and a values vector \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eV.\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e Assuming \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eV\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e is never empty, we define the function as follows:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[    foldPoly = @(P,V) fold(@(a,b) polyval(P,a+b),V);]]\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\u003ewhich is equivalent, in older Matlab, to:\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[    function z = foldPoly(P,V)\\n        z = V(1);\\n        for i = 2:length(V)\\n            z = polyval(P,(V(i)+z));\\n        end\\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\u003eThe challenge here is to write the\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003efoldPoly\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003efunction in \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003cw:u/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ejust one (1) line of code\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e, excluding the \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003efunction\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e start and \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eend\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e line.\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: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\u003eEmpty lines and comment lines (starting with \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e%\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e) shall not be counted, but \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:u/\u003e\u003c/w:rPr\u003e\u003cw:t\u003esemicolons (\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003cw:u/\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e;\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:u/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e) will be considered as an end-of-line character.\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\u003eHINT:\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e It is helpful to have a Matlab in your computer (or you can use \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/products/matlab-online.html\\\"\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:u/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eMatlab Online\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e), to be able check if your implementation behaves the same way as the built-in \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003efold \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003efunction.\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":57735,"title":"Easy Sequences 98: One-line Code Challenge - Ternary Operator Function","description":"Ternary operation is a standard construct in most computer languages. The ternary operator assigns value to a variable depending on the result of the condition. For example, we find the following syntax in C and many C-like languages:\r\n    y = (p \u003e q) ? m : n;\r\nwhich means that y is assigned the value of either m or n, depending on whether the statement (p \u003e q) is true or false, respectively.\r\nUnfortunately, Matlab does not have a ternary operator and if we need to get the same effect, we may write the statement this way:\r\n    if p \u003e q\r\n        y = m;\r\n    else\r\n        y = n;\r\n    end\r\nBut that is 5 lines of Matlab code versus just a single line in C!\r\nIn this problem we are required create the function ternaryFunc, which takes on the following parameters:  data values a and b; a conditional function C, that outputs true or false, and functions T and F which are applied to a and b, depending on the value of C(a,b). We can write the function as follows:\r\n    function x = ternaryFunc(a,b,C,T,F)\r\n        if C(a,b)\r\n            x = T(a,b);\r\n        else\r\n            x = F(a,b);\r\n        end\r\n    end\r\n-------------\r\nNOTE: The following restrictions apply:\r\nThe function should only have one (1) line of code, excluding the function start line.\r\nSemicolons (;) are considered end-of-line characters.\r\nUse of if, while and switch statements is not allowed.\r\nRegular expressions and string manipulation are not allowed.\r\nUse of variable length arguments is not allowed.\r\n-------------\r\nHINT:  As an exercise you may want to first solve Problem #44243.","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.440001px; 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: 780px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 390px; transform-origin: 407px 390px; 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\u003ca target='_blank' href = \"https://en.wikipedia.org/wiki/Ternary_conditional_operator\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"font-weight: 700; text-decoration-line: underline; \"\u003eTernary operation\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e is a standard construct in most computer languages. The ternary operator assigns value to a variable depending on the result of the condition. For example, we find the following syntax in C and many C-like languages:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgb(247, 247, 247); block-size: 20px; 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 10px; transform-origin: 404px 10px; 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: 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; 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; \"\u003e    y = (p \u0026gt; q) ? m : n;\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: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003ewhich means that \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-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; font-weight: 700; \"\u003ey\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 is assigned the value of either \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-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; font-weight: 700; \"\u003em \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=\"\"\u003eor \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-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; font-weight: 700; \"\u003en\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, depending on whether the statement \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-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; font-weight: 700; \"\u003e(p \u0026gt; q) \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=\"\"\u003eis true or false, 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=\"\"\u003eUnfortunately, Matlab does not have a ternary operator and if we need to get the same effect, we may write the statement this way:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgb(247, 247, 247); block-size: 100px; 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 50px; transform-origin: 404px 50px; margin-left: 3px; margin-top: 10px; margin-bottom: 10px; margin-right: 3px; \"\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20px; 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 10px; transform-origin: 404px 10px; 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; \"\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); text-decoration-color: rgb(14, 0, 255); text-emphasis-color: rgb(14, 0, 255); \"\u003eif \u003c/span\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003ep \u0026gt; q\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20px; 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 10px; transform-origin: 404px 10px; 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; \"\u003e        y = m;\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20px; 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 10px; transform-origin: 404px 10px; 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; \"\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); text-decoration-color: rgb(14, 0, 255); text-emphasis-color: rgb(14, 0, 255); \"\u003eelse\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20px; 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 10px; transform-origin: 404px 10px; 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; \"\u003e        y = n;\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20px; 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 10px; transform-origin: 404px 10px; 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; \"\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); text-decoration-color: rgb(14, 0, 255); text-emphasis-color: rgb(14, 0, 255); \"\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: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eBut that is 5 lines of Matlab code versus just a single line in C!\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=\"\"\u003eIn this problem we are required \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; \"\u003ecreate 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-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; font-weight: 700; \"\u003eternaryFunc\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; \"\u003e, which takes on the following parameters:  data values \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-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; font-weight: 700; \"\u003ea\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; \"\u003e and \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-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; font-weight: 700; \"\u003eb\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; \"\u003e; a conditional 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-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; 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=\"font-weight: 700; \"\u003e, that outputs true or false, and functions T and F which are applied to \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-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; font-weight: 700; \"\u003ea\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; \"\u003e and \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-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; font-weight: 700; \"\u003eb\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; \"\u003e, depending on the value of \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; font-weight: 700; \"\u003eC(a,b)\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. We can write the function as follows:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgb(247, 247, 247); block-size: 140px; 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 70px; transform-origin: 404px 70px; margin-left: 3px; margin-top: 10px; margin-bottom: 10px; margin-right: 3px; \"\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20px; 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 10px; transform-origin: 404px 10px; 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; \"\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); text-decoration-color: rgb(14, 0, 255); text-emphasis-color: rgb(14, 0, 255); \"\u003efunction \u003c/span\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003ex = ternaryFunc(a,b,C,T,F)\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20px; 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 10px; transform-origin: 404px 10px; 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; \"\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); text-decoration-color: rgb(14, 0, 255); text-emphasis-color: rgb(14, 0, 255); \"\u003eif \u003c/span\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003eC(a,b)\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20px; 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 10px; transform-origin: 404px 10px; 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; \"\u003e            x = T(a,b);\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20px; 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 10px; transform-origin: 404px 10px; 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; \"\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); text-decoration-color: rgb(14, 0, 255); text-emphasis-color: rgb(14, 0, 255); \"\u003eelse\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20px; 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 10px; transform-origin: 404px 10px; 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; \"\u003e            x = F(a,b);\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20px; 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 10px; transform-origin: 404px 10px; 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; \"\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); text-decoration-color: rgb(14, 0, 255); text-emphasis-color: rgb(14, 0, 255); \"\u003eend\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20px; 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 10px; transform-origin: 404px 10px; 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; \"\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); text-decoration-color: rgb(14, 0, 255); text-emphasis-color: rgb(14, 0, 255); \"\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: 0px 0px; transform-origin: 0px 0px; \"\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: 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=\"font-weight: 700; \"\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; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eThe following restrictions apply:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cul style=\"block-size: 100px; font-family: Helvetica, Arial, sans-serif; list-style-type: square; margin-block-end: 20px; margin-block-start: 10px; margin-bottom: 20px; margin-top: 10px; perspective-origin: 391px 50px; transform-origin: 391px 50px; margin-top: 10px; margin-bottom: 20px; \"\u003e\u003cli style=\"background-position-x: 0px; background-position-y: 50%; block-size: 20px; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10px; text-align: left; transform-origin: 363px 10px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"background-position-x: 0%; background-position-y: 0%; block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eThe function should only have one (1) line of code, excluding the function start line.\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"background-position-x: 0px; background-position-y: 50%; block-size: 20px; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10px; text-align: left; transform-origin: 363px 10px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"background-position-x: 0%; background-position-y: 0%; block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eSemicolons (\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"background-position-x: 0%; background-position-y: 0%; block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e;\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"background-position-x: 0%; background-position-y: 0%; block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e) are considered end-of-line characters.\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"background-position-x: 0px; background-position-y: 50%; block-size: 20px; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10px; text-align: left; transform-origin: 363px 10px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"background-position-x: 0%; background-position-y: 0%; block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eUse of \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"background-position-x: 0%; background-position-y: 0%; block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; font-weight: 700; \"\u003eif\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"background-position-x: 0%; background-position-y: 0%; block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e, \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"background-position-x: 0%; background-position-y: 0%; block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; font-weight: 700; \"\u003ewhile\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"background-position-x: 0%; background-position-y: 0%; block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e and \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"background-position-x: 0%; background-position-y: 0%; block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; font-weight: 700; \"\u003eswitch\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"background-position-x: 0%; background-position-y: 0%; block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e statements is not allowed.\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"background-position-x: 0px; background-position-y: 50%; block-size: 20px; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10px; text-align: left; transform-origin: 363px 10px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"background-position-x: 0%; background-position-y: 0%; block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eRegular expressions and string manipulation are not allowed.\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"background-position-x: 0px; background-position-y: 50%; block-size: 20px; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10px; text-align: left; transform-origin: 363px 10px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"background-position-x: 0%; background-position-y: 0%; block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eUse of variable length arguments is not allowed.\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003c/ul\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=\"\"\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: 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=\"font-weight: 700; \"\u003eHINT:  \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=\"\"\u003eAs an exercise you may want to first solve \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://www.mathworks.com/matlabcentral/cody/problems/44243\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"font-weight: 700; text-decoration-line: underline; \"\u003eProblem #44243\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function x = ternaryFunc(a,b,C,T,F)\r\n    if C(a,b)\r\n        x = T(a,b);\r\n    else\r\n        x = F(a,b);\r\n    end\r\nend","test_suite":"%%\r\na = 20; b = 2; \r\nC = @gt;\r\nT = @(a,b) a ^ b;\r\nF = @(a,b) b ^ a;\r\nx_correct = 400;\r\nassert(isequal(ternaryFunc(a,b,C,T,F),x_correct))\r\nC = @le;\r\nx_correct = 1048576;\r\nassert(isequal(ternaryFunc(a,b,C,T,F),x_correct))\r\n%%\r\na = 123; b = 456; \r\nC = @lt;\r\nT = @(a,b) round(sind(b/a),4);\r\nF = @(a,b) round(sind(b*a),4);\r\nx_correct = 0.0647;\r\nassert(isequal(ternaryFunc(a,b,C,T,F),x_correct))\r\nC = @ge;\r\nx_correct = -0.9511;\r\nassert(isequal(ternaryFunc(a,b,C,T,F),x_correct))\r\n%%\r\na = 'A'; b = 'A'; \r\nC = @eq;\r\nT = @(a,b) log(a/b);\r\nF = @(a,b) log(a*b);\r\nx_correct = false;\r\nassert(isequal(ternaryFunc(a,b,C,T,F),x_correct))\r\n%%\r\na = 1000; b = 2000; \r\nC = @gt;\r\nT = @(a,b) char(a + \" is greater than \" + b);\r\nF = @(a,b) char(b + \" is greater than \" + a);\r\nx_correct = '2000 is greater than 1000';\r\nassert(isequal(ternaryFunc(a,b,C,T,F),x_correct))\r\n%%\r\na = repelem('1',5); b = repelem('2',100); \r\nC = @(a,b) all(lt(a,b(1:length(a))));\r\nT = @(a,b) arrayfun(@(i) i,1:str2num(a));\r\nF = @(a,b) arrayfun(@(i) i,1:str2num(b));\r\nx_correct = 1:11111;\r\nassert(isequal(ternaryFunc(a,b,C,T,F),x_correct))\r\n%%\r\na = 1; b = 0; \r\nC = @lt;\r\nT = @(a,b) a * length(1:1/b);\r\nF = @(a,b) b * length(1:1/a);\r\nx_correct = 0;\r\nassert(isequal(ternaryFunc(a,b,C,T,F),x_correct))\r\n%%\r\na = randi(1000); b = randi(1000); \r\nC = @le;\r\nT = @(a,b) a * length(1:b/a);\r\nF = @(a,b) b * length(1:a/b);\r\nif C(a,b)\r\n    x_correct = T(a,b);\r\nelse\r\n    x_correct = F(a,b);\r\nend\r\nassert(isequal(ternaryFunc(a,b,C,T,F),x_correct))\r\n%%\r\nfiletext = fileread('ternaryFunc.m');\r\nnot_allowed = contains(filetext, 'str2') || contains(filetext, 'regex') || contains(filetext, 'eval') || contains(filetext, 'assignin') || contains(filetext, 'if') || contains(filetext, 'while') || contains(filetext, 'switch') || contains(filetext, 'vararg');\r\nassert(~not_allowed)\r\nc = 0;\r\nfor s = deblank(strtrim(splitlines(filetext)))'\r\n    if ~isempty(s{1}) \u0026\u0026 ~isequal(s{1}(1),'%')\r\n        c = c + numel(find(s{1}==';'));\r\n        if  ~isequal(s{1}(end),';')\r\n            c = c + 1;\r\n        end\r\n    end\r\nend\r\nassert(c\u003c=2)","published":true,"deleted":false,"likes_count":0,"comments_count":4,"created_by":255988,"edited_by":255988,"edited_at":"2023-03-29T18:12:50.000Z","deleted_by":null,"deleted_at":null,"solvers_count":12,"test_suite_updated_at":"2023-03-01T19:53:27.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2023-02-26T08:27:07.000Z","updated_at":"2026-08-02T14:21:58.000Z","published_at":"2023-02-27T08:38:47.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:hyperlink w:docLocation=\\\"https://en.wikipedia.org/wiki/Ternary_conditional_operator\\\"\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003cw:u/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eTernary operation\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e is a standard construct in most computer languages. The ternary operator assigns value to a variable depending on the result of the condition. For example, we find the following syntax in C and many C-like languages:\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[    y = (p \u003e q) ? m : n;]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ewhich means that \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ey\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e is assigned the value of either \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003em \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003eor \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003en\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e, depending on whether the statement \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e(p \u0026gt; q) \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003eis true or false, 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\u003eUnfortunately, Matlab does not have a ternary operator and if we need to get the same effect, we may write the statement this way:\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[    if p \u003e q\\n        y = m;\\n    else\\n        y = n;\\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\u003eBut that is 5 lines of Matlab code versus just a single line in C!\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eIn this problem we are required \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ecreate the function \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eternaryFunc\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e, which takes on the following parameters:  data values \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ea\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e and \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eb\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e; a conditional function \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eC\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e, that outputs true or false, and functions T and F which are applied to \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ea\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e and \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eb\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e, depending on the value of \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eC(a,b)\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e. We can write the function as follows:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[    function x = ternaryFunc(a,b,C,T,F)\\n        if C(a,b)\\n            x = T(a,b);\\n        else\\n            x = F(a,b);\\n        end\\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\u003e-------------\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eNOTE: \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003eThe following restrictions apply:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe function should only have one (1) line of code, excluding the function start line.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eSemicolons (\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e;\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e) are considered end-of-line characters.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eUse of \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eif\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\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ewhile\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e and \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eswitch\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e statements is not allowed.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eRegular expressions and string manipulation are not allowed.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eUse of variable length arguments is not allowed.\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:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eHINT:  \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003eAs an exercise you may want to first solve \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/44243\\\"\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003cw:u/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eProblem #44243\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":45367,"title":"Sieve of Eratosthenes - 02","description":" \"Sift the Two's and Sift the Three's,\r\n  The Sieve of Eratosthenes.\r\n  When the multiples sublime,\r\n  The numbers that remain are Prime.\"  ...anonymous\r\n\r\n\r\nSieve of Eratosthenes is a simple but ingenious ancient algorithm for finding all prime numbers up to n.\r\n\r\ngiven a limit n, u've to find all the primes up to n.\r\nThe built-in prime function of matlab is restricted.","description_html":"\u003cpre\u003e \"Sift the Two's and Sift the Three's,\r\n  The Sieve of Eratosthenes.\r\n  When the multiples sublime,\r\n  The numbers that remain are Prime.\"  ...anonymous\u003c/pre\u003e\u003cp\u003eSieve of Eratosthenes is a simple but ingenious ancient algorithm for finding all prime numbers up to n.\u003c/p\u003e\u003cp\u003egiven a limit n, u've to find all the primes up to n.\r\nThe built-in prime function of matlab is restricted.\u003c/p\u003e","function_template":"function y = sieve(n)","test_suite":"%%\r\nassert(isequal(sieve(50),primes(50)))\r\n%%\r\nassert(isequal(sieve(5000),primes(5000)))\r\n%%\r\nassert(isequal(sieve(19),primes(19)))\r\n%%\r\nassert(isequal(sieve(6660),primes(6660)))\r\n%%\r\nassert(isequal(sieve(20050),primes(20050)))\r\n%%\r\nassert(isequal(sieve(200500),primes(200500)))\r\n%%\r\nfiletext = fileread('sieve.m');\r\nassert(isempty(strfind(filetext, 'primes')),'primes() forbidden')\r\nassert(isempty(strfind(filetext, 'isprime')),'isprime() forbidden')","published":true,"deleted":false,"likes_count":3,"comments_count":0,"created_by":363598,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":165,"test_suite_updated_at":"2020-03-16T19:32:16.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2020-03-16T19:27:09.000Z","updated_at":"2026-10-28T13:24:10.000Z","published_at":"2020-03-16T19:32:16.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[ \\\"Sift the Two's and Sift the Three's,\\n  The Sieve of Eratosthenes.\\n  When the multiples sublime,\\n  The numbers that remain are Prime.\\\"  ...anonymous]]\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\u003eSieve of Eratosthenes is a simple but ingenious ancient algorithm for finding all prime numbers up to n.\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 a limit n, u've to find all the primes up to n. The built-in prime function of matlab is restricted.\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":43642,"title":"Euclidean distance from a point to a polynomial","description":"A not uncommon problem in the area of computational geometry is to find the closest point to a straight line from a given point, or the distance from a point to a line. As you might expect, there is a simple formula for those things.\r\n\r\nAs an extension, I decided one day to write a tool that would compute the distance from a point to a general polynomial function in the (x,y) plane. That is your problem here:\r\n\r\nGiven a point (x0,y0), and a polynomial in the form y=P(x) where the function P is defined by the coefficients of a polynomial, you need to compute the minimum \u003chttps://en.wikipedia.org/wiki/Euclidean_distance Euclidean distance\u003e to that polynomial. So you need to find and return the minimum distance in the (x,y) plane between the point (x0,y0), and the function y=P(x).\r\n\r\nThe function P will be passed in as the coefficients of a polynomial in standard MATLAB form, thus with the highest order coefficient first in a vector, like that generated by polyfit, and used by polyval. (P might be as simple as a constant function.) The point in question will be passed in as a vector of length 2, thus [x0,y0].\r\n\r\nAs test case for you to check your code, the distance from the point (-2,-5) to the curve y=x^2/2+3*x-5 should be:\r\n\r\n  x0y0 = [-2 -5];\r\n  P = [0.5 3 -5];\r\n  D = distance2polynomial(P,xy)\r\n  D =\r\n          1.89013819497707\r\n\r\n(Be careful plotting these curves in case you want to plot your solution. The command \"axis equal\" is a good idea.)\r\n\r\nThe symbolic TB tells me the distance is 1.8901381949770695260066523338279..., but I'll allow some slop in your solution, since you may have chosen a different algorithm than the one I chose. You should expect to provide at least 13 correct significant digits in the solution.\r\n\r\nDisclaimer: I'm not really sure why anyone needs such a code, which is why I've not posted my solution on the FEX. Anyway, my solution is a pretty one that I thought might make a fun Cody problem, and I wanted to see how others might approach the problem. I expect that my reference solution will score poorly for Cody purposes, since it is carefully coded, complete with error checks, and returns more than just the minimum distance.","description_html":"\u003cp\u003eA not uncommon problem in the area of computational geometry is to find the closest point to a straight line from a given point, or the distance from a point to a line. As you might expect, there is a simple formula for those things.\u003c/p\u003e\u003cp\u003eAs an extension, I decided one day to write a tool that would compute the distance from a point to a general polynomial function in the (x,y) plane. That is your problem here:\u003c/p\u003e\u003cp\u003eGiven a point (x0,y0), and a polynomial in the form y=P(x) where the function P is defined by the coefficients of a polynomial, you need to compute the minimum \u003ca href = \"https://en.wikipedia.org/wiki/Euclidean_distance\"\u003eEuclidean distance\u003c/a\u003e to that polynomial. So you need to find and return the minimum distance in the (x,y) plane between the point (x0,y0), and the function y=P(x).\u003c/p\u003e\u003cp\u003eThe function P will be passed in as the coefficients of a polynomial in standard MATLAB form, thus with the highest order coefficient first in a vector, like that generated by polyfit, and used by polyval. (P might be as simple as a constant function.) The point in question will be passed in as a vector of length 2, thus [x0,y0].\u003c/p\u003e\u003cp\u003eAs test case for you to check your code, the distance from the point (-2,-5) to the curve y=x^2/2+3*x-5 should be:\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003ex0y0 = [-2 -5];\r\nP = [0.5 3 -5];\r\nD = distance2polynomial(P,xy)\r\nD =\r\n        1.89013819497707\r\n\u003c/pre\u003e\u003cp\u003e(Be careful plotting these curves in case you want to plot your solution. The command \"axis equal\" is a good idea.)\u003c/p\u003e\u003cp\u003eThe symbolic TB tells me the distance is 1.8901381949770695260066523338279..., but I'll allow some slop in your solution, since you may have chosen a different algorithm than the one I chose. You should expect to provide at least 13 correct significant digits in the solution.\u003c/p\u003e\u003cp\u003eDisclaimer: I'm not really sure why anyone needs such a code, which is why I've not posted my solution on the FEX. Anyway, my solution is a pretty one that I thought might make a fun Cody problem, and I wanted to see how others might approach the problem. I expect that my reference solution will score poorly for Cody purposes, since it is carefully coded, complete with error checks, and returns more than just the minimum distance.\u003c/p\u003e","function_template":"function D = distance2polynomial(P,x0y0)\r\n  % compute the minimum Euclidean distance between a point and a polynomial\r\n  D = rand;\r\nend\r\n","test_suite":"%%\r\nx0y0 = [-2 5];\r\nP = [0.5 3 -5];\r\ny_correct = 4.3093988461280149175163000679048;\r\ntol = 5e-13;\r\nassert(abs(distance2polynomial(P,x0y0)-y_correct) \u003c tol)\r\n\r\n%%\r\nx0y0 = [pi, pi];\r\nP = [10];\r\ny_correct = 6.8584073464102067615373566167205;\r\ntol = 7e-13;\r\nassert(abs(distance2polynomial(P,x0y0)-y_correct) \u003c tol)\r\n\r\n%%\r\nx0y0 = [0.25,50];\r\nP = [1 2 3 4 5];\r\ny_correct = 1.6470039192886012020234097061626;\r\ntol = 5e-13;\r\nassert(abs(distance2polynomial(P,x0y0)-y_correct) \u003c tol)\r\n\r\n%%\r\nx0y0 = [-3 -3];\r\nP = [-2 1];\r\ny_correct = 4.4721359549995793928183473374626;\r\ntol = 5e-13;\r\nassert(abs(distance2polynomial(P,x0y0)-y_correct) \u003c tol)\r\n\r\n%%\r\nx0y0 = [0 5];\r\nP = [1 0 1];\r\ny_correct = 1.9364916731037084425896326998912;\r\ntol = 2e-13;\r\nassert(abs(distance2polynomial(P,x0y0)-y_correct) \u003c tol)\r\n\r\n%%\r\nx0y0 = [-2 -5];\r\nP = [0.5 3 -5];\r\ny_correct = 1.8901381949770695260066523338279;\r\ntol = 2e-13;\r\n(abs(distance2polynomial(P,x0y0)-y_correct) \u003c tol)\r\n\r\n","published":true,"deleted":false,"likes_count":3,"comments_count":2,"created_by":544,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":37,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":37,"created_at":"2016-10-28T21:00:14.000Z","updated_at":"2026-06-23T17:06:47.000Z","published_at":"2016-10-28T21:08:10.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\u003eA not uncommon problem in the area of computational geometry is to find the closest point to a straight line from a given point, or the distance from a point to a line. As you might expect, there is a simple formula for those things.\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\u003eAs an extension, I decided one day to write a tool that would compute the distance from a point to a general polynomial function in the (x,y) plane. That is your problem here:\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 a point (x0,y0), and a polynomial in the form y=P(x) where the function P is defined by the coefficients of a polynomial, you need to compute the minimum\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://en.wikipedia.org/wiki/Euclidean_distance\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eEuclidean distance\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e to that polynomial. So you need to find and return the minimum distance in the (x,y) plane between the point (x0,y0), and the function y=P(x).\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 function P will be passed in as the coefficients of a polynomial in standard MATLAB form, thus with the highest order coefficient first in a vector, like that generated by polyfit, and used by polyval. (P might be as simple as a constant function.) The point in question will be passed in as a vector of length 2, thus [x0,y0].\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\u003eAs test case for you to check your code, the distance from the point (-2,-5) to the curve y=x^2/2+3*x-5 should be:\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[x0y0 = [-2 -5];\\nP = [0.5 3 -5];\\nD = distance2polynomial(P,xy)\\nD =\\n        1.89013819497707]]\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\u003e(Be careful plotting these curves in case you want to plot your solution. The command \\\"axis equal\\\" is a good idea.)\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 symbolic TB tells me the distance is 1.8901381949770695260066523338279..., but I'll allow some slop in your solution, since you may have chosen a different algorithm than the one I chose. You should expect to provide at least 13 correct significant digits in the solution.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eDisclaimer: I'm not really sure why anyone needs such a code, which is why I've not posted my solution on the FEX. Anyway, my solution is a pretty one that I thought might make a fun Cody problem, and I wanted to see how others might approach the problem. I expect that my reference solution will score poorly for Cody purposes, since it is carefully coded, complete with error checks, and returns more than just the minimum distance.\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":45463,"title":"Word Ladder","description":"Given a set of words, and two other words - start and destination,\r\n\r\nFind the smallest chain from start to the destination such that adjacent words in the chain only differ by one character and each word in the chain exists in the set. \r\n\r\nAll the words are of the same length.\r\nThe starting word is not in the set but destination word would be.\r\n\r\nFor example, \r\n\r\n Start = 'COLD'\r\n Destination = 'WARM'\r\n set ={ CORD CARD DART FORT WARM FARM WARD}\r\n\r\n COLD → CORD → CARD → WARD → WARM","description_html":"\u003cp\u003eGiven a set of words, and two other words - start and destination,\u003c/p\u003e\u003cp\u003eFind the smallest chain from start to the destination such that adjacent words in the chain only differ by one character and each word in the chain exists in the set.\u003c/p\u003e\u003cp\u003eAll the words are of the same length.\r\nThe starting word is not in the set but destination word would be.\u003c/p\u003e\u003cp\u003eFor example,\u003c/p\u003e\u003cpre\u003e Start = 'COLD'\r\n Destination = 'WARM'\r\n set ={ CORD CARD DART FORT WARM FARM WARD}\u003c/pre\u003e\u003cpre\u003e COLD → CORD → CARD → WARD → WARM\u003c/pre\u003e","function_template":"function out2 = word_lad_2(ary,st,des)","test_suite":"%%\r\nary={ 'CORD', 'CARD', 'DART', 'FORT', 'WARM', 'FARM', 'WARD'}\r\nst='COLD'\r\ndes='WARM'\r\ny_correct = {'CORD','CARD','WARD','WARM'};\r\nassert(isequal(word_lad_2(ary,st,des),y_correct))\r\n\r\n%%\r\nary={'pan','can','fan','pat','mat','fat','lot','opt','apt','act','ape','put','aut'}\r\nst='man'\r\ndes='ape'\r\ny_correct = {'pan'\t'pat'\t'put'\t'aut'\t'apt'\t'ape'};\r\nassert(isequal(word_lad_2(ary,st,des),y_correct))\r\n\r\n%%\r\nary={'leg','hot','dot','dog','lot','log','cog','hog','zog','fog'}\r\nst='hit'\r\ndes='fog'\r\ny_correct = {'hot','hog','fog'};\r\nassert(isequal(word_lad_2(ary,st,des),y_correct))\r\n\r\n%%\r\nary={'safer', 'rifer','upper','rifre', 'rider','tider' ,'cider','coder','loder', 'cooer', 'cooey', 'gooey', 'goosy' , 'goose' ,'loose','nosey','doose'}\r\nst='refer'\r\ndes='loose'\r\ny_correct = {'rifer'\t'rider'\t'cider'\t'coder'\t'cooer'\t'cooey'\t'gooey'\t'goosy'\t'goose'\t'loose'};\r\nassert(isequal(word_lad_2(ary,st,des),y_correct))\r\n\r\n\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":4,"created_by":363598,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":19,"test_suite_updated_at":"2020-04-16T07:12:17.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2020-04-16T07:11:43.000Z","updated_at":"2026-05-24T22:25:34.000Z","published_at":"2020-04-16T07:12:17.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eGiven a set of words, and two other words - start and destination,\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFind the smallest chain from start to the destination such that adjacent words in the chain only differ by one character and each word in the chain exists in the set.\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\u003eAll the words are of the same length. The starting word is not in the set but destination word would be.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFor example,\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[ Start = 'COLD'\\n Destination = 'WARM'\\n set ={ CORD CARD DART FORT WARM FARM WARD}\\n\\n COLD → CORD → CARD → WARD → WARM]]\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":45389,"title":"Knight's Watch","description":"  \"Night gathers, and now my watch begins\"\r\n\r\nA knight is placed on an n-by-n sized chessboard at the position x. Find the probability that after k steps, the knight will remain within the chessboard.\r\n\r\nAny knight's move that places him outside the board should be considered invalid.\r\n\r\n For simplicity, the knight's position on the chessboard is defined with the numeric\r\n notation instead of algebraic notation. so 'Ka1' is represented as (1,1).\r\n\r\nBrief explanation:\r\n\r\n  Say the knight is placed in pos-(1,1). A knight has 8 possible moves. So in the next move, \r\nthe Knight can go to 8 different positions in the chessboard. But among them, only 2\r\n positions are valid i.e. the knight remains within the chessboard and they are -\r\n(3,2) \u0026 (2,3). So the prob. is 2/8 after 1 move. What will be the probability after k moves?\r\n\r\n","description_html":"\u003cpre class=\"language-matlab\"\u003e\"Night gathers, and now my watch begins\"\r\n\u003c/pre\u003e\u003cp\u003eA knight is placed on an n-by-n sized chessboard at the position x. Find the probability that after k steps, the knight will remain within the chessboard.\u003c/p\u003e\u003cp\u003eAny knight's move that places him outside the board should be considered invalid.\u003c/p\u003e\u003cpre\u003e For simplicity, the knight's position on the chessboard is defined with the numeric\r\n notation instead of algebraic notation. so 'Ka1' is represented as (1,1).\u003c/pre\u003e\u003cp\u003eBrief explanation:\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003eSay the knight is placed in pos-(1,1). A knight has 8 possible moves. So in the next move, \r\nthe Knight can go to 8 different positions in the chessboard. But among them, only 2\r\npositions are valid i.e. the knight remains within the chessboard and they are -\r\n(3,2) \u0026 (2,3). So the prob. is 2/8 after 1 move. What will be the probability after k moves?\r\n\u003c/pre\u003e","function_template":"function prob = knights_watch(x,n,k)","test_suite":"%%\r\nx =[1,1];\r\nassert(isequal(knights_watch(x,3,2),0.0625))\r\n%%\r\nx =[1,1];\r\nassert(isequal(knights_watch(x,4,4),0.0176))\r\n%%\r\nx =[6,4];\r\nassert(isequal(knights_watch(x,6,9),0.012))\r\n%%\r\nx =[6,4];\r\nassert(isequal(knights_watch(x,8,25),0.0011))\r\n%%\r\nx =[8,8];\r\nassert(isequal(knights_watch(x,8,15),0.0042))\r\n%%\r\nx =[8,8];\r\nassert(isequal(knights_watch(x,16,15),0.4666))\r\n%%\r\nx =[3,1];\r\nassert(isequal(knights_watch(x,16,50),0.0037))","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":363598,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":15,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2020-03-25T18:55:22.000Z","updated_at":"2026-07-24T04:40:51.000Z","published_at":"2020-03-25T18:55:22.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[\\\"Night gathers, and now my watch begins\\\"]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eA knight is placed on an n-by-n sized chessboard at the position x. Find the probability that after k steps, the knight will remain within the chessboard.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eAny knight's move that places him outside the board should be considered invalid.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[ For simplicity, the knight's position on the chessboard is defined with the numeric\\n notation instead of algebraic notation. so 'Ka1' is represented as (1,1).]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eBrief explanation:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[Say the knight is placed in pos-(1,1). A knight has 8 possible moves. So in the next move, \\nthe Knight can go to 8 different positions in the chessboard. But among them, only 2\\npositions are valid i.e. the knight remains within the chessboard and they are -\\n(3,2) \u0026 (2,3). So the prob. is 2/8 after 1 move. What will be the probability after k moves?]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":55305,"title":"Chain multiplication - 02","description":"Following up on the problem in 55295, you found the number of multiplications needed to multiply two matrices.\r\nNow, you are given a sequence of matrices. There are many different ways you can multiply the matrices. For example, \r\nsay, you are given 4 matrix - A, B, C, D. They can be multiplied as follows - A(B(CD)), A((BC)D), ((AB)C)D, (AB)(CD), (A(BC))D.\r\n\r\nyou have to figure out which is the optimal way of multiplying those matrices based on the mininum number of multiplications required. For example, consider a simple 3 matrix case.\r\nA(1,2), B(2,3), C(3,2)\r\nA(BC) =\u003e BC requires 12 multiplications; multiplying A matrix with the result requires 4 multiplications. Total = 12+4= 16.\r\n(AB)C =\u003e AB requires 6 multiplications; multiplying the result with the C matrix requires 6 multiplications. Total = 6+6= 12.\r\nTherefore, to multiply ABC - the optimal way is (AB)C requiring 12 multiplications in total.\r\n\r\nHere, you will be given an array 'a' containing the size of consequtive matrices. The output is the minimum number of multiplications required to multiply those matrices.\r\nhere, a = [2, 4, 6, 1] represents 3 matrices --  A(2,4), B(4,6), and C(6,1)","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: 414px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 207px; transform-origin: 407px 207px; 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: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eFollowing up on the problem in \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://www.mathworks.com/matlabcentral/cody/problems/55295-chain-multiplication-01\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003e55295\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e, you found the number of multiplications needed to multiply two matrices.\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=\"\"\u003eNow, you are given a sequence of matrices. There are many different ways you can multiply the matrices. For example, \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=\"\"\u003esay, you are given 4 matrix - A, B, C, D. They can be multiplied as follows - A(B(CD)), A((BC)D), ((AB)C)D, (AB)(CD), (A(BC))D.\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=\"\"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eyou have to figure out which is the optimal way of multiplying those matrices based on the mininum number of multiplications required. For example, consider a simple 3 matrix case.\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=\"\"\u003eA(1,2), B(2,3), C(3,2)\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; 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=\"\"\u003eA(BC) =\u0026gt; BC requires 12 multiplications; multiplying A matrix with the result requires 4 multiplications. Total = 12+4= 16.\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=\"\"\u003e(AB)C =\u0026gt; AB requires 6 multiplications; multiplying the result with the C matrix requires 6 multiplications. Total = 6+6= 12.\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=\"\"\u003eTherefore, to multiply ABC - the optimal way is (AB)C requiring 12 multiplications in total.\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=\"\"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eHere, you will be given an array 'a' containing the size of consequtive matrices. The output is the minimum number of multiplications required to multiply those matrices.\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=\"\"\u003ehere, a = [2, 4, 6, 1] represents 3 matrices --  A(2,4), B(4,6), and C(6,1)\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function y = chain_mul_02(a)\r\n  y = x;\r\nend","test_suite":"%%\r\na=[1,2,3,2];\r\ny_correct = 12;\r\nassert(isequal(chain_mul_02(a),y_correct))\r\n\r\n%%\r\na=[4,10,3,12,20,7];\r\ny_correct = 1344;\r\nassert(isequal(chain_mul_02(a),y_correct))\r\n\r\n\r\n%%\r\na=[1,2,3,4];\r\ny_correct = 18;\r\nassert(isequal(chain_mul_02(a),y_correct))\r\n\r\n\r\n%%\r\na=[81,213,78,96,2,1,98,102, 1200,4];\r\ny_correct = 179067;\r\nassert(isequal(chain_mul_02(a),y_correct))\r\n\r\n%%\r\na=[40, 20, 30, 10, 30];\r\ny_correct = 26000;\r\nassert(isequal(chain_mul_02(a),y_correct))\r\n\r\n%%\r\na=[7,1,5,4,2];\r\ny_correct = 42;\r\nassert(isequal(chain_mul_02(a),y_correct))","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":363598,"edited_by":363598,"edited_at":"2022-08-14T21:58:45.000Z","deleted_by":null,"deleted_at":null,"solvers_count":24,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2022-08-14T20:23:49.000Z","updated_at":"2026-07-28T18:28:02.000Z","published_at":"2022-08-14T21:45:21.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\u003eFollowing up on the problem in \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/55295-chain-multiplication-01\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e55295\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e, you found the number of multiplications needed to multiply two matrices.\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\u003eNow, you are given a sequence of matrices. There are many different ways you can multiply the matrices. For example, \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\u003esay, you are given 4 matrix - A, B, C, D. They can be multiplied as follows - A(B(CD)), A((BC)D), ((AB)C)D, (AB)(CD), (A(BC))D.\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\u003eyou have to figure out which is the optimal way of multiplying those matrices based on the mininum number of multiplications required. For example, consider a simple 3 matrix case.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eA(1,2), B(2,3), C(3,2)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eA(BC) =\u0026gt; BC requires 12 multiplications; multiplying A matrix with the result requires 4 multiplications. Total = 12+4= 16.\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(AB)C =\u0026gt; AB requires 6 multiplications; multiplying the result with the C matrix requires 6 multiplications. Total = 6+6= 12.\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\u003eTherefore, to multiply ABC - the optimal way is (AB)C requiring 12 multiplications in total.\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\u003eHere, you will be given an array 'a' containing the size of consequtive matrices. The output is the minimum number of multiplications required to multiply those matrices.\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\u003ehere, a = [2, 4, 6, 1] represents 3 matrices --  A(2,4), B(4,6), and C(6,1)\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":45458,"title":"Minimal Path - 03 ","description":"Given a matrix, find the minimal path sum from the top left to the bottom right corner.\r\n\r\nNow you can move up, right \u0026 down.\r\n\r\nShow the path using linear indices.","description_html":"\u003cp\u003eGiven a matrix, find the minimal path sum from the top left to the bottom right corner.\u003c/p\u003e\u003cp\u003eNow you can move up, right \u0026 down.\u003c/p\u003e\u003cp\u003eShow the path using linear indices.\u003c/p\u003e","function_template":"function yy = minimal_path_4(x)","test_suite":"%%\r\nx =[1 12 4 6 8 10 100 ; 1 5 7 87 98 2 200;20 56 74 1 34 56 21]\r\ny_correct = [1     4     7    10    13    16    17    18    21];\r\nassert(isequal(minimal_path_4(x),y_correct))\r\n\r\n%%\r\nx =[1 122 4 6 8 10 100 ; 1 5 7 87 98 2 200;20 56 74 1 34 56 21]\r\ny_correct = [1     2     5     8     7    10    13    16    17    18    21];\r\nassert(isequal(minimal_path_4(x),y_correct))\r\n\r\n\r\n%%\r\nx = [2     2     2     2     2\r\n     0     0    10     1     2\r\n    20     0    20     1     2\r\n    30     0     0     3     2];\r\nx=flipud(x);\r\ny_correct = [1     5     6     7     8    12    16    20];\r\nassert(isequal(minimal_path_4(x),y_correct))\r\n\r\n\r\n%%\r\nx=[131\t673\t234\t103\t18\r\n201\t96\t342\t965\t150\r\n630\t803\t746\t422\t111\r\n537\t699\t497\t121\t956\r\n805\t732\t524\t37\t331];\r\n\r\ny_correct = [1     2     7    12    13    18    19    20    25];\r\nassert(isequal(minimal_path_4(x),y_correct))\r\n\r\n\r\n","published":true,"deleted":false,"likes_count":0,"comments_count":0,"created_by":363598,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":11,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2020-04-14T22:57:31.000Z","updated_at":"2026-07-30T14:11:31.000Z","published_at":"2020-04-14T22:57:31.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"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 a matrix, find the minimal path sum from the top left to the bottom right corner.\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\u003eNow you can move up, right \u0026amp; 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\u003eShow the path using linear indices.\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":55355,"title":"Chain multiplication - 05","description":"Following up on the problem in 55305, you found the optimal way of multiplying a chain of matrices.\r\nIn problem 55315, you had to calculate the number of multiplications required based on the positions of parenthesis.\r\n\r\nThis problem is a combination of the previous two. You have to place the parenthesis in the proper places so that minimum number of multiplications are required.\r\nFor instance, array= [1,2,3,2].\r\nSo there are three matrices A, B, and C.\r\nyou can multiply in two ways - A(BC) or (AB)C.\r\nA(BC) - requires total 16 multiplications, while (AB)C requires total 12 multiplications. So the later one is the answer.","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: 252px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 126px; transform-origin: 407px 126px; 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: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eFollowing up on the problem in \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://www.mathworks.com/matlabcentral/cody/problems/55305-chain-multiplication-02/solutions/new\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003e55305\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e, you found the optimal way of multiplying a chain of matrices.\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=\"\"\u003eIn problem \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://www.mathworks.com/matlabcentral/cody/problems/55315-chain-multiplication-04/solutions/new\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003e55315\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e, you had to calculate the number of multiplications required based on the positions of parenthesis.\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=\"\"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eThis problem is a combination of the previous two. You have to place the parenthesis in the proper places so that minimum number of multiplications are required.\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=\"\"\u003eFor instance, array= [1,2,3,2].\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; 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=\"\"\u003eSo there are three matrices A, B, and C.\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=\"\"\u003eyou can multiply in two ways - A(BC) or (AB)C.\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=\"\"\u003eA(BC) - requires total 16 multiplications, while (AB)C requires total 12 multiplications. So the later one is the answer.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function y = chain_mul_05(array)\r\n  y = x;\r\nend","test_suite":"%%\r\narray= [1,2,3,2];\r\ny_correct = \"(AB)C\";\r\nassert(isequal(chain_mul_05(array),y_correct))\r\n\r\n%%\r\narray= [1,2,3,4];\r\ny_correct = \"(AB)C\";\r\nassert(isequal(chain_mul_05(array),y_correct))\r\n\r\n%%\r\narray= [4,10,3,12,20,7];\r\ny_correct = \"(AB)((CD)E)\";\r\nassert(isequal(chain_mul_05(array),y_correct))\r\n\r\n%%\r\narray= [7,1,5,4,2];\r\ny_correct = \"A((BC)D)\";\r\nassert(isequal(chain_mul_05(array),y_correct))\r\n\r\n","published":true,"deleted":false,"likes_count":0,"comments_count":0,"created_by":363598,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":5,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2022-08-25T00:36:44.000Z","updated_at":"2026-07-30T21:31:47.000Z","published_at":"2022-08-25T00:36:44.000Z","restored_at":null,"restored_by":null,"spam":null,"simulink":false,"admin_reviewed":false,"description_opc":"{\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFollowing up on the problem in \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/55305-chain-multiplication-02/solutions/new\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e55305\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e, you found the optimal way of multiplying a chain of matrices.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eIn problem \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/55315-chain-multiplication-04/solutions/new\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e55315\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e, you had to calculate the number of multiplications required based on the positions of parenthesis.\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\u003eThis problem is a combination of the previous two. You have to place the parenthesis in the proper places so that minimum number of multiplications are required.\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 instance, array= [1,2,3,2].\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eSo there are three matrices A, B, and C.\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\u003eyou can multiply in two ways - A(BC) or (AB)C.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eA(BC) - requires total 16 multiplications, while (AB)C requires total 12 multiplications. So the later one is the answer.\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":45426,"title":"The Tortoise and the Hare - 02","description":"Previous problem \u003chttps://www.mathworks.com/matlabcentral/cody/problems/45425-the-tortoise-and-the-hare-01\u003e\r\n\r\nSuppose in an infinitely long line, the tortoise is standing in position 0.\r\n\r\nFrom that place, it can move in both +ve and -ve direction. The condition is that, in i-th jump, it can move i step forward or backward. \r\n\r\nSo one possible scenario can be -\r\n\r\n 0 [i=1] --- 1 step forward\r\n 1 [i=2] --- 2 step forward\r\n 3 [i=3] --- 3 step forward\r\n 6 [i=4] --- 4 step backward\r\n 2 [i=5] --- 5 step forward\r\n 7 [i=6] --- 6 step backward\r\n 1 [i=7] --- 7 step forward\r\n 8\r\n\r\nIf you look carefully, you'll find that -- If the tortoise moves this way, it'll always be able to reach any destination (x). \r\n\r\nThe question is what is the minimum number of moves it'll take to reach destination x.\r\n\r\nFor example -- \r\n\r\n if x=8\r\n  \u003e\u003e in the above example, it takes 7 steps\r\n  \u003e\u003e but if it moves this way  -- [0,-1,1,4,8] -- steps required = 4.\r\n\r\nSo 4 is the optimum way.\r\n","description_html":"\u003cp\u003ePrevious problem \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/45425-the-tortoise-and-the-hare-01\"\u003ehttps://www.mathworks.com/matlabcentral/cody/problems/45425-the-tortoise-and-the-hare-01\u003c/a\u003e\u003c/p\u003e\u003cp\u003eSuppose in an infinitely long line, the tortoise is standing in position 0.\u003c/p\u003e\u003cp\u003eFrom that place, it can move in both +ve and -ve direction. The condition is that, in i-th jump, it can move i step forward or backward.\u003c/p\u003e\u003cp\u003eSo one possible scenario can be -\u003c/p\u003e\u003cpre\u003e 0 [i=1] --- 1 step forward\r\n 1 [i=2] --- 2 step forward\r\n 3 [i=3] --- 3 step forward\r\n 6 [i=4] --- 4 step backward\r\n 2 [i=5] --- 5 step forward\r\n 7 [i=6] --- 6 step backward\r\n 1 [i=7] --- 7 step forward\r\n 8\u003c/pre\u003e\u003cp\u003eIf you look carefully, you'll find that -- If the tortoise moves this way, it'll always be able to reach any destination (x).\u003c/p\u003e\u003cp\u003eThe question is what is the minimum number of moves it'll take to reach destination x.\u003c/p\u003e\u003cp\u003eFor example --\u003c/p\u003e\u003cpre\u003e if x=8\r\n  \u0026gt;\u0026gt; in the above example, it takes 7 steps\r\n  \u0026gt;\u0026gt; but if it moves this way  -- [0,-1,1,4,8] -- steps required = 4.\u003c/pre\u003e\u003cp\u003eSo 4 is the optimum way.\u003c/p\u003e","function_template":"function y = rabbit(n)","test_suite":"%%\r\nassert(isequal(rabbit(8),4))\r\n%%\r\nassert(isequal(rabbit(18),7))\r\n%%\r\nassert(isequal(rabbit(-600),35))\r\n%%\r\nassert(isequal(rabbit(6600),115))\r\n%%\r\nassert(isequal(rabbit(99999),449))\r\n%%\r\nassert(isequal(rabbit(-16),7))\r\n%%\r\nassert(isequal(rabbit(45237929),9513))\r\n%%\r\nassert(isequal(rabbit(46),11))\r\n","published":true,"deleted":false,"likes_count":2,"comments_count":5,"created_by":363598,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":26,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2020-04-07T05:20:53.000Z","updated_at":"2026-05-24T22:24:54.000Z","published_at":"2020-04-07T05:20:53.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ePrevious problem\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/45425-the-tortoise-and-the-hare-01\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026lt;https://www.mathworks.com/matlabcentral/cody/problems/45425-the-tortoise-and-the-hare-01\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026gt;\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eSuppose in an infinitely long line, the tortoise is standing in position 0.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFrom that place, it can move in both +ve and -ve direction. The condition is that, in i-th jump, it can move i step forward or backward.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eSo one possible scenario can be -\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[ 0 [i=1] --- 1 step forward\\n 1 [i=2] --- 2 step forward\\n 3 [i=3] --- 3 step forward\\n 6 [i=4] --- 4 step backward\\n 2 [i=5] --- 5 step forward\\n 7 [i=6] --- 6 step backward\\n 1 [i=7] --- 7 step forward\\n 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\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eIf you look carefully, you'll find that -- If the tortoise moves this way, it'll always be able to reach any destination (x).\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 question is what is the minimum number of moves it'll take to reach destination x.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFor example --\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[ if x=8\\n  \u003e\u003e in the above example, it takes 7 steps\\n  \u003e\u003e but if it moves this way  -- [0,-1,1,4,8] -- steps required = 4.]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eSo 4 is the optimum way.\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":45422,"title":"Coin Distribution - 02 ","description":"Prev prob \u003chttps://www.mathworks.com/matlabcentral/cody/problems/45385-coin-distribution\u003e\r\n\r\nGiven a set of coins and an amount, find out how many ways the amount can be made using the coins given.\r\nAssume, there is an infinite supply of all the coins.\r\n\r\nFor instance,\r\n\r\n Amount = 10\r\n Coins  = [ 2,3,5]\r\n\r\n possible ways are - [2,2,2,2,2],[2,3,5],[5,5],[2,2,3,3]\r\n so total no. of ways = 4.","description_html":"\u003cp\u003ePrev prob \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/45385-coin-distribution\"\u003ehttps://www.mathworks.com/matlabcentral/cody/problems/45385-coin-distribution\u003c/a\u003e\u003c/p\u003e\u003cp\u003eGiven a set of coins and an amount, find out how many ways the amount can be made using the coins given.\r\nAssume, there is an infinite supply of all the coins.\u003c/p\u003e\u003cp\u003eFor instance,\u003c/p\u003e\u003cpre\u003e Amount = 10\r\n Coins  = [ 2,3,5]\u003c/pre\u003e\u003cpre\u003e possible ways are - [2,2,2,2,2],[2,3,5],[5,5],[2,2,3,3]\r\n so total no. of ways = 4.\u003c/pre\u003e","function_template":"function out = coin_lev(coins,amount)","test_suite":"%%\r\ncoins= [ 2,3,5];\r\namount = 10;\r\nassert(isequal(coin_lev(coins,amount),4))\r\n\r\n%%\r\ncoins= [2,3,5,10];\r\namount = 15;\r\nassert(isequal(coin_lev(coins,amount),9))\r\n\r\n%%\r\ncoins= [ 2,3,5];\r\namount = 50;\r\nassert(isequal(coin_lev(coins,amount),51))\r\n\r\n%%\r\ncoins= [2,5,10,1,20];\r\namount = 1225;\r\nassert(isequal(coin_lev(coins,amount),49884828))\r\n\r\n%%\r\ncoins= [ 11,19,23];\r\namount = 12252;\r\nassert(isequal(coin_lev(coins,amount),15681))\r\n%%\r\ncoins= [ 11,19,23,100];\r\namount = 50;\r\nassert(isequal(coin_lev(coins,amount),0))\r\n\r\n%%\r\ncoins= [1,2,3,4,5,8,10,15,20,25];\r\namount = 200;\r\nassert(isequal(coin_lev(coins,amount),119495730))\r\n","published":true,"deleted":false,"likes_count":3,"comments_count":0,"created_by":363598,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":35,"test_suite_updated_at":"2020-04-02T19:38:33.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2020-04-02T19:03:04.000Z","updated_at":"2026-07-28T16:47:38.000Z","published_at":"2020-04-02T19:38:33.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\u003ePrev prob\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/45385-coin-distribution\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026lt;https://www.mathworks.com/matlabcentral/cody/problems/45385-coin-distribution\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026gt;\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eGiven a set of coins and an amount, find out how many ways the amount can be made using the coins given. Assume, there is an infinite supply of all the coins.\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 instance,\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[ Amount = 10\\n Coins  = [ 2,3,5]\\n\\n possible ways are - [2,2,2,2,2],[2,3,5],[5,5],[2,2,3,3]\\n so total no. of ways = 4.]]\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":45416,"title":"Don't be Greedy!","description":"A list of assignments is given to the students along with the submission deadlines. Each of\r\n the assignment contains particular marks.\r\n\r\nIf the student can submit a particular assignment within its deadline, he'll get marks.\r\n\r\nBut he can submit only one assignment per day.\r\n\r\nFor instance,\r\n\r\n Assignment = [ a1, a2, a3, a4, a5, a6]\r\n Marks      = [ 60,100, 20, 40, 20, 10]\r\n Deadline   = [  2,  1,  3,  2,  1,  3]\r\n\r\nNow, on the 1st day - he can submit one among all the assignments. But in the 2nd day, he can no longer submit a2 \u0026 a5.\r\n\r\nHe wants to achieve maximum marks by carefully submitting those assignments within the deadlines.\r\nCan u help him?\r\n\r\nThe answer should be - [a2,a1,a3]. Since by submitting in this sequence, he can get the maximum marks.","description_html":"\u003cp\u003eA list of assignments is given to the students along with the submission deadlines. Each of\r\n the assignment contains particular marks.\u003c/p\u003e\u003cp\u003eIf the student can submit a particular assignment within its deadline, he'll get marks.\u003c/p\u003e\u003cp\u003eBut he can submit only one assignment per day.\u003c/p\u003e\u003cp\u003eFor instance,\u003c/p\u003e\u003cpre\u003e Assignment = [ a1, a2, a3, a4, a5, a6]\r\n Marks      = [ 60,100, 20, 40, 20, 10]\r\n Deadline   = [  2,  1,  3,  2,  1,  3]\u003c/pre\u003e\u003cp\u003eNow, on the 1st day - he can submit one among all the assignments. But in the 2nd day, he can no longer submit a2 \u0026 a5.\u003c/p\u003e\u003cp\u003eHe wants to achieve maximum marks by carefully submitting those assignments within the deadlines.\r\nCan u help him?\u003c/p\u003e\u003cp\u003eThe answer should be - [a2,a1,a3]. Since by submitting in this sequence, he can get the maximum marks.\u003c/p\u003e","function_template":"function yy=greedy_01(marks,deadline)","test_suite":"%%\r\nmarks      = [ 60,100, 20, 40, 20, 10]\r\ndeadline   = [  2,  1,  3,  2,  1,  3]\r\nassert(isequal(greedy_01(marks,deadline),[2,1,3]))\r\n\r\n%%\r\nmarks      = [10,10,50,40,30,100,20,10]\r\ndeadline   = [1,2,3,3,5,5,1,3]\r\nassert(isequal(greedy_01(marks,deadline),[7,4,3,5,6]))\r\n\r\n%%\r\nmarks      = [50,100,40,80,200,220,10]\r\ndeadline   = [2,1,2,1,1,1,4]\r\nassert(isequal(greedy_01(marks,deadline),[6,1,7]))\r\n\r\n%%\r\nmarks      = [50,100,40,80,200,220,10,150]\r\ndeadline   = [2,1,3,6,2,2,6,7]\r\nassert(isequal(greedy_01(marks,deadline),[5     6     3     7     4     8]))\r\n","published":true,"deleted":false,"likes_count":2,"comments_count":15,"created_by":363598,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":22,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2020-04-02T00:18:30.000Z","updated_at":"2026-08-15T13:58:12.000Z","published_at":"2020-04-02T00:18:30.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eA list of assignments is given to the students along with the submission deadlines. Each of the assignment contains particular marks.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eIf the student can submit a particular assignment within its deadline, he'll get marks.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eBut he can submit only one assignment per day.\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 instance,\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[ Assignment = [ a1, a2, a3, a4, a5, a6]\\n Marks      = [ 60,100, 20, 40, 20, 10]\\n Deadline   = [  2,  1,  3,  2,  1,  3]]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eNow, on the 1st day - he can submit one among all the assignments. But in the 2nd day, he can no longer submit a2 \u0026amp; a5.\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\u003eHe wants to achieve maximum marks by carefully submitting those assignments within the deadlines. Can u help him?\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 should be - [a2,a1,a3]. Since by submitting in this sequence, he can get the maximum marks.\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":57760,"title":"Easy Sequences 101: One-line Code Challenge - n-th Digit of Fibonacci Sequence","description":"For a given index , the -th Fibonacci number,  is defined as:  for  or , and  for . \r\nWhat this problem requires is find the digit , which is the -th digit when the Fibonacci numbers are laid side by side.\r\nFor example, for , , and if , .\r\n\r\n--------------------------------\r\nNOTE: The following restrictions apply:\r\nThe function should only have one (1) line of code, excluding the function start line.\r\nSemicolons (;) are considered end-of-line characters.\r\nPlease suppress the function end line. Keyword 'end' is not allowed.\r\nImporting libraries is not allowed.\r\nRegular expressions and string manipulation are not allowed.","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.440001px; 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: 377px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 188.5px; transform-origin: 407px 188.5px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 22px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; 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 11px; text-align: left; transform-origin: 384px 11px; 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=\"\"\u003eFor a given index \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"font-family: STIXGeneral, STIXGeneral-webfont, serif; font-style: italic; font-weight: 400; color: rgb(0, 0, 0);\"\u003ex\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 \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"font-family: STIXGeneral, STIXGeneral-webfont, serif; font-style: italic; font-weight: 400; color: rgb(0, 0, 0);\"\u003ex\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-th \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://en.wikipedia.org/wiki/Fibonacci_number\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eFibonacci number, \u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"vertical-align:-6px\"\u003e\u003cimg src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAoCAYAAACb3CikAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAIqADAAQAAAABAAAAKAAAAABIyrn1AAACTklEQVRYCe2XT0gXURDHNa0g7I8Q2sGDh0iCRDwUQigigqEhdAvr7kkoQqhTHiIIEhS8efASdAjEi9FFD3YrRElEjCCJSgQVrFNQ6edrO/Ba3v52f/52DWIHPs68ebPzZmf3vd9aVpZL3oG8A8V1oDwm/BnzPRAX50sziHPcN+HzVfqcju82djVMQZvjf439EnZAOU7CBbgK50Gy/kel+3eMdLsB39Fa2CcqahoUW+sLiPIdiZoI+S8541lsFeOTnzjVvU+w4QuI8iUp5AQXtzgJXjm2z/yN861volRfNwnssUjXJ0hYkSDmr5AkHelyrljFXnPGMs/BJpzWIJBfZqSptbh1ZCSUWDfyHN6E/EUP47ZvPRm1LU30Al4B7ZqLcAM64D5kKv1kt24U0nZ2ZFbMpFPIHPZlaAV1Ygi0Xd9BpqLHppPTOnHPs9oKvocef6ou3bkVIe0earbQVoTf5lPRj8hihXzxZNSOeeDxp+7S6WiFTKSePWHCs8TpULJCbia8LvWwPqcI/XaosFLkWOhifd9oM8TKDBHWjeXY6OiAu0wtgLr7NAjTd81X+AwFi+klwIqQXoeivi2IN6nBOAXfQKdyAyyBTuInECnvmXGLMFt3VEpnXgR5P6Kb4Z/JHVbWTY1GVaCz4DDkw2EsErfGcQLmQR2R9spB/k3wJirgHGZuGzqhFapBx0EV6MXdl4Lbx4IOoLWg+AGNcA2OQjsMgMa3IHN5zAp6FItwJlhNW1e7T1v5euDLXOm9aIJwx+vw6VzJJe9A3oH/pwN7Ko53GpRHxG4AAAAASUVORK5CYII=\" width=\"17\" height=\"20\" style=\"width: 17px; height: 20px;\"\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 is defined as: \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"vertical-align:-6px\"\u003e\u003cimg src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFYAAAAoCAYAAABkfg1GAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAVqADAAQAAAABAAAAKAAAAABfdlBJAAADFElEQVRoBe2YW6gNURjHt9shuR0JhdoPIkXiwSWRJCQpz3iUJ0VeKHUe1EG5pLx49ybFAyFKeVES5RaJQ3JScj0v7n5/zarVNGZm71mTPbO/r36tNevyzVr/mVnrW9NomJkCpoApYAqYAqZArRVoMrvjMKXoLM/g4AN8bIMdRW/eQf1nMZbT8A1+w2xItZGptY3GNup74Tys8treJH8JPoF8jIc5sALcTQfJV91mMIH9oJekp4zJnMKpnpT4AhIyySTyRVC7aUkNKlZ2jvEehO3wHZwG7uWhqJjdoLtzeiHDlZ7uy4w2Vax+wKCdBpnCDs8xw7G0Wea1u+zlk7K/KLydVFHxsqHQ49+IQ/eklDZz3GBEjjZVa3KLATsdgryx6z0FnpAf8K6VnQ7vYKIuIvvpMt2a5lkKNnjixJcB9T8Bz0ERglmkgHbxNGtSqTDK2VsyS0BRwTzYAmtgH5RlS3Gs0K6o3cHBuqJO8vbPEtZfBuSz/x+OFZaUZRrj5ADOJwTwkdtFK8LqULAXxoCOdAvhADyCZ1CWPcTxzgDOXwXwEcSFRNe66XZCiRq3xxT0xQtreh0sKliOQP7ncyVBsKmUlbkMJNyyGkVpUYG/vr5hOjp5+Ka+RyFe7rfp2nzaGusLezVBIZ2wDiWUhy6qVVSgzWmxp1DSMuBVl5qtVVSgeM8tE9q8rhWUrof++pfpbBgZHXt/uIKUtFOiAo25sF3Hg4sGNLF2bQ8d74KOuFqPZfqvqzX7NaQtRVR3lA0wGqfJ/HZGttlzIEeD0O6/VUUNiiw+g05tc+E+6KR2BKpg+rJ2gxNV6TEYBbntKS19By6vN67Im3s28vuCdBFUxQ4z0CFwOvipYvz/HhG5J36yKooWHafboIr6yepf5pE36961rR/NzPRnSZ+R0q6wICFEhlJa6N/DWlgJvaA4eRxoI6ullRXuSEDxFRaAfpZrF10Nu0DXW8GsRQX6aa9P/x5Mivoq1FJ0odBrU1RmSYsKaF3V/9r4FzGTMv+PWYturbkpYAqYAqaAKWAKmAKmgCnwV4E/2bubgdXiCasAAAAASUVORK5CYII=\" width=\"43\" height=\"20\" style=\"width: 43px; height: 20px;\"\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 for \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"vertical-align:-5px\"\u003e\u003cimg src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAAAkCAYAAADFGRdYAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAASaADAAQAAAABAAAAJAAAAABLVRfgAAACV0lEQVRoBe2YzUtUURiHLQxMbBNWgkEYpetW4SJaJJpYIPRBi4RAYXTZtn9Ag1pEi9xYm3ZJQa4kcmGBq5Bo0SYSEWwh1UKRWpQ+v7hHDs6M95y5g81w3xce33PP53t+956PsaHBzBQwBUwBU8AUqAMFDhLjbRipg1j3PUSJcws+wxY8B7NEgQP4a/AJJI4jSCQpmwfrZ5JDcB9m8jDhrHO8Tgf2JaWouJFSXlScl+VWNPGYjMaUyocp74Fz8Acegf8m+nhW+Tt4DbkzbXLrIHHcGn7gqfDQy5dwzV5ZLScve3EHnW57TaaTwhY4CRJBQul+IbsLynsKX+ENhNhLKn2vApdCBitTp6oi+WO84sF9Tb2kf4GWWqxJTNdPFq+JVmrRIqXtSS6QeRKDycMsXstOPtYmaPAitlGJ+h9K5P33rPNE4N78Mul62X9KCRf9JYVeARYZTUtMpre4+S+Vkz+hImlZuqO/Oyfa7EwzdE/SHtSatGrDn4EvyXOM0+l2MaZBmbo3yX9bpqzq2SEiXWHUAjyBsSSCC/hKRDpCu6NJH1ncoSyNY9umiXSCDqdAX5JOplHQvx0k0jNQsI/hHvyANKuF003xZzKJNgBnoQnewwI4MT+S1in3LcmbxM9B5oHpY7/sDgO5k3q6kkGHvQ70k2QNTnkdjXvlq6R1e/bLvao1mTxNVO5FSyjNrys20hs0cCpr+ew+yTrI+53U+YnXsqsHayfIFfgLbn7OK28JChBsujjqp0e5C+Nxyq7CMTAzBUwBU8AUMAVMAVPAFDAFTIG9FNgG8tGVnS2kWTkAAAAASUVORK5CYII=\" width=\"36.5\" height=\"18\" style=\"width: 36.5px; height: 18px;\"\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 or \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"font-family: STIXGeneral, STIXGeneral-webfont, serif; font-style: normal; font-weight: 400; color: rgb(0, 0, 0);\"\u003e2\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, and \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"vertical-align:-6px\"\u003e\u003cimg src=\"data:image/png;base64,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\" width=\"107\" height=\"20\" style=\"width: 107px; height: 20px;\"\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 for \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"vertical-align:-5px\"\u003e\u003cimg src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAAAkCAYAAADFGRdYAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAASaADAAQAAAABAAAAJAAAAABLVRfgAAADiUlEQVRoBe2YW4hNURjHx4wxTMIoJjEhzIOHIQ+OScqlZl5c8uDBi5III2YeFGFcosmtyGU8aJ5ISYQnkSYpJQ/mSe73e26Ru+H3z1m1OrN3c/bZ6xxOZ331a62197e+71vfWnutdU5RkRefAZ8BnwGfgbzKQI+8ijZesKV0nwY1UA334Qpchc9Q8DKODFyH3wG84VkCClrGMHqtlKAEmWcfeT+9ULOk7eQS/IIWGAIlMCrZ/k5pEnWN+n8hVURRmcNIavGlJKwP8bk4+V46SmRFiF5OHzfjTUt/LwzNgedt+LgBxSG+tNJug1lNs4P0wjoH6bp4pmD6wEq4C60wArIlAzC8CTpDHCieDutdmJ6l0rWqAc0CrYB10BdsqaexEwJnwFZM1ntTroAnYGbvB/U20Ab7L+QITk0sY6MGsJ0O2vX1rRojuywju63nn6iXW++6q5ah0ACPwdj+Sf0oRA6UPnHkMp0Vw81MjOjCpZUzDJQEGdL3LWkCPdMKuAfnIRNRspaDnaxO2idgPGRbBuNAK1lja4zr7FTSkIzVwVfQp+ZKemFoGTwC+TCcpT4RsiWrMSxf2pdK4zrRyjGBq9Q+lA1RspbCQ7D9naM9BVyK7kzv4QtMcGE4gRETtAYQZf/JxL+StQQegPGrsh2mQlzR0X8S9GnPi2vM9FfQyrgClfFcSD+cbAE7SRrUAQfOjV19bs5EK+c1KODnzqwGG+rP4w3wFkyCdPLpqHZx8i1I2m2hdCoHsWYCVjnaqfW/xpScjfAOjC/9tjoM+q3lQuZgRKdZqwtjto2ZNHRXshO10FaIWTe3Yjs5+rT3QVVM23b3GTR0KusuVmy/sOoV1Lda7bSqlWi9BF0sZUB7gma5DSQ6Ng/BQDUiiuxtBp0wZuXo8roD5NelTMKY7nVnoGeIYY3lNBxLfa9d3hYZqIdboAveBSgBHb/aFzqgBl6AZnk/VINmSQNNR5ScJlgF2pwlSpRWzh7QXuRSFG87yO9x0CpNFU3yZFCpsVyEUFnEG3tWtVkPt7S12Zn3z6jrXz37vaUaWJ3L0w9gbLyivhZMsqg6FU2gJtT46668g27qwukSkO4MxpBmtDZFYyTtb0kd7SFaYVGkGWXZfwqNUA7ZFP1cMuNJp1yTbjAJFOsgbAD6vaN/BgZBVJlPB92oy6J29Po+Az4DPgM+Az4DPgM+Az4DPgN5mYE/cbXxvE/rUlYAAAAASUVORK5CYII=\" width=\"36.5\" height=\"18\" style=\"width: 36.5px; height: 18px;\"\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. \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 22px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; 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 11px; text-align: left; transform-origin: 384px 11px; 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=\"\"\u003eWhat this problem requires is find the digit \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"vertical-align:-6px\"\u003e\u003cimg src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAoCAYAAACSN4jeAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAJqADAAQAAAABAAAAKAAAAAA7wp46AAACvElEQVRYCe2XS4hPcRTHx2DGa8EomiJZkZFoJilWHrPBjjSSDUvbWUxNymI2JorFTCSTNM3GhoWImpRHiYU80iglokQzNB7z8Ph8dX/9j+v+7v/31/3fke6pb/ec3zm/c87v/J63pqagogJFBf6tCkxLSacF3UUwN8VmDN1zMASeAdk/BLnQHqL8MJiA7wT7QTvoA5+BbL6DC2AZqDo1EsEm1pUQcRFt143dC/jlCXaZNm03AZXgWo/3hbQrITcITe0Mj20mzcdNsDfwaetyk7FVgpruqtFjPLsqnCsTRUmPGPu7Zez/Wr3EBFFybQGeBk2f0QD7RJPaxNZS47YS+2vHXTOyj31kFDpqFhs5mC2XWKvxdB/+nZF9bH1MsSAmB4lpiUm31Xi5Yvg0VseLpddWyIJvxolb9PpuDHCqxf/W9PsQ0Kdikw4TYBh+eoCHdaaPBtMX0Kdik0ETRNdMCB3DSAk5rA7pVInNPIzHTICDAZ118ut4cEmFrskA1yWTHSaAAi0tqbxcr+kzDh+yJr3OfIqTJsgTn5Fp19XjKjUJv8voMmWfmkAnUjzXoTsC3LR/g9+XYi/VTKPXkWRlo/qTXUGTG72+vvWlC1vVdLa64NtAEu2mcQBowLeBdvhhoHv1I2gBv1H8WdKAVq8JS4cQFPwTWAmaIojXufUSHAVnwFeQRHdo1GGtQXeCHqDNchPoWbUB3AOJpFFNAleB+Fev01fgFugHXWAv0HSG0FmM5PM0OBV16I7atkTylHxUWSV2A9RHGaiSqvLsSM79s4qIbga0BETzgWYo8cWSdomrc1bUGjnSNGoDiDYDbYKrEqaKLhNYFVtjEtAGcG1aq7OMLhdW60k7eigW7QHyF3AAnI/pqvsXEwVbz3cOuBQL/h5ZSe8EvvMv1iUfUc/uxnxCFVGKChQV+I8r8BN9PqxA5cOzLAAAAABJRU5ErkJggg==\" width=\"19\" height=\"20\" style=\"width: 19px; height: 20px;\"\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, which is the \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"font-family: STIXGeneral, STIXGeneral-webfont, 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: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003e-th digit when the Fibonacci numbers are laid side by side\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.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 22px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; 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 11px; text-align: left; transform-origin: 384px 11px; 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=\"\"\u003eFor example, for \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"vertical-align:-5px\"\u003e\u003cimg src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAAAkCAYAAADFGRdYAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAASaADAAQAAAABAAAAJAAAAABLVRfgAAADGUlEQVRoBe2XS4iOURjHZ1ySy4xcSiyISCLSsCCl3JONBRsrJaVkLKRs2FASsbBSQ5ISRZOFwmiaKQu5jVggucRYYDEYZNx+/897cr7jzPeed3z4Luep33cuz/Oc9zzP+77Peb+amigxAzEDMQMxA2WVgdqy2m1xNjuHZXxx1zG/M6GtOJcqz1WWs+3vBehEN7A8QyverlsKJEjJ2+W7lO+x89lVwlwDQVyHVmgHV14z0QTdrqKaxqcI9itMqaags8Q6CeMvoCepPotjNdkeJlhTsPU03YH9MBP+SEbjvRS2w2prpQn0N8NBWGzNl2p3FBtTnTFJcttmdGOybv4ADs+dRdcli6ynfe/o5ia6Um10U8/DY/gGbpI0fgbjIFimYrkWPoMW6IERsAX0XusJugDmYpvoh8pZDN8Ugb4+wUO5tm7qMdBrZ2JQexP6Q7Dog+odyPkK6HX7AMtA0gjmAityM2E/lyw/49+XNss1e9vZbBRXnf2YNybPZ0De6NdgHt1hyVBF7jhshIvJnF3wOpK5kGYvRmdCDFNsbqToQ9S3MFKydeKZzwKVk5MQJLuxMnf4Kf0jjtf9RH/XmS/H4Qw2rTKieB9mCeBa4iTHBzDEch5v6VTkK0HuEYRi7QoNRkemXdQWOY4bGJunTH8YK0FOEIRi0lvzm/hq0hKs+iWWqkEq3Lbo20nyCdpyvfAfnW4Lw817tdTp29KrNrtCsUhe/mzyf31JMieYLA/lm+eSZ47fdnQfHX3asA6DkWlGAXqdvsWUWclizb5FCyXpFQ46sm3RsanXUWJOuib6elxbIU1K6XQze11AR99OPaBYUmUaFqbeuCeanLdaeiVsD+hEGA6lKIPY1GXohHMwGWzRDe8AxdxoKwr17SSs8hjuY84kUa9bF9jfTB6X/zqlvZn9qlV52AH6V7EGdHJrfhsEy2ks5dQNgz1eK5kz/39e0J/vsSm1qaPWnu2EKQ4dJA1pG65NM/DopzNXD7cha+H2LPdPpiZyFX00joW38AQegepulJiBmIGYgZiBmIGYgZiBmIGYgb+XgR86bt7unlNPCAAAAABJRU5ErkJggg==\" width=\"36.5\" height=\"18\" style=\"width: 36.5px; height: 18px;\"\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, \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"vertical-align:-6px\"\u003e\u003cimg src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFoAAAAoCAYAAAB+Qu3IAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAWqADAAQAAAABAAAAKAAAAADKbjgYAAAEc0lEQVRoBe2aa6hVRRTHj6lpPhK1ru/6kKD4QRQjDXyBKD6+iVam+UBFRD+IoCQqiC9U0A+ighKpSEWUiohRRPihJBGDIBVR8PoOFZ+Ej66v3x/OwGIze5+559yr55w7C/7sNWvWWnvW2jNrZg4nl4sUMxAzEDMQMxAz0MQz0KyJx19M+N0x6uExVC4Hg/FgXLK/RVJg2h/CHwJtjSzJPkFwAZwD54H0/wHVTPsJbkhGgAsz+jK7PqX3hUEd/AowHSwBu8FDIJ3n4EfwPqhGGkZQNhdJ/gH97X2Bh5SObhheN8br4Zebttga8C0YpQZ0GYwEtaCa6DDBjAWbwDNPYD8hO+6RB4kmoGW/3IAUq87ILxldlZKs0pTipmzF/RiZVuy+xhrhFhy7RP8Ln7UKhhpd2ai8VAt9TSCKaRLIykHR8Z7Ov0Av2VvAiwZwz+ifKKBfKd06aWjjdxPuNrzKyBcg67BAdxj1RM0513NKgNlRY/NfgH4lqGw0Mdl8iL8DPi8UxBsFFEabftWnX007jT1lOvS1u5h2pbI3GbhWp2/idET+DVgJiqbvsHRfMLQM7DI2su1b9Nv9hgcQa+mWCndC8r/FL1VpfA9o76kFLjfuORFZvUmz/RZwTlYHelDtcjZ6vh1oF6qmVWX9F8vrmFYKtcJ4KbC1+yxtb5XI2j0HYXQSONKJ4phrpDzl7wZ4N9+vA3yHPN9QD83EDxrA2UF8aCKVSvNxsMM40aXmD9MuyC5Dw82Wu/DNC1rkcgONjWx3B9hUg8r3Ju6pvoCyLhRjjMFv8M9MO42dlujYnGj3op0cSH9ke8EvCd1Kaupnh0/yA66pz8DboWxrz5wAY90MtSu7VfCzx2a76Xd6l5GFrBaPu7IRqZS5eGb5RpU2o0ei/KYxCJlta9F3h/c6+DXGXuw7YAaYB+4DR3/DhKwWp69TxwjXKOGpGaiV2hD02DjR7TmYtqLpvtCZACsdd5z+U/hJHptVyH4H3l3Zo58mKpdThx3feBqKX3vZW7bD8Wkz2tZnBZZGmvXLwZd5BV1qZgLVLEttaCwEKi+6oh8FXwEdBetLGzD4ob5GHv2/PLJiRYvzhtprHoU66YOim516ptVnHfc0252ulswU4KOPEJ4HKhFOX08NrNQZjotGJV2va4F+81kAkuOdi0yx6AxdA4KoE1pHgE2Gauhs8BlYBTSblGDNXulpM9NsbQ0KkZbVKHAcuHcsK2T0mvu1J7ix6vknGA50z9gCJDsHuoMgmoyW6qt1ankl9irQpUV3+3VAX9tumjSDqBla24D86yqtdrmSVuM1YHPheMkXAZXGTHqdAbZkZFoZvUFXcAOUK2msHwPdA5TUK6AWXAB1oOxpDyPU7AhedmUfUcoAk4U9Ra3RxP/j+SG42WhviI5zrcjBRaBjXqQGysAx/FwC84D2Ba2knUBHvqovG8T4ykh/rHE7tc6b2kT2gCaT5Fd56uhDYnuAO0CJ1m/VkWIGYgZiBmIGYgZiBmIGYgZiBioxAy8BU49B0T/6PsEAAAAASUVORK5CYII=\" width=\"45\" height=\"20\" style=\"width: 45px; height: 20px;\"\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, and if \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"vertical-align:-5px\"\u003e\u003cimg src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFgAAAAkCAYAAAANdf2OAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAWKADAAQAAAABAAAAJAAAAADbokXeAAAEI0lEQVRoBe2YV2hUQRSG1xK7EVGxYEGNiNgQGxYUNFb0wQcFFUFBBEHUBxF8MS8KIhYEH8ReQRQMoiJWJKJiL+iDJViwYUHsvXy/uUMmN7N3b0ww2WQOfDsz55yZnTl37pnZTSS8+Aj4CPgI+Aj4CFTSCFSrpOtKtqyOGAZCD6gD5+Ec5EMc6YOTK2YN0S8OyIszUGXzyWBBOfANfjvYiq4GRMkojK6+RvcUu76nSsoGVm0CkazMxadWRHROpBgjx9XXtd1dfumsG8Hkj8ItmAdnoDb0hxXQHYyMp3LQNKyyN/VLcApOQ1heodgEH8OGqtA+wiIfQ3PHYuuiuwdmV692+Ei1G35CJzW8FEagAdWvMLlQVaw2DY0J8JVi1kSiA7ofoB2c6bBXaZVuC8cg6gDrht0EWEEMy1oUxq5dfANWgMYulTSlt/LXQphgjdSO+hzQ6zTc0qdrNYuJmwDuCS2iCW3lVWMPl/uxuVJPaJiizZU0lbPswaYGLjMoP4RsfQNbuhbZ1nqmhBbRjvYBuA+/wI6JqT9C3wpiS2c8J4G5M36n3hjmgnKRdu5hMF8wm3pc2Yfj6zKgLN+cNcxHa3kO+vGRTOpj0GbaAkoVZv0qr0BUGsJcVDJovgd1PglKEZ9gJEh03TFfMPqvJt6H8qHpV5qyJN8ZNbN6GF8Ec9Kmiiu9cDwL9hrMW15kjJpFWoWNAVQbBE0l9W0wC3SflNgJ/nqBKtbnMrz2xvKMdrocbY5tzcGzGSj3hvNv1CBXMeoh61A0Vzelz10QS5bgZZ7OQ+rrQ71uB/abIX06NfswWaW/C6D78L9INzopbSpWd0sygL7UBPgO9XpW57aWTQdiOkprJv0E8qFFKRdwi/6K1du44+hqYifxYaGOM2mb4OsPkHSTTCasV1wBbl8Gk9/BGIqH3vRi4srB2XhVDzyVc3XI2TIiaHyhzLMNMeq6RQyN4ZfKRQfSiVRODrtSga5dbWAI3IfSiuIgeVZQpP7chIvZoWNC7gr8q8BuDryQS2SzPG8RGczsELwDXbeSyXQM/ZIZHXqTThc5bAnXDjZXsZd0UEBs0fVEKURiAqwHotfkFKSS8rpFaGPshGGgTXMRXKJdvQ56uowO3WB0elg6LBWHlNIFD7N71zu851t2BXsp6PRsBBVVqjGxjaB1PYWtDrajU17+CXkg0V+ax0F9ciELbNFG0xVV486zDVF1O4DjHI7L0ZkHcJq6Tk77TuzoUu6qVczAzDlOOS2YsdZl+3+mrTSgX7oT4Q7IvgBiyx481ekj6EAIy1gUv0A+T2AgVGQZxOTsIKWqv8HfXvdm2ma9dl/pdGD3hkjR61NS6UqHTLgGeqqVXXSV0w+KlqAD8gHkg84oLz4CPgI+Aj4CPgI+Aj4CPgI+Aj4CPgL/PwJ/ALG4VQ76ZkD7AAAAAElFTkSuQmCC\" width=\"44\" height=\"18\" style=\"width: 44px; height: 18px;\"\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, \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"vertical-align:-6px\"\u003e\u003cimg src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAAAoCAYAAAAIeF9DAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAZKADAAQAAAABAAAAKAAAAACyuGsJAAAEw0lEQVRoBe2ZWchVVRTHtXJokOakCekh6iHCwgrKikaCgiKaLBussJemlyCpB1+EXhqIIhpIfegpGySiGY0GKgsiLSLBVCILGq1E04bfT87OzeGefc659+Z3vXf/4f+dPay9ztpr773WPvcbNy4jeyB7IHsgeyB7IHtgKDwwfihmMTiT2A9Tjm5hzmfIbonlUwsyA8GlcO94QKmssjXwK7gaKr8SjioeYuJ3tJj8NGTXt5DfLnolf/+JuJXyvfA6eBdcCDdBZf6GS6AvGjXsyYR/hrGvUmU3cVc4lFGx4gUdtBxC25uR3DrKR3WQG+amOcX8V/C8E14LZ3fgb7Tpz/tgV7iQUfGCTK/QciDtLkSQNYTtUSE7jM0fMqnX4cTE5A6mbxvURycl5JJdDxQKVLIBjk9Iz4xklTesjQImM8m3oNEkhbl06hc3btf4nJEqkYtrtLhYvxSyyn9UIz9q3W8Uvnmw24kfUSgICzKrgaJl0ZjfG8iPikgcrowkHbFbx9YdjeftKG6/QbnCdVgVCXhlnhrVR7l4CZPfHX4H369yRF3SPT8a+AnlH6J6VXFSqWN/6t+X2nZG9XlecmYfXnQFOswPveLyQsELPP086IjUgnh6zo1GvRqVU8VyYvs2Jfw/9k1B9wF90D+hDzoOQsdZhZ7nUvpSC3ICA1UU8FooJJ4m9VOi/o2U5VjAe/6zfXixkaFXGK709Y/w7W6VzWNgSOZ+gRr/6uAihjE+F9YNGJF+N7P+eLpuvqkTEucPY+hfdcron12SuT+qGwJvhGdAQ8nH8BnoB2QZR9JwTanxeOqLYZOTWho6plU/mM8uLEiGq5SV+9C5BYbdfnNKuOjzxV5zw5g453i6/IoNfeHpJWEGLONRGoJMeK6nrckpLesa6/pNxVx+5TmxW2MuKpQEZ7hj6/AYAkH+T8qnRQNup/wlNJb6u9f1cBVU3tMXw7zlws6F/rAZeAzlNvCWZczulee0eWkHWTem8zQadI2HGRmc+0UDLf5EEuS3Ub6sNMYv9uNKbcdSd8xmGF+V51N/BxrieoHfTMGmXp4X9GCEUWNrYcelTfRU5ZA4fzixKngE74F3FwLer2+AS4q6D29eJjNPRAxPjCfBBdRosRe8FToRf4JZBp+CL8G2GIRb1sUYrY83QU9KVzA0xDuqKn/MRM7TE2Q3UJ4Fm+IwBB37YjTgZMqroReIoNenybzXE4OKnY5XeKP2xxu0lRHefl4ulASHfErdxHQVnA+927sQngZlTLbu6smwDcwNji+HN3X4zx5j9wcw2DGP8q4EfWku1f42G/W/Ofppb/gIDig/XYBv4HvQBLUAXg27vTksZ6zhKAXD3SNQW0zO1ncVzMFQ7d4Mpwy60bdh4EroSajDBAQMY05uap3wAPVPw5bT4YkDZFNHU7y1fA01uCkWIeiCmHcy+uiBU9HlYpS/KeryzxOM+QN6Y8nokwemo2ct9PeuGPtSWQGrwtck+tbCunyDSEZTD3gi/J+IXB7xXcr+pPAkFF4Y1sFboAncq+7j0BySwxVO6Ad0qk42B1TR7w+xFAYZPxzXwEVwZBbDXTho8DQdDn+CLshGmJE9kD2QPZA9kD2QPZA9kD2QPZA9MDwe+BcXQUOCFyk7ugAAAABJRU5ErkJggg==\" width=\"50\" height=\"20\" style=\"width: 50px; height: 20px;\"\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.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 114px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; 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 57px; text-align: left; transform-origin: 384px 57px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cimg class=\"imageNode\" style=\"vertical-align: baseline\" src=\"data:image/png;base64,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EEAAAQQQQAABBBBIuwALmdNOzoQIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgggwEJmXgMIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgggkHYBFjKnnZwJEUAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQICFzLwGEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQCDtAixkTjs5EyKAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAC5l5DSCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBA2gVYyJx2ciZEAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAARYy8xpAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAgbQLsJA57eRMiAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIsZOY1gAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAJpF2Ahc9rJmRABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEWMjMawABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEE0i7AQua0kzMhAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCLCQmdcAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCKRdgIXMaSdnQgQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBg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HXfIAQccUPZuq7ZtfT+tWrVKXnjhBRk+fLh88803UlRUFOdeu3Zt6d69u9x5553Sp0+fuPtt2mFbTlu2bJFzzz1XJkyYkBLzWWedJffff39KjzX5INtyKm21detWefjhh2XIkCEye/Zscc+FZb/cD0S5H+b461//KgMHDix7tzXbUc5J5fcFtp8no5KTie8LVL4OdL8xo5KTydf7s88+W/w9ofuhKneRnmtSr149OeOMM+SZZ57RHUGg+qZz0v19ge76gZAVDDKdU+mnoPv7guXLlxe/b0aMGCELFiwoPXXxbdeiZcuWctVVV8kll1wi+fn5cWNM7UhnTun674Hu85ju+oleC7py0v19ge7/numunyiLZPt05aTjeV5xxRXF14mSPZ+g99WpU0dGjRol++yzj/cQ3fW9iVK4oSunFA6FhyCAAAIIIIAAAggggAACCCCAAAIIZJkAC5kVB+5d7ItYR2ZVC5lz2jodmf9LR2bFL5uUy7mdRm6++WZ59NFHZdeuXb46AwYMkKFDh/r22bbhvZ9sO/Ayx0tOZUAisOkuhH3wwQfl3nvvLe7qG+SQ8vLy5Morr5Tbb79datasGeQhkRpj4/tp+/btxQuT3QWXiRZalgd89tlny+DBg63sKGtjTiNHjpSTTz65vDgq3O9+WMBdEGbTl405xXxffPHF4u8d/o+9MwGzojj398fOgICA4o4issQFNRCTqHGNxi3xuqAYNeTmGuG6RCUStyTGJLhcRQOPqLgGboyiosR/wKvGkKhJTNS4K+BKhLig7JssM3+qk26655xheqmtz7z9PPOc7jpVX1W9v+rqmj5ff52F+T777CM33XSTDB48ODRTik9fddK5LqiFedIHnVysC3SOAxsnpA86uR7vKnL97rvvLqodjbdevXqJctZ0vfmgk+l1gWn7NjT0Qaewn6bXBdOmTZMzzzwzisAc1tvUp4rQrB5gPOCAA5rKYi3dlk42rwem5zHT9quJb0In0+sC09cz0/ar6dBcmgmdTPazZ8+eqe8VNdd39f2UKVPkpJNOirKath9VlHHHhE4Zm0B2CEAAAhCAAAQgAAEIQAACEIAABCAAgRZMAEdmA+IHN/3KEJG5rrW02rpNJgIdv72V1B25ZaYyXmaugYjMjz32WBCFWb2atdpWC47Mql9lv4mOTtVGp/u04447TtSP6nm2I488UmbMmJGnqPMyZTufiuj0jW98Q1sEJdvClU0nFdX8W9/6Vm5M22+/vbz//vu5y7sqWDadFCf1pgYV/SvPttVWW8nLL78sylmvTJtvOuleF9TKPOlapyIc86wLdI8DW+dkmXXSsS446qij5JFHHqmK2xdHZtU41zqZXheYtl9VYAOJrnVSXTK5LlCOoMqB+c4778xMT0UvfeaZZ2TAgAGZy+ouYFon29cD0/OYaftN6atbJ9PrgiL201zPTNtvSofm0n3SqTmO6m0LixYtaq5Lqb9XbwFTdYabafthPXk+deuUpw2UgQAEIAABCEAAAhCAAAQgAAEIQAACEGiZBHBk1qx7dLOvBBGZO1ywlXQ+ZVvNBMphrlWbB4JXAZejtclWfvrpp3LBBReI+gF3U1stODJH59OmOurpd+jkqTAbmrV27Vrp0KFD1TlAjbltttkmiLyzevXqJjsxefJkOf3005v83scvynY+qde1t2vXTpQTRHyrq6uTz33uc7LLLrsEPywqx8qmIiBOmjSpkINtvF5b+2XTSXEp6lB0wgknyAMPPGALsZZ6yqjTq6++Kl/4whek8dzWrVs3UWsGFQFRnXNz584NHPWqPSiVx2FTC/CcRnzSycS6oFbmSdc62VwXmBgHOU+PzMVc6+R6vD/88MNy7LHHNsnNF0dm1zopQKbXBabtNymyxi980Mn0umDixIkycuTICmqdO3cO3vAwaNCgYA2vHJarPdCm1vp///vfpUuXLhU2bCWY1MnF9cD0PGbaflO669bJ9LrA9PXMtP2mdGguXbdOpvv51a9+VZ544onmupX6e/U2gaOPPjrKb9p+VFHGHd06Zaye7BCAAAQgAAEIQAACEIAABCAAAQhAAAItnACOzAYGQHDTrwQRmVuyI7OUNCKzcvQ666yzUr2WtRYcmdXpWcab6OhkYGLVaHLVqlXSqVOnyGLHjh3l1FNPDSKG7bHHHqIcZZXz7EsvvRRELv3zn/8c5Q131GtA58+fHzhEh2ll+CzT+bRu3brAqTLkOnDgQDn//PMDB/K4firf9ddfL5dffnmFg6ZyeH799ddDE6X5LJNOCmpjh6LBgwfL7bffnpq30kk9XFC2rWw6VfuxfNiwYTJhwgRREcHim3pN8y9+8Qu56KKL4snB/pw5c6Rfv34V6b4m+KCTqXVBLc2TLnWytS4wNQ5snnsudXI53tUDILvttpu88847TeL2xZFZNdClTqp+0+sC0/ZVH2xsrnUyuS5YsmRJsFZYsGBBAuXXvvY1mTJliqiHqOLbDTfcIKNGjYonBftqLXLeeedVpNtMMKGTi+uB6XnMtP3mNNepk+l1genrmWn7zWmxqe916mS6nytWrJDXXnttU92p+p1q13777Zf4rn379vLBBx8k/ucybT/RgIwHOnXKWDXZIQABCEAAAhCAAAQgAAEIQAACEIAABFo4ARyZNQ+A6GYfEZk1k9VrrowRmdVN7+23317q6+sTMLbccku5+uqr5eKLL044ONeCI3N0PiV67PcBOvmtT9g6Fdlr+fLl8s1vflOuu+66IApz+F38Uzk0Dx06VB566KF4crD/wgsvyF577VWR7mtCGc8n5TCuNuWkfPbZZ0ubNm2axDtu3LjA0TmeoW3btoHOZXKSLaNOjR2K1Culp0+fHpei5vbLppOKWKachpYtWxZpoZzynnvuOVEPczS1jRgxQm699dbE1/fff7+ceOKJiTRfD3zQyfS6oBbmSR90Mr0uMD0ObJyDPujkarz/7Gc/kx//+McRZjVvHn744aKij4abL47MPuhkel1g2n6oqclP1zqZXheMHj06+B8rzlC9gUM5MTe1nr/55puDh7bjZQYMGCBvvPFG4JwfT7e1b0InV9cD0/OYafub0tyETqbXBaavZ6btb0qPpr4zoZOP/bzvvvvk5JNPTmBQ953uvvvuRFreA9P2TeiUt6+UgwAEIAABCEAAAhCAAAQgAAEIQAACEGh5BHBkNqB5cNOPiMwGyGo0WcKIzOq1qirKZbipHwDVq1p//vOfy+abby5bbbWVfPzxx+HXwWvip06dGh2XdadsN9HRqRwj7a9//auo1xrvvvvuzTZ43rx5on5EX7lyZSLv5MmTg+jAiUTPD8p2Pn3yySdBhGylVXObcjrv06dPxaupX3zxRdlzzz2bK+7V92XTqRYcivIMgDLp9Oabb0r//v0T3bzyyivlkksuSaQ1Pnj++edlyJAhieQf/ehH8tOf/jSR5vOBa51MrwtqZZ50rZPpdYHpcWDrHHStk4vxPnfuXFFvDlAROsNNzYPqwRAVLTbcfHFkVu1xrZPpdYFp+6Gmpj9d6mR6XdC3b99EBHN172L27Nmi0je1DRo0SF555ZVElpkzZ8pBBx2USLN5oFsnF9cD0/OYaftp9Natk+l1genrmWn7aTSplke3Tj7280tf+pKo8RPf1PE+++wTT8q9b9q+aphunXJ3loIQgAAEIAABCEAAAhCAAAQgAAEIQAACLY4AjsyaJY9u9hGRWTNZvebKGJFZRSLaddddAxDqNYXqVfBx57xadGSOzie98hu1hk5G8Tozfsghh4j6ET2+KQdA5QhYlq2M51NWtsccc0xFJOAZM2bIkUcemdWUs/xl1KlWHIqyiF42ndR5cPTRRye6eNddd8m3v/3tRFrjA/WAlFpfxLfLLrsseIgqnubrvg86+bYu8HGe9EGnrGM467rAt3GQtb8qfxl10jHeVRTZBx98MEK24447BhFiL730Ui8dmX3QyfS6wLT9SGyDO651Mrku+Oyzz4IHRtVDhuGm3uSg3ujQ3KbeNNX4ISv14LZae7jYTOjk4npgeh4zbb857U3o1Fydjb/Pui5oXL65Yx3Xs03VYdq+qtsHnUz3809/+pPsv//+CdTK8fgvf/lLIi3vgWn7ql0+6JSXD+UgAAEIQAACEIAABCAAAQhAAAIQgAAEyk8AR2YDGgY3/YjIbICsRpMljMhcX18vN9xwQxBR8etf/3oFjFp0ZFadLNtNdHSqGJo1kXDGGWfIHXfckehLmZz5woaX7XwK25328+CDD5Y//OEPiewvv/yy7LHHHok03w/KplMtOBTlGRNl0qlx9D/V34suukiUw9Cmtj/+8Y8VURDVa5HV65HLsrnWybd1ga/zpGudso7nrOsC38ZB1v6G+cumU9Hx/vjjj8vhhx8edj/4VG+8Of744+WCCy7w0pFZNdK1TqbXBabtJwQ3eOBSJ5Prgtdee63irTdjxowR5fzf3KYi+/bZ8IaVhoaGKGtaJ+iogOYd3TrZvh6YnsdM208rp26d0tYb5su6LgjLpf0sej1rrh7T9sP6Xetkup+NnfpVv++55x4ZNmxYiKDQp2n7YeNc6xS2g08IQAACEIAABCAAAQhAAAIQgAAEIACBlkcAR2bNmkc3+4jIrJmsXnNljMjcHIFadGSOzqfmOl+i79GpRGLFmnrKKafIvffeG0sRGT9+vJx77rmJNJ8PavF8ivNWDg89evSQxYsXx5NlxYoV0qlTp0Sazwdl1KlWHIqyjIuy6bRy5UrZbLPNEo5B3bp1E+VstN122zXZ9SOOOEIeffTRxPezZs2SAQMGJNJ8PSiDTjbXBb7Ok2XQqfEY170usDkOGvcl7XHZdCo63teuXSuDBg0SNeeF22GHHSaPPfZYcOirI7MPOpleF5i2H+pt8tO1TibXBQ899FDg7B/npzQ77bTT4klN7g8cOFBmz54dfd+vXz+ZM2dOdGxzx4VOOq8Hpucx0/bTau1Cp8Zt070uiNsvej2L26q2b9p+WKdrnUz38+233w4CT6iHFcJN/Z/13nvvSdu2bcOk3J+m7YcNc61T2A4+IQABCEAAAhCAAAQgAAEIQAACEIAABFomARyZDege3PQjIrMBshpNljAic3O91/mDV3N12fy+1m6io5PN0aOvrsGDB4uKXBbfpkyZIieddFI8yfv9Wjuf4sAnTJgg55xzTjwpcEB66aWXEmllOCibTrXgUJRnXJRNp2qvvN53333lN7/5jWyxxRYVCMaNGyfnn39+It11VMREY1Ie+K6TzXWBz/Ok7zo1Hm661wU2x0HjvmQ5LpNORcf7ddddJ6NHj47wtGvXTtRbHpSTpdp8dWRWbXOtk+l1gWn7iqGNzbVOptYFDz74oKioofHtlltukREjRsSTmtw/+uijZcaMGdH3bdq0kXXr1kXHtnds66TzemB6HjNtP4vWtnVq3Dbd64K4/aLXs7itavum7cfrdKmT6X6ed955wcPu8f6mjUYfL9PUvmn78Xpd6hRvB/sQgAAEIAABCEAAAhCAAAQgAAEIQAACLY8AjsyaNY9u9hGRWTNZveaIyKyXpylr0flkqgIHdnX+MOmg+VWrrEWd4h195513pG/fvvGkwEHk3XfflR133DGR7vNBLev0t7/9TQ488EBZvXp1QoL77rtPhg4dmkjz/aCMOjXlUKSiUa1fv15at24tygmllrYy6vT888/LF77whURUZqXJTjvtJOrBjH322SeQSOn205/+VK644oqEZJ07d5YXXnhBVGTEsmxl0MnWusDnebIMOsXHvIl1ga1xEO9H1v0y6VR0vH/wwQdB5Plly5ZFmC688EK59tpro2NfHZl90Mn0usC0/Uhkgzs+6GRqXaDsDhkyJEHv0ksvFeXQl2YbOXKkTJw4MZHV1RtWXOik63pgeh4zbT8xAJo5cKFTvEkm1gWh/aLXs9BOU5+m7cfrdamT6X6qt0LtsMMOsnz58qjLHTt2lPfff7/qA6NRppQ7pu3Hm+FSp3g72IcABCAAAQhAAAIQgAAEIAABCEAAAhBomQRwZDage3DTj4jMBshqNElEZo0wzZqqtZvoun6YNEs9u/Va0ylO4Morr5TLLrssniT77befPP3004m0MhzUmk7qh8Gf//zncscddwQOs3ENlGPzzJkzA6fzeHoZ9sumU2OHIsW4ffv2smbNmgC3cmLu3bu37LzzzsFDAbvssoucfPLJQVoZ9GiqjWXTSfVDOShffvnlFV1SfRk+fHjg+K8cmNWP/fFNOTGr6IgHHHBAPLkU+77rZHpdUJZ50ned4oPdxLrA9DiIt7/Ivu866Rrvp512mtx9990Rqm222UZmz54tXbp0idJ8dWRWDXStk+l1gWn7kciGd1zrpLpnYl2wcOFC6dmzZ4LerrvuKq+++mqqdbl6aGDs2LGJ8h999JH06tUrkWbrwLZOuq4Hpucx0/az6mtbp3j7TKwLdF3P4u2M75u2H68rvm9bJ1v9/J//+R+56KKL4l2V//qv/5Lbb789kZb3wLT9xu2yrVPj+jmGAAQgAAEIQAACEIAABCAAAQhAAAIQaLkEcGTWrH10s68EEZnbHNhZOhyV/IFpUzja9q6Ttn07bSpLab4jInM5pIrOp3I0N1Urdf0wmaoyS5lqUacQnYp8M2DAAPn444/DpODzxhtvlLPPPjuR5vtBmXWaNm2aTJo0KYgk29DQICoC2JtvvilKn2rbMcccIyoac11dXbWvvU4ro07VHIqag6wiVJ1zzjmiIvR17969uezefV9GnUKI11xzjVx88cXhYbOf2223ndxzzz3yla98pdm8vmUog0661gVlnifLoFM4tk2tC3SNg7CdJj590snkeFcPqjWe7371q1/JqaeemsDqqyOzDzqZXheYtp8Q2tCBDzqFXTOxLujWrZssXbo0rCL4TPOmFPUmj+OPP14efvjhRNm33nqr4g05iQyGDlzopON6YHoeM20/q5wudArbWHRdYPJ6ptpo2n7IIc2nSZ1c9nPt2rXBA7vz5s1LYHj55Zdljz32SKTlOTBtv3GbTOrUuC6OIQABCEAAAhCAAAQgAAEIQAACEIAABCDQmACOzI2JaDgObvqVICJz5q62bSU9ntpLpBbeDk9E5szyuypQazfRdfww6UqLTdVbazqFfVXOyjfddFN4GHxuu+228sYbb0jXrl0T6WU4KKtOKrryk08+2SziLbbYQsaPHx9ElW3btm2z+X3NUDadpkyZIsOGDcuFUzkxT506VQ4++OBc5V0WKptOcVaPPfaYnHXWWfL222/Hkyv2TzrpJLnttttKOd+FnfFdJ13rgrLPk77rFI4nU+sCXeMgbKepT190MjXelRPl4MGD5aWXXooQ7r///vLUU09Fx+GOr47Mqn2udTK9LjBtP9TY9KdrneL9070uOP/882XcuHHxKqRTp05yww03yJlnnplIVwfr1q0LoqCPGTMmeFgxnqF169aiHARVZHQXm22dil4PTM9jpu3n1di2TmE7i64LTF3PwvaZth/Wk/bTlE4u+/nrX/+64mEn9b/t73//+7RYNpnPtP1qlZvSqVpdpEEAAhCAAAQgAAEIQAACEIAABCAAAQhAIE4AR+Y4DQ370c2+EkRkztPd7o/uLq26t8tT1KsyRGT2So4mGxOdT03mKN8XRX+Y9LHHtaiT4vzcc8/JF7/4Ramvr09gV9F+jj322ERaGQ7KrNO+++4rf/nLX1JhVs7MJ5xwgqjocioaXNm2Muo0d+5c+fKXvxxEylYO/j169AjYt2/fXhYsWCD//Oc/Zc2aNU1KoRxTVMQqpV1ZtjLqFGerHIauv/76ilcgx/OoffVq+J/85CcycuRIKePDAWXQSde6oMzzZBl0UueDyXWBrnGg2mlq80knU+N9woQJwdsCQoZt2rSR559/Xvbcc88wKfr01ZHZB51MrwtM249ENrjjg07x7uleF6j138477yzLly+PVxPsDxw4UAYNGiQ77bSTfPjhhzJ79myZNWuWLFmypCJvmKA07927d3ho7dOFTkWvB6bnMdP284jrQifVTh3rAlPXs5CjafthPWk+Terksp9DhgwJ1gpxBjrvGZm2H2+32jepU+O6OIYABCAAAQhAAAIQgAAEIAABCEAAAhCAQGMCODI3JqLhOLjpV4sRmTew6f74HtKqW3mjXEbyEpE5QuH7Tq3dRC/6w6SvetWaTupH93322SeIvBxnPnToUFGvRS7rVladLrzwQhk7dmwm7DvssINMnjxZDjrooEzlfMhcRp0aGhoCp3/l9NV4U98pR5VJkyYFEbM/+OCDxlmChwPUD75l2sqok+KrIosqx+TXX389NW71WuTf/OY30qdPn9RlfMnou0661gVlnyd918n0ukDXODB93vmik4nx/sknn0j/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cII88MADFek+J5RJJ/Ua3TfeeCM4p0aNGhVEVFZOs9W2p556Sn74wx/Kk08+WfH1tGnT5Nhjj61I9zmhTDpVi+y11157yaRJk5p0SP70009l9OjRctdddyVk6Nq1q6jv2rZtm0j39cB3nYqsC2ppnnSpkw/rgiLjwOa551In38a7LQe9PPq61Mn0usC0/Ty885ZxqZPpdcHbb78t9957r6i1xle/+lVREcqrbW+++aacfPLJoiLfxjeVX/1ftt9++8WTnezb1snm9cD0PGbafnxA6NTJ9LrA9PXMtP0496z7OnVy0c9jjjkmeHtXvN8/+MEP5Jprrokn5d43bT9tw3TqlLZO8kEAAhCAAAQgAAEIQAACEIAABCAAAQhAQBHAkVnzOIhu9tV6ROY1DbLwyJdFlm0Is/zvre2Jm0vXH/QJD4PPxWfPkvpnV0Vp7Yb3lC5n946OXe2UNSKzcuRr/ArDkOGzzz4b7gaf6se/atES999/f7n++usTeX09iM4nXxvYRLvQqQkwniRfffXVcskll1RtTbt27aqmN5V4yimnBI6ATX3vU3rZzqf+/fuLcm6IbypS9pAhQ6RPnz6yzTbbBBG1VZ6//e1vol4T23jr3bt3MGd279698VfeHpdNp6233joRgVKdQ1/60peCSL/bbrutNDQ0yHvvvSdz5sxp8vp11llnyYQJE7zVpFrDyqbT5MmTZfjw4RVdUf046qijgoja6nzp2LGjzJ8/X2bPni2/+tWvZPny5RVl7r///iByYsUXHib4opOpdUGtzJOudbK1LjA1Dmydeq518m2823TQy6Kxa51MrwtM28/Cukhe1zqZXhdce+21opz71LbZZpsFa8PPf/7zwRtS2rRpIx9++KH86U9/kqeffroqRtW+008/vep3NhNN6eTL9cD0PGbafjgWdOtkel1g+npm2n7IPeunbp1s91M9vLvbbrsF/9+GfVfz2TvvvCPq/6iim2n7adunW6e09ZIPAhCAAAQgAAEIQAACEIAABCAAAQhAAAKKAI7MBsZBcNOvxiMyK2yrn14oK0fN3UiwdSvpes8AadvnX6+FX/3khu8vjH2/RRvp8f82vIa8zcYizvZKGJFZORN16dKlMLK6ujpRr5Mty1a2m+jo5P/IGjlypEycOFFLQ3faaSd59913tdiyYaRM55N6Zat6tWreTf2o+Ic/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nnves//7+yW7MzvzP2efZ85h93jmbMkO74/wBwIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIGCZRgIrNB2igKBEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABECgggAmMuNCAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQME4AE5mNI0eBIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACmMiMawAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQMA4AUxkNo4cBYIACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACGAiM64BEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAAB4wQwkdk4chQIAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiCAicy4BkAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABIwTwERm48hRIAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAACYy4xoAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAwTgATmY0jR4EgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAKYyIxrAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARA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\" data-image-state=\"image-loaded\"\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; 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=\"\"\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: 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=\"font-weight: 700; \"\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; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eThe following restrictions apply:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cul style=\"block-size: 100px; font-family: Helvetica, Arial, sans-serif; list-style-type: square; margin-block-end: 20px; margin-block-start: 10px; margin-bottom: 20px; margin-top: 10px; perspective-origin: 391px 50px; transform-origin: 391px 50px; margin-top: 10px; margin-bottom: 20px; \"\u003e\u003cli style=\"background-position-x: 0px; background-position-y: 50%; block-size: 20px; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10px; text-align: left; transform-origin: 363px 10px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"background-position-x: 0%; background-position-y: 0%; block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eThe function should only have one (1) line of code, excluding the function start line.\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"background-position-x: 0px; background-position-y: 50%; block-size: 20px; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10px; text-align: left; transform-origin: 363px 10px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"background-position-x: 0%; background-position-y: 0%; block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eSemicolons (\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"background-position-x: 0%; background-position-y: 0%; block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e;\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"background-position-x: 0%; background-position-y: 0%; block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e) are considered end-of-line characters.\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"background-position-x: 0px; background-position-y: 50%; block-size: 20px; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10px; text-align: left; transform-origin: 363px 10px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"background-position-x: 0%; background-position-y: 0%; block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003ePlease suppress the function end line. Keyword '\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"background-position-x: 0%; background-position-y: 0%; block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; font-weight: 700; \"\u003eend'\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"background-position-x: 0%; background-position-y: 0%; block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e is not allowed.\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"background-position-x: 0px; background-position-y: 50%; block-size: 20px; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10px; text-align: left; transform-origin: 363px 10px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"background-position-x: 0%; background-position-y: 0%; block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eImporting libraries is not allowed.\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"background-position-x: 0px; background-position-y: 50%; block-size: 20px; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10px; text-align: left; transform-origin: 363px 10px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"background-position-x: 0%; background-position-y: 0%; block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eRegular expressions and string manipulation are not allowed.\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003c/ul\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function d = D(n)\r\n  y = x;\r\nend","test_suite":"%%\r\nn = 1:25;\r\nd_correct = [1 1 2 3 5 8 1 3 2 1 3 4 5 5 8 9 1 4 4 2 3 3 3 7 7];\r\nassert(isequal(D(n),d_correct))\r\n%%\r\nn = 100:100:1000;\r\nd_correct = [0 4 3 7 4 0 7 9 7 8];\r\nassert(isequal(D(n),d_correct))\r\n%%\r\nn = 1000:1000:10000;\r\nd_correct = [8 9 7 6 8 1 0 4 3 4];\r\nassert(isequal(D(n),d_correct))\r\n%%\r\nn = 10000:10000:100000;\r\nd_correct = [4 7 9 9 9 6 3 7 9 1];\r\nassert(isequal(D(n),d_correct))\r\n%%\r\nn = 100000:100000:1000000;\r\nd_correct = [1 9 2 5 9 3 2 8 9 3];\r\nassert(isequal(D(n),d_correct))\r\n%%\r\nn = 1000000:1000000:10000000;\r\nd_correct = [3 5 7 3 3 5 8 2 9 1];\r\nassert(isequal(D(n),d_correct))\r\n%%\r\nn = 10000:10000:10000000;\r\nh_correct = [100 96 109 85 105 115 82 107 100 101];\r\nassert(isequal(histc(D(n),0:9),h_correct))\r\n%%\r\nfiletext = fileread('D.m');\r\nnot_allowed = contains(filetext, 'import') || contains(filetext, 'str2') || contains(filetext, 'num2') || contains(filetext, 'sprintf') || contains(filetext, 'regex') || contains(filetext, 'eval') || contains(filetext, 'assignin') || contains(filetext, 'end');\r\nassert(~not_allowed)\r\nc = 0;\r\nfor s = deblank(strtrim(splitlines(filetext)))'\r\n    if ~isempty(s{1}) \u0026\u0026 ~isequal(s{1}(1),'%')\r\n        c = c + numel(find(s{1}==';'));\r\n        if  ~isequal(s{1}(end),';')\r\n            c = c + 1;\r\n        end\r\n    end\r\nend\r\nassert(c\u003c=2)","published":true,"deleted":false,"likes_count":0,"comments_count":1,"created_by":255988,"edited_by":255988,"edited_at":"2023-03-10T18:11:52.000Z","deleted_by":null,"deleted_at":null,"solvers_count":2,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2023-03-09T11:37:24.000Z","updated_at":"2026-10-17T18:52:37.000Z","published_at":"2023-03-10T18:10:42.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\u003eFor a given index \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\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003ex\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e, the \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\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003ex\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e-th \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://en.wikipedia.org/wiki/Fibonacci_number\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eFibonacci number, \u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:customXml w:element=\\\"equation\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"displayStyle\\\" w:val=\\\"false\\\"/\u003e\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003eF_x\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e is defined as: \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\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003eF_x=1\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e 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\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003ex=1\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e or \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\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003e2\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e, and \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\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003eF_x=F_{x-1}+F_{x-2}\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e 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\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003ex\u0026gt;2\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\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\u003eWhat this problem requires is find the digit \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\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003eD_{n}\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e, which is the \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\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:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e-th digit when the Fibonacci numbers are laid side by side\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\u003eFor 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\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003en=5\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e, \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\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003eD_5=5\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e, and if \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\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003en=25\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e, \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\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003eD_{25}=7\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"verticalAlign\\\" w:val=\\\"baseline\\\"/\u003e\u003cw:attr w:name=\\\"altText\\\" w:val=\\\"\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId1\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e--------------------------------\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eNOTE: \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003eThe following restrictions apply:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe function should only have one (1) line of code, excluding the function start line.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eSemicolons (\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e;\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e) are considered end-of-line characters.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ePlease suppress the function end line. Keyword '\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eend'\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e is not allowed.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eImporting libraries is not allowed.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eRegular expressions and string manipulation are not allowed.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\",\"relationship\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"target\":\"/media/image1.png\",\"relationshipId\":\"rId1\"}]},{\"partUri\":\"/media/image1.png\",\"contentType\":\"image/png\",\"content\":\"data:image/png;base64,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EEAAAQQQQAABBBBIuwALmdNOzoQIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgggwEJmXgMIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgggkHYBFjKnnZwJEUAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQICFzLwGEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQCDtAixkTjs5EyKAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAC5l5DSCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBA2gVYyJx2ciZEAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAARYy8xpAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAgbQLsJA57eRMiAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIsZOY1gAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAJpF2Ahc9rJmRABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEWMjMawABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEE0i7AQua0kzMhAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCLCQmdcAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCKRdgIXMaSdnQgQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBg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HXfIAQccUPZuq7ZtfT+tWrVKXnjhBRk+fLh88803UlRUFOdeu3Zt6d69u9x5553Sp0+fuPtt2mFbTlu2bJFzzz1XJkyYkBLzWWedJffff39KjzX5INtyKm21detWefjhh2XIkCEye/Zscc+FZb/cD0S5H+b461//KgMHDix7tzXbUc5J5fcFtp8no5KTie8LVL4OdL8xo5KTydf7s88+W/w9ofuhKneRnmtSr149OeOMM+SZZ57RHUGg+qZz0v19ge76gZAVDDKdU+mnoPv7guXLlxe/b0aMGCELFiwoPXXxbdeiZcuWctVVV8kll1wi+fn5cWNM7UhnTun674Hu85ju+oleC7py0v19ge7/numunyiLZPt05aTjeV5xxRXF14mSPZ+g99WpU0dGjRol++yzj/cQ3fW9iVK4oSunFA6FhyCAAAIIIIAAAggggAACCCCAAAIIZJkAC5kVB+5d7ItYR2ZVC5lz2jodmf9LR2bFL5uUy7mdRm6++WZ59NFHZdeuXb46AwYMkKFDh/r22bbhvZ9sO/Ayx0tOZUAisOkuhH3wwQfl3nvvLe7qG+SQ8vLy5Morr5Tbb79datasGeQhkRpj4/tp+/btxQuT3QWXiRZalgd89tlny+DBg63sKGtjTiNHjpSTTz65vDgq3O9+WMBdEGbTl405xXxffPHF4u8d/o+9MwGzojj398fOgICA4o4issQFNRCTqHGNxi3xuqAYNeTmGuG6RCUStyTGJLhcRQOPqLgGboyiosR/wKvGkKhJTNS4K+BKhLig7JssM3+qk26655xheqmtz7z9PPOc7jpVX1W9v+rqmj5ff52F+T777CM33XSTDB48ODRTik9fddK5LqiFedIHnVysC3SOAxsnpA86uR7vKnL97rvvLqodjbdevXqJctZ0vfmgk+l1gWn7NjT0Qaewn6bXBdOmTZMzzzwzisAc1tvUp4rQrB5gPOCAA5rKYi3dlk42rwem5zHT9quJb0In0+sC09cz0/ar6dBcmgmdTPazZ8+eqe8VNdd39f2UKVPkpJNOirKath9VlHHHhE4Zm0B2CEAAAhCAAAQgAAEIQAACEIAABCAAgRZMAEdmA+IHN/3KEJG5rrW02rpNJgIdv72V1B25ZaYyXmaugYjMjz32WBCFWb2atdpWC47Mql9lv4mOTtVGp/u04447TtSP6nm2I488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p3g72IcABCAAAQhAAAIQgAAEIAABCEAAAhBomQRwZDage3DTj4jMBshqNElEZo0wzZqqtZvoun6YNEs9u/Va0ylO4Morr5TLLrssniT77befPP3004m0MhzUmk7qh8Gf//zncscddwQOs3ENlGPzzJkzA6fzeHoZ9sumU2OHIsW4ffv2smbNmgC3cmLu3bu37LzzzsFDAbvssoucfPLJQVoZ9GiqjWXTSfVDOShffvnlFV1SfRk+fHjg+K8cmNWP/fFNOTGr6IgHHHBAPLkU+77rZHpdUJZ50ned4oPdxLrA9DiIt7/Ivu866Rrvp512mtx9990Rqm222UZmz54tXbp0idJ8dWRWDXStk+l1gWn7kciGd1zrpLpnYl2wcOFC6dmzZ4LerrvuKq+++mqqdbl6aGDs2LGJ8h999JH06tUrkWbrwLZOuq4Hpucx0/az6mtbp3j7TKwLdF3P4u2M75u2H68rvm9bJ1v9/J//+R+56KKL4l2V//qv/5Lbb789kZb3wLT9xu2yrVPj+jmGAAQgAAEIQAACEIAABCAAAQhAAAIQaLkEcGTWrH10s68EEZnbHNhZOhyV/IFpUzja9q6Ttn07bSpLab4jInM5pIrOp3I0N1Urdf0wmaoyS5lqUacQnYp8M2DAAPn444/DpODzxhtvlLPPPjuR5vtBmXWaNm2aTJo0KYgk29DQICoC2JtvvilKn2rbMcccIyoac11dXbWvvU4ro07VHIqag6wiVJ1zzjmiIvR17969uezefV9GnUKI11xzjVx88cXhYbOf2223ndxzzz3yla98pdm8vmUog0661gVlnifLoFM4tk2tC3SNg7CdJj590snkeFcPqjWe7371q1/JqaeemsDqqyOzDzqZXheYtp8Q2tCBDzqFXTOxLujWrZssXbo0rCL4TPOmFPUmj+OPP14efvjhRNm33nqr4g05iQyGDlzopON6YHoeM20/q5wudArbWHRdYPJ6ptpo2n7IIc2nSZ1c9nPt2rXBA7vz5s1LYHj55Zdljz32SKTlOTBtv3GbTOrUuC6OIQABCEAAAhCAAAQgAAEIQAACEIAABCDQmACOzI2JaDgObvqVICJz5q62bSU9ntpLpBbeDk9E5szyuypQazfRdfww6UqLTdVbazqFfVXOyjfddFN4GHxuu+228sYbb0jXrl0T6WU4KKtOKrryk08+2SziLbbYQsaPHx9ElW3btm2z+X3NUDadpkyZIsOGDcuFUzkxT506VQ4++OBc5V0WKptOcVaPPfaYnHXWWfL222/Hkyv2TzrpJLnttttKOd+FnfFdJ13rgrLPk77rFI4nU+sCXeMgbKepT190MjXelRPl4MGD5aWXXooQ7r///vLUU09Fx+GOr47Mqn2udTK9LjBtP9TY9KdrneL9070uOP/882XcuHHxKqRTp05yww03yJlnnplIVwfr1q0LoqCPGTMmeFgxnqF169aiHARVZHQXm22dil4PTM9jpu3n1di2TmE7i64LTF3PwvaZth/Wk/bTlE4u+/nrX/+64mEn9b/t73//+7RYNpnPtP1qlZvSqVpdpEEAAhCAAAQgAAEIQAACEIAABCAAAQhAIE4AR+Y4DQ370c2+EkRkztPd7o/uLq26t8tT1KsyRGT2So4mGxOdT03mKN8XRX+Y9LHHtaiT4vzcc8/JF7/4Ramvr09gV9F+jj322ERaGQ7KrNO+++4rf/nLX1JhVs7MJ5xwgqjocioaXNm2Muo0d+5c+fKXvxxEylYO/j169AjYt2/fXhYsWCD//Oc/Zc2aNU1KoRxTVMQqpV1ZtjLqFGerHIauv/76ilcgx/OoffVq+J/85CcycuRIKePDAWXQSde6oMzzZBl0UueDyXWBrnGg2mlq80knU+N9woQJwdsCQoZt2rSR559/Xvbcc88wKfr01ZHZB51MrwtM249ENrjjg07x7uleF6j138477yzLly+PVxPsDxw4UAYNGiQ77bSTfPjhhzJ79myZNWuWLFmypCJvmKA07927d3ho7dOFTkWvB6bnMdP284jrQifVTh3rAlPXs5CjafthPWk+Terksp9DhgwJ1gpxBjrvGZm2H2+32jepU+O6OIYABCAAAQhAAAIQgAAEIAABCEAAAhCAQGMCODI3JqLhOLjpV4sRmTew6f74HtKqW3mjXEbyEpE5QuH7Tq3dRC/6w6SvetWaTupH93322SeIvBxnPnToUFGvRS7rVladLrzwQhk7dmwm7DvssINMnjxZDjrooEzlfMhcRp0aGhoCp3/l9NV4U98pR5VJkyYFEbM/+OCDxlmChwPUD75l2sqok+KrIosqx+TXX389NW71WuTf/OY30qdPn9RlfMnou0661gVlnyd918n0ukDXODB93vmik4nx/sknn0j/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cII88MADFek+J5RJJ/Ua3TfeeCM4p0aNGhVEVFZOs9W2p556Sn74wx/Kk08+WfH1tGnT5Nhjj61I9zmhTDpVi+y11157yaRJk5p0SP70009l9OjRctdddyVk6Nq1q6jv2rZtm0j39cB3nYqsC2ppnnSpkw/rgiLjwOa551In38a7LQe9PPq61Mn0usC0/Ty885ZxqZPpdcHbb78t9957r6i1xle/+lVREcqrbW+++aacfPLJoiLfxjeVX/1ftt9++8WTnezb1snm9cD0PGbafnxA6NTJ9LrA9PXMtP0496z7OnVy0c9jjjkmeHtXvN8/+MEP5Jprrokn5d43bT9tw3TqlLZO8kEAAhCAAAQgAAEIQAACEIAABCAAAQhAQBHAkVnzOIhu9tV6ROY1DbLwyJdFlm0Is/zvre2Jm0vXH/QJD4PPxWfPkvpnV0Vp7Yb3lC5n946OXe2UNSKzcuRr/ArDkOGzzz4b7gaf6se/atES999/f7n++usTeX09iM4nXxvYRLvQqQkwniRfffXVcskll1RtTbt27aqmN5V4yimnBI6ATX3vU3rZzqf+/fuLcm6IbypS9pAhQ6RPnz6yzTbbBBG1VZ6//e1vol4T23jr3bt3MGd279698VfeHpdNp6233joRgVKdQ1/60peCSL/bbrutNDQ0yHvvvSdz5sxp8vp11llnyYQJE7zVpFrDyqbT5MmTZfjw4RVdUf046qijgoja6nzp2LGjzJ8/X2bPni2/+tWvZPny5RVl7r///iByYsUXHib4opOpdUGtzJOudbK1LjA1Dmydeq518m2823TQy6Kxa51MrwtM28/Cukhe1zqZXhdce+21opz71LbZZpsFa8PPf/7zwRtS2rRpIx9++KH86U9/kqeffroqRtW+008/vep3NhNN6eTL9cD0PGbafjgWdOtkel1g+npm2n7IPeunbp1s91M9vLvbbrsF/9+GfVfz2TvvvCPq/6iim2n7adunW6e09ZIPAhCAAAQgAAEIQAACEIAABCAAAQhAAAKKAI7MBsZBcNOvxiMyK2yrn14oK0fN3UiwdSvpes8AadvnX6+FX/3khu8vjH2/RRvp8f82vIa8zcYizvZKGJFZORN16dKlMLK6ujpRr5Mty1a2m+jo5P/IGjlypEycOFFLQ3faaSd59913tdiyYaRM55N6Zat6tWreTf2o+Ic/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nnves//7+yW7MzvzP2efZ85h93jmbMkO74/wBwIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIGCZRgIrNB2igKBEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABECgggAmMuNCAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQME4AE5mNI0eBIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACmMiMawAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQMA4AUxkNo4cBYIACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACGAiM64BEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAAB4wQwkdk4chQIAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiCAicy4BkAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABIwTwERm48hRIAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAACYy4xoAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAwTgATmY0jR4EgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAKYyIxrAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARA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\",\"relationship\":null}],\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"target\":\"/matlab/document.xml\",\"relationshipId\":\"rId1\"}]}"}],"errors":[],"facets":[[{"value":"Algorithm I","count":8,"selected":false},{"value":"Programky -old","count":2,"selected":false},{"value":"Chess","count":1,"selected":false},{"value":"Computational Geometry IV","count":1,"selected":false},{"value":"Programky","count":1,"selected":false}],[{"value":"medium","count":18,"selected":false},{"value":"hard","count":4,"selected":false},{"value":"easy","count":1,"selected":false}]],"term":"tag:\"algorithm\"","page":1,"per_page":50,"sort":"map(difficulty_value,0,0,999) asc"}}