{"group":{"id":1,"name":"Community","lockable":false,"created_at":"2012-01-18T18:02:15.000Z","updated_at":"2025-12-14T01:33:56.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":"2025-12-14T00: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":45247,"title":"Tell your secret","description":"A secret can be told only to 2 persons in 5 minutes. Now, these 2 more persons can spread the secret to 4 other people in the next 5 minutes. this way continues... So How long will it take to spread the secret to n persons?\r\nOutput will be for two scenarios -\r\n\r\n* z(1) -- each person can continue spreading the secret\r\n* z(2) -- each person can tell the secret to only two persons\r\n\r\nn.b. outputs can only be multiples of 5. ","description_html":"\u003cp\u003eA secret can be told only to 2 persons in 5 minutes. Now, these 2 more persons can spread the secret to 4 other people in the next 5 minutes. this way continues... So How long will it take to spread the secret to n persons?\r\nOutput will be for two scenarios -\u003c/p\u003e\u003cul\u003e\u003cli\u003ez(1) -- each person can continue spreading the secret\u003c/li\u003e\u003cli\u003ez(2) -- each person can tell the secret to only two persons\u003c/li\u003e\u003c/ul\u003e\u003cp\u003en.b. outputs can only be multiples of 5.\u003c/p\u003e","function_template":"function t = puzzle_tell_ur_secret(n)","test_suite":"%%\r\nn = 1;\r\nz = [0,0];\r\nassert(isequal(puzzle_tell_ur_secret(n),z))\r\n%%\r\nn = 2;\r\nz = [5,5];\r\nassert(isequal(puzzle_tell_ur_secret(n),z))\r\n%%\r\nn = 3;\r\nz = [5,5];\r\nassert(isequal(puzzle_tell_ur_secret(n),z))\r\n%%\r\nn = 8;\r\nz = [10,15];\r\nassert(isequal(puzzle_tell_ur_secret(n),z))\r\n%%\r\nn = 20;\r\nz = [15,20];\r\nassert(isequal(puzzle_tell_ur_secret(n),z))\r\n%%\r\nn = 31;\r\nz = [20,20];\r\nassert(isequal(puzzle_tell_ur_secret(n),z))\r\n%%\r\nn = 64;\r\nz = [20,30];\r\nassert(isequal(puzzle_tell_ur_secret(n),z))\r\n%%\r\nn = 100;\r\nz = [25,30];\r\nassert(isequal(puzzle_tell_ur_secret(n),z))\r\n%%\r\nn = 768;\r\nz = [35,45];\r\nassert(isequal(puzzle_tell_ur_secret(n),z))\r\n%%\r\nn = 3000;\r\nz = [40,55];\r\nassert(isequal(puzzle_tell_ur_secret(n),z))\r\n%%\r\nn = 100000;\r\nz = [55,80];\r\nassert(isequal(puzzle_tell_ur_secret(n),z))\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":363598,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":17,"test_suite_updated_at":"2019-12-27T00:41:26.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2019-12-27T00:10:25.000Z","updated_at":"2026-03-13T11:59:30.000Z","published_at":"2019-12-27T00:41:26.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 secret can be told only to 2 persons in 5 minutes. Now, these 2 more persons can spread the secret to 4 other people in the next 5 minutes. this way continues... So How long will it take to spread the secret to n persons? Output will be for two scenarios -\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\u003ez(1) -- each person can continue spreading the secret\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\u003ez(2) -- each person can tell the secret to only two persons\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003en.b. outputs can only be multiples of 5.\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":45509,"title":"List the households affected by leaks in water distribution ","description":"Consider the following water distribution network, where water is pumped uni-directionally from left to right:\r\n\r\n             8\r\n            /\r\n           2 ---- 9     13      24 ---- 25\r\n          / \\          /       /      \r\n         /   7        12 ---- 23\r\n        /     6      / \\           22\r\n0 ---- 1     /      /   14        /\r\n        \\   4 ---- 11            /\r\n         \\ / \\          17 ---- 19 ---- 21\r\n          3   \\        /  \\      \\\r\n           \\  10 ---- 15   18     \\\r\n            5          \\           20\r\n                        16\r\n\r\nThe network consists of: (1) a single source station; (2) pumping stations; and, (3) households / end-users. The source station is Node 0. _Pumping stations_ are nodes that lead water to more nodes downstream. In the example, the pumping stations are Nodes 1, 2, 3, 4, 10, 11, 12, 15, 17, 19, 23, 24. Meanwhile, _households_ are nodes that do not lead to any more nodes downstream. In the example, the households are Nodes 5, 6, 7, 8, 9, 13, 14, 16, 18, 20, 21, 22, 25.\r\n\r\n\r\nIf there is a leak at any node, then all the nodes downstream from that node will be affected, including itself. For instance, if Node 17 has leaked, then Nodes 17-22 are all affected. Among these, Nodes 18, 20-21 are households. Given *P*, can you list all the households that are affected by a leak in Node *P*?\r\n\r\nWrite a function that accepts a vector *X*, which is a row vector of length *N*, and a scalar *P*. The *X* represents the water distribution network, read as follows: Node *X*( _i_ ) is a _direct_ downstream water distributor to Node _i_, for 1 \u003c= _i_ \u003c= *N*. Given *X* and *P*, output a row vector listing all affected households, _sorted in increasing order_.\r\n\r\nFor instance, the above example will be represented as:\r\n\r\n  i =  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25\r\n X = [0 1 1 3 3 4 2 2 2  4  4 11 12 12 10 15 15 17 17 19 19 19 12 23 24]\r\n\r\nPlease take the time to verify the elements of *X*. Using this *X*, sample test cases are given below:\r\n\r\n  \u003e\u003e water_loss(X,2)\r\n  ans =  \r\n     7 8 9\r\n\u003e\u003e water_loss(X,10)\r\nans =\r\n     16 18 20 21 22\r\n\u003e\u003e water_loss(X,23)\r\nans =\r\n     25\r\n\u003e\u003e water_loss(X,13)\r\nans =\r\n     13\r\n\r\nYou are ensured that:\r\n\r\n* 2 \u003c= *N* \u003c= 400 and 1 \u003c= *P* \u003c= *N*\r\n* *X*( _i_ ) \u003c _i_, for _i_ = [1, *N*]\r\n* *X*( _i_ ) \u003e 0, for _i_ = [2, *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: 988.2px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 494.1px; transform-origin: 407px 494.1px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 20.8px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-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.4px; text-align: left; transform-origin: 384px 10.4px; 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=\"\"\u003eConsider the following water distribution network, where water is pumped uni-directionally from left to right:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgb(247, 247, 247); block-size: 260px; border-bottom-left-radius: 4px; border-bottom-right-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 130px; transform-origin: 404px 130px; 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-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-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             8\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-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-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\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-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-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           2 ---- 9     13      24 ---- 25\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-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-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\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-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-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         /   7        12 ---- 23\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-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-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        /     6      / \\           22\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-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-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; \"\u003e0 ---- 1     /      /   14        /\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-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-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        \\   4 ---- 11            /\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-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-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         \\ / \\          17 ---- 19 ---- 21\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-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-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          3   \\        /  \\      \\\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-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-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           \\  10 ---- 15   18     \\\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-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-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            5          \\           20\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-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-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                        16\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 83.2px; 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 41.6px; text-align: left; transform-origin: 384px 41.6px; 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 network consists of: (1) a single source station; (2) pumping stations; and, (3) households / end-users. The source station is Node 0.\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \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-style: italic; \"\u003ePumping stations\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 are nodes that lead water to more nodes downstream. In the example, the pumping stations are Nodes 1, 2, 3, 4, 10, 11, 12, 15, 17, 19, 23, 24. Meanwhile,\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\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; 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-style: italic; \"\u003ehouseholds\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 are nodes that do not lead to any more nodes downstream. In the example, the households are Nodes 5, 6, 7, 8, 9, 13, 14, 16, 18, 20, 21, 22, 25.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 62.4px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-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.2px; text-align: left; transform-origin: 384px 31.2px; 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=\"\"\u003eIf there is a leak at any node, then all the nodes downstream from that node will be affected, including itself. For instance, if Node 17 has leaked, then Nodes 17-22 are all affected. Among these, Nodes 18, 20-22 are households. Given\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\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; 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; \"\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, can you list all the households that are affected by a leak in Node\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\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; 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; \"\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?\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 62.4px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-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.2px; text-align: left; transform-origin: 384px 31.2px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eWrite a function that accepts a 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=\"\"\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-weight: 700; \"\u003eX\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e, which is a row vector of length\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\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eN\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 scalar\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\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; 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; \"\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. 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=\"\"\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-weight: 700; \"\u003eX\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e represents the water distribution network, read as follows: Node\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\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; 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; \"\u003eX\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e(\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-style: italic; \"\u003ei\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 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; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-style: italic; \"\u003edirect\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 downstream water distributor to Node\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\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; 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-style: italic; \"\u003ei\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, for 1 \u0026lt;=\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\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; 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-style: italic; \"\u003ei\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 \u0026lt;=\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\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eN\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. Given\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\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; 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; \"\u003eX\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\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=\"\"\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-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, output a row vector listing all affected households,\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\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; 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-style: italic; \"\u003esorted in increasing order\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: 20.8px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-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.4px; text-align: left; transform-origin: 384px 10.4px; 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, the above example will be represented as:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgb(247, 247, 247); block-size: 40px; border-bottom-left-radius: 4px; border-bottom-right-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 20px; transform-origin: 404px 20px; 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-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-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; \"\u003ei =  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25\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-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-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; \"\u003eX = [0 1 1 3 3 4 2 2 2  4  4 11 12 12 10 15 15 17 17 19 19 19 12 23 24]\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 20.8px; 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.4px; text-align: left; transform-origin: 384px 10.4px; 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=\"\"\u003ePlease take the time to verify the elements 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=\"\"\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-weight: 700; \"\u003eX\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e. Using this\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\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; 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; \"\u003eX\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e, sample test cases are given below:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgb(247, 247, 247); block-size: 240px; border-bottom-left-radius: 4px; border-bottom-right-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 120px; transform-origin: 404px 120px; 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-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-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\u0026gt;\u0026gt; water_loss(X,2)\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-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-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; \"\u003eans =  \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-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-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   7 8 9\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-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-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\u0026gt;\u0026gt; water_loss(X,10)\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-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-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; \"\u003eans =\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-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-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   16 18 20 21 22\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-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-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\u0026gt;\u0026gt; water_loss(X,23)\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-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-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; \"\u003eans =\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-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-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   25\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-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-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\u0026gt;\u0026gt; water_loss(X,13)\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-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-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; \"\u003eans =\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-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-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   13\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 20.8px; 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.4px; text-align: left; transform-origin: 384px 10.4px; 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=\"\"\u003eYou are ensured that:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cul style=\"block-size: 60px; 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 30px; transform-origin: 391px 30px; margin-top: 10px; margin-bottom: 20px; \"\u003e\u003cli style=\"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=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e2 \u0026lt;=\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; \"\u003e\u003cspan style=\"\"\u003e \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; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eN\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; \"\u003e\u003cspan style=\"\"\u003e \u0026lt;= 400 and 1 \u0026lt;=\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; \"\u003e\u003cspan style=\"\"\u003e \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; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eP\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; \"\u003e\u003cspan style=\"\"\u003e \u0026lt;=\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; \"\u003e\u003cspan style=\"\"\u003e \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; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eN\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"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=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eX\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; \"\u003e\u003cspan style=\"\"\u003e(\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; \"\u003e\u003cspan style=\"\"\u003e \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; \"\u003e\u003cspan style=\"font-style: italic; \"\u003ei\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; \"\u003e\u003cspan style=\"\"\u003e ) \u0026lt;\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; \"\u003e\u003cspan style=\"\"\u003e \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; \"\u003e\u003cspan style=\"font-style: italic; \"\u003ei\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; \"\u003e\u003cspan style=\"\"\u003e, for\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; \"\u003e\u003cspan style=\"\"\u003e \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; \"\u003e\u003cspan style=\"font-style: italic; \"\u003ei\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; \"\u003e\u003cspan style=\"\"\u003e = [1,\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; \"\u003e\u003cspan style=\"\"\u003e \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; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eN\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; \"\u003e\u003cspan style=\"\"\u003e]\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"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=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eX\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; \"\u003e\u003cspan style=\"\"\u003e(\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; \"\u003e\u003cspan style=\"\"\u003e \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; \"\u003e\u003cspan style=\"font-style: italic; \"\u003ei\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; \"\u003e\u003cspan style=\"\"\u003e ) \u0026gt; 0, for\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; \"\u003e\u003cspan style=\"\"\u003e \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; \"\u003e\u003cspan style=\"font-style: italic; \"\u003ei\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; \"\u003e\u003cspan style=\"\"\u003e = [2,\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; \"\u003e\u003cspan style=\"\"\u003e \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; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eN\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; \"\u003e\u003cspan style=\"\"\u003e]\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003c/ul\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function y = water_loss(X,P)\r\n  y = P;\r\nend","test_suite":"%%\r\nfiletext = fileread('water_loss.m')\r\nassert(isempty(strfind(filetext, 'rand')))\r\nassert(isempty(strfind(filetext, 'fileread')))\r\nassert(isempty(strfind(filetext, 'assert')))\r\nassert(isempty(strfind(filetext, 'echo')))\r\n%%\r\nX = [0 1 1 2 4 2 4];\r\nP = 2;\r\ny = [5 6 7 ];\r\nassert(isequal(water_loss(X,P),y))\r\n%%\r\nX = [0 1 2 3 4 5 4 1];\r\nP = 2;\r\ny = [6 7 ];\r\nassert(isequal(water_loss(X,P),y))\r\n%%\r\nX = [0 1 1 3 3 4 2 2 2 4 4 11 12 12 10 15 15 17 17 19 19 19 12 23 24];\r\nassert(isequal(water_loss(X,23),25))\r\nassert(isequal(water_loss(X,13),13))\r\nassert(isequal(water_loss(X,2),[7 8 9]))\r\nassert(isequal(water_loss(X,10),[16 18 20 21 22]))\r\n%%\r\nX = [0 1 2 1 2 4 5 1 8 7 5 5 6 4 8 ...\r\n 8 14 14 12 8 17 12 8 22 22 14 17 16 6 9 ...\r\n 15 8 28 7 8 6 9 17];\r\nassert(isequal(water_loss(X,36),36))\r\nP = 17;\r\ny = [21 27 38];\r\nassert(isequal(water_loss(X,P),y))\r\n%%\r\nX = [0 1 1 2 2 1 4 2 4 6 3 4 8 4 12 ...\r\n 15 12 6 11 3 19 19 18 6 15 1 12 9 5 6 ...\r\n 13 3 20 16 24 25 23 2 3 13 22 27 18 36 32 ...\r\n 44 25 16 6 30 39 22 5 15 9 16 25 31 27 52 ...\r\n 32 58 40 61 16];\r\nP = 19;\r\ny = [21 41 60 ];\r\nassert(isequal(water_loss(X,P),y))\r\nP = 15;\r\ny = [34 46 47 48 54 56 57 65 ];\r\nassert(isequal(water_loss(X,P),y))\r\n%%\r\nX = [0 1 1 2 1 3 3 2 2 9 7 6 11 2 11 ...\r\n 12 9 4 11 6 3 5 20 2 6 2 12 1 26 6 ...\r\n 3 10 15 4 34 12 11 3 12 2 21 32 27 4 4 ...\r\n 35 42 26 6 41 17 15 39 1 3 37 34 30 43 42 ...\r\n 47 18 43 36 26 5 52 23 42 52 8 10 40 36 66 ...\r\n 60 56 4 6 7 64 77 57 11 61 10 11 56 29 59 ...\r\n 68 54 69 22 70 93 84 9 36 37 69 61 81 38 22 ...\r\n 10 82 23 42 61 26 72 55 18 90 12 35 28 63 11 ...\r\n 49 13 14 97 37 76 122 55 89 98 57 86 15 125 26 ...\r\n 36 109 67 107 56 39 6 96 62 66 89 9 47 115 104 ...\r\n 19 20 15 2 66 102 113 84 18 101 21 22 16 24];\r\ny = [95 138 ];\r\nassert(isequal(water_loss(X,52),y))\r\ny = [74 99 103 136 ];\r\nassert(isequal(water_loss(X,36),y))\r\ny = [85 110 126 137 143 148 156 160 ];\r\nassert(isequal(water_loss(X,42),y))\r\n%%\r\nX = [0 1 1 3 2 3 5 7 3 8 8 11 1 5 10 5 4 13 12 12 14 1 8 11 6 ...\r\n 18 23 8 21 4 26 5 19 13 28 18 18 33 14 18 39 2 41 9 30 27 32 17 30 40 ...\r\n 1 5 51 35 13 23 7 16 15 20 10 22 8 56 7 61 27 4 24 51 56 39 50 66 5 ...\r\n 23 4 16 57 58 71 48 6 77 68 25 47 86 63 75 39 43 52 26 71 48 63 30 14 48 ...\r\n 37 80 80 69 14 3 60 33 102 107 32 89 101 68 101 109 64 86 69 4 54 79 64 46 117 ...\r\n 104 107 48 76 113 122 88 28];\r\ny = [115 130 ];\r\nassert(isequal(water_loss(X,101),y))\r\ny = [81 95 123 125 ];\r\nassert(isequal(water_loss(X,56),y))\r\n%%\r\nX = [0 1 2 2 2 2 5 7 8 6 6 2 11 6 3 14 13 16 6 13 14 3 9 7 18 ...\r\n 8 24 23 11 15 21 26 20 19 12 16 26 33 28 1 27 18 19 6 36 15 12 17 19 27 ...\r\n 29 21 21 28 36 53 41 23 49 8 4 6 11 21 20 1 36 7 10 44 61 70 42 73 41 ...\r\n 39 26 34 39 6 72 6 36 69 34 53 71 78 82 17 24 82 55 47 58 78 52 20 45 43 ...\r\n 97 63 71 75 37 55 60 17 61 76 47 93 82 41 52 45 90 86 51 83 114 95 87 14 49 ...\r\n 74 58 7 30 108 3 114 11 89 68 30 78 17 93 84 8 8 22 3 63 121 91 77 128 15 ...\r\n 137 17 79 22 87 1 120 134 145 157 81 44 17 83 97 126 14 111 87 29 160 101 76 163 115 ...\r\n 80 148 95 99 122 67 44 106 159 75 21 83 57 76 158 77 75 70 28 51 17 85 51 59 85 ...\r\n 24 100 143 50 161 16 82 1 46 1 40 31 57 38 30 129 195 204 49 106 83 116 59 16 98 ...\r\n 40 6 217 99 221 176 2 158 165 151 130 52 184 55 89 214 207 98 78 149 223 224 147 83 213 ...\r\n 111 227 9 135 182 46 87 49 84 105 143 13 145 73 64 65 42 256 251 221 197 48 99 52 1 ...\r\n 88 194 174 151 123 81 141 215 216 164 214 185 36 146 101 27 44 58 197 127 205 77 3 159 84 ...\r\n 284 273 119 8 205 256 298 18 139 180 213 224 203 228 118 184 37 19 312 91 191 309 60 63 111 ...\r\n 304 128 90 50 131 124 44 145 31 206 4 193 267 80 152 194 21 170 221 77 289 336 294 177 98 ...\r\n 262 84 337 219 213 62 33 92 308 328 252 262 84 210 296 148 362 34 119 189 23 270 208 198 311 ...\r\n 323 297 120 171 286 42 42 104 201 374 274 121 113 330 355 250 100 35 330 231 375 25 233 114 331];\r\ny = [321 345 349 366 377 ];\r\nassert(isequal(water_loss(X,77),y))\r\ny = [140 259 300 352 363 ];\r\nassert(isequal(water_loss(X,84),y))\r\ny = [32 54 107 110 132 142 153 173 178 188 192 218 245 248 253 254 260 277 282 ...\r\n    287 291 293 295 310 317 320 321 326 327 329 341 345 346 349 366 370 371 376 ...\r\n    377 383 384 387 390 391 396 399];\r\nassert(isequal(water_loss(X,5),y))\r\n%%\r\nX = [0 1 1 2 4 3 1 1 7 5 4 9 5 7 10 14 6 12 18 2 12 9 7 7 19 ...\r\n 25 5 22 6 29 25 14 24 17 28 13 3 22 35 8 18 31 2 41 34 26 9 24 25 49 ...\r\n 43 50 36 22 51 27 13 23 41 33 46 61 60 34 62 8 4 21 40 37 64 39 32 40 53 ...\r\n 2 61 11 38 21 30 54 14 24 17 17 29 77 42 36 17 89 38 79 58 36 85 77 46 81 ...\r\n 90 44 35 62 94 74 41 79 104 60 60 35 8 21 11 54 2 108 76 1 4 26 56 16 2 ...\r\n 91 45 100 56 57 7 7 13 80 33 114 117 133 68 31 32 76 109 50 67 93 134 24 106 87 ...\r\n 65 134 60 28 98 97 52 127 158 156 21 38 4 100 19 68 147 92 62 36 75 164 22 82 150 ...\r\n 8 122 174 51 24 124 165 112 165 36 140 65 79 30 155 119 142 155 13 185 98 149 147 165 32 ...\r\n 92 125 189 170 183 120 121 177 8 186 86 8 159 33 31 131 55 71 88 89 85 135 38 42 22 ...\r\n 73 174 54 169 159 190 192 69 73 123 77 197 193 133 63 164 57 111 94 132 243 186 243 59 132 ...\r\n 13 190 152 217 252 238 105 1 140 54 58 86 26 197 198 144 90 223 149 258 242 97 149 95 171 ...\r\n 220 206 35 229 8 117 206 221 104 212 255 70 38 65 102 84 270 15 174 48 248 50 150 298 107 ...\r\n 15 65 121 102 70 286 210 296 135 291 2 190 250 73 293 241 262 182 253 105 72 101 189 269 95 ...\r\n 131 282 202 326 68 273 224 83 159 134 201 269 36 278 286 121 147 196 241 256 262 135 149 333 200 ...\r\n 298 97 220 208 342 31 179 187 33 325 319 159 283 54 226 96 164 310 73 113 179 126 298 369 60 ...\r\n 89 265 142 369 369 245 328 154 243 379 216 361 279 188 249 347 78 155 390 159 261 357 396 260 44];\r\ny = [115 129 130 138 145 163 194 195 204 207 235 239 251 267 271 275 301 303 315 322 338 341 366 392 ];\r\nassert(isequal(water_loss(X,4),y))\r\ny = [143 151 284 289 302 358 388 ];\r\nassert(isequal(water_loss(X,62),y))\r\ny = [130 271 ];\r\nassert(isequal(water_loss(X,57),y))\r\ny = [160 272 352 ];\r\nassert(isequal(water_loss(X,97),y))\r\ny = [275 ];\r\nassert(isequal(water_loss(X,75),y))\r\ny = [145 ];\r\nassert(isequal(water_loss(X,67),y))\r\ny = [275 ];\r\nassert(isequal(water_loss(X,53),y))\r\ny = [99 143 151 219 231 236 263 284 289 302 306 312 340 343 345 354 358 388 393 ];\r\nassert(isequal(water_loss(X,26),y))\r\ny = [160 272 352 ];\r\nassert(isequal(water_loss(X,97),y))\r\ny = [254 ];\r\nassert(isequal(water_loss(X,55),y))\r\n","published":true,"deleted":false,"likes_count":4,"comments_count":0,"created_by":255320,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":23,"test_suite_updated_at":"2020-05-11T17:59:04.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2020-05-11T16:06:38.000Z","updated_at":"2025-12-05T01:48:01.000Z","published_at":"2020-05-11T17:59:04.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eConsider the following water distribution network, where water is pumped uni-directionally from left to right:\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[             8\\n            /\\n           2 ---- 9     13      24 ---- 25\\n          / \\\\          /       /      \\n         /   7        12 ---- 23\\n        /     6      / \\\\           22\\n0 ---- 1     /      /   14        /\\n        \\\\   4 ---- 11            /\\n         \\\\ / \\\\          17 ---- 19 ---- 21\\n          3   \\\\        /  \\\\      \\\\\\n           \\\\  10 ---- 15   18     \\\\\\n            5          \\\\           20\\n                        16]]\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 network consists of: (1) a single source station; (2) pumping stations; and, (3) households / end-users. The source station is Node 0.\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ePumping stations\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e are nodes that lead water to more nodes downstream. In the example, the pumping stations are Nodes 1, 2, 3, 4, 10, 11, 12, 15, 17, 19, 23, 24. Meanwhile,\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ehouseholds\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e are nodes that do not lead to any more nodes downstream. In the example, the households are Nodes 5, 6, 7, 8, 9, 13, 14, 16, 18, 20, 21, 22, 25.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\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 there is a leak at any node, then all the nodes downstream from that node will be affected, including itself. For instance, if Node 17 has leaked, then Nodes 17-22 are all affected. Among these, Nodes 18, 20-22 are households. Given\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eP\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e, can you list all the households that are affected by a leak in Node\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eP\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e?\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eWrite a function that accepts a vector\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eX\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e, which is a row vector of length\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eN\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e, and a scalar\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eP\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e. The\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eX\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e represents the water distribution network, read as follows: Node\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eX\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\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\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ei\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e ) is 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:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003edirect\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e downstream water distributor to Node\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ei\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e, for 1 \u0026lt;=\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ei\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u0026lt;=\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eN\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e. Given\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eX\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e and\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eP\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e, output a row vector listing all affected households,\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003esorted in increasing order\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 instance, the above example will be represented as:\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[i =  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25\\nX = [0 1 1 3 3 4 2 2 2  4  4 11 12 12 10 15 15 17 17 19 19 19 12 23 24]]]\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\u003ePlease take the time to verify the elements of\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eX\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e. Using this\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eX\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e, sample test cases are given below:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[\u003e\u003e water_loss(X,2)\\nans =  \\n   7 8 9\\n\u003e\u003e water_loss(X,10)\\nans =\\n   16 18 20 21 22\\n\u003e\u003e water_loss(X,23)\\nans =\\n   25\\n\u003e\u003e water_loss(X,13)\\nans =\\n   13]]\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 are ensured that:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e2 \u0026lt;=\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eN\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u0026lt;= 400 and 1 \u0026lt;=\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eP\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u0026lt;=\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eN\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:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eX\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:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ei\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e ) \u0026lt;\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ei\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e, for\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ei\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e = [1,\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eN\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e]\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\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\u003eX\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:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ei\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e ) \u0026gt; 0, for\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ei\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e = [2,\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eN\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\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":1897,"title":"GJam 2014 China Rd A: Rational Number Tree","description":"This Challenge is derived from \u003chttp://code.google.com/codejam/contest/2924486/dashboard#s=p1 GJam 2014 China Rational Number Tree\u003e.\r\n\r\nThe Goal is to determine the tree node if given [P,Q] or provide the [P,Q] if given a node. This is the small Challenge with a Max of 16 Tree levels. The large Challenge is 64 Tree levels.\r\n\r\nConsider an infinite complete binary tree where the root node is 1/1 and the left and right childs of node P/Q are P/(P+Q) and (P+Q)/Q, respectively. \r\n\r\nThe Tree looks like:\r\n\r\n         1/1\r\n    ______|______\r\n    |           |\r\n   1/2         2/1\r\n ___|___     ___|___\r\n |     |     |     |\r\n1/3   3/2   2/3   3/1\r\n\r\n\r\nThe nodes are 1/1, 1/2, 2/1, 1/3, 3/2, 2/3, 3/1,...\r\n\r\n\r\n*Input:* [N] or [P,Q] where N is an integer node or [P,Q] are terms of a Node\r\n\r\n*Output:* [P,Q] or [N]  depends on Input type\r\n\r\n*Examples:*\r\n\r\n  [Input]  [Output]\r\n    [2] [1 2]\r\n    [1 2] [2]\r\n    [5] [3 2]\r\n    [3 2] [5]\r\n\r\n*Contest Performance:* Best Delta Time of 14 minutes with 1193 out of 3058 completing in less than 3 hours.","description_html":"\u003cp\u003eThis Challenge is derived from \u003ca href = \"http://code.google.com/codejam/contest/2924486/dashboard#s=p1\"\u003eGJam 2014 China Rational Number Tree\u003c/a\u003e.\u003c/p\u003e\u003cp\u003eThe Goal is to determine the tree node if given [P,Q] or provide the [P,Q] if given a node. This is the small Challenge with a Max of 16 Tree levels. The large Challenge is 64 Tree levels.\u003c/p\u003e\u003cp\u003eConsider an infinite complete binary tree where the root node is 1/1 and the left and right childs of node P/Q are P/(P+Q) and (P+Q)/Q, respectively.\u003c/p\u003e\u003cp\u003eThe Tree looks like:\u003c/p\u003e\u003cpre\u003e         1/1\r\n    ______|______\r\n    |           |\r\n   1/2         2/1\r\n ___|___     ___|___\r\n |     |     |     |\r\n1/3   3/2   2/3   3/1\u003c/pre\u003e\u003cp\u003eThe nodes are 1/1, 1/2, 2/1, 1/3, 3/2, 2/3, 3/1,...\u003c/p\u003e\u003cp\u003e\u003cb\u003eInput:\u003c/b\u003e [N] or [P,Q] where N is an integer node or [P,Q] are terms of a Node\u003c/p\u003e\u003cp\u003e\u003cb\u003eOutput:\u003c/b\u003e [P,Q] or [N]  depends on Input type\u003c/p\u003e\u003cp\u003e\u003cb\u003eExamples:\u003c/b\u003e\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003e[Input]  [Output]\r\n  [2] [1 2]\r\n  [1 2] [2]\r\n  [5] [3 2]\r\n  [3 2] [5]\r\n\u003c/pre\u003e\u003cp\u003e\u003cb\u003eContest Performance:\u003c/b\u003e Best Delta Time of 14 minutes with 1193 out of 3058 completing in less than 3 hours.\u003c/p\u003e","function_template":"function vout=Tree_CH(v)\r\n vout=v;\r\nend","test_suite":"%%\r\ntic\r\nv=[281 87 ];\r\nvexp=[64903 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[71 384 ];\r\nvexp=[40544 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[280 103 ];\r\nvexp=[14427 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[17357 ];\r\nvexp=[277 162 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[263 381 ];\r\nvexp=[19846 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[785 477 ];\r\nvexp=[56053 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[19311 ];\r\nvexp=[440 93 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[241 171 ];\r\nvexp=[33049 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[225 94 ];\r\nvexp=[14291 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[40040 ];\r\nvexp=[185 664 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[565 431 ];\r\nvexp=[60145 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[399 680 ];\r\nvexp=[64178 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[62292 ];\r\nvexp=[358 937 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[398 1051 ];\r\nvexp=[46356 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[59 45 ];\r\nvexp=[1777 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[47 175 ];\r\nvexp=[3400 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[59987 ];\r\nvexp=[1109 466 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[33547 ];\r\nvexp=[329 129 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[256 45 ];\r\nvexp=[20703 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[43221 ];\r\nvexp=[1090 673 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[80 251 ];\r\nvexp=[41976 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[40366 ];\r\nvexp=[487 621 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[65 48 ];\r\nvexp=[1289 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[5644 ];\r\nvexp=[59 145 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[52852 ];\r\nvexp=[307 787 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[61149 ];\r\nvexp=[610 341 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[39087 ];\r\nvexp=[650 141 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[61881 ];\r\nvexp=[520 361 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[488 275 ];\r\nvexp=[21405 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[33893 ];\r\nvexp=[485 306 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[26965 ];\r\nvexp=[885 547 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[5918 ];\r\nvexp=[99 122 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[63216 ];\r\nvexp=[90 379 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[248 459 ];\r\nvexp=[60546 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[26250 ];\r\nvexp=[370 607 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[295 476 ];\r\nvexp=[33386 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[29373 ];\r\nvexp=[450 247 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[183 509 ];\r\nvexp=[64324 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[56818 ];\r\nvexp=[257 433 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[447 730 ];\r\nvexp=[57674 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[241 ];\r\nvexp=[17 13 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[14807 ];\r\nvexp=[313 86 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[251 145 ];\r\nvexp=[8557 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[76 485 ];\r\nvexp=[60096 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[24345 ];\r\nvexp=[278 197 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[2581 ];\r\nvexp=[127 79 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[588 247 ];\r\nvexp=[48723 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[190 233 ];\r\nvexp=[9630 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[367 303 ];\r\nvexp=[61729 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[4019 ];\r\nvexp=[97 40 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[58547 ];\r\nvexp=[953 394 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[25786 ];\r\nvexp=[367 573 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[52923 ];\r\nvexp=[788 283 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[16812 ];\r\nvexp=[134 319 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[394 323 ];\r\nvexp=[38817 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[34401 ];\r\nvexp=[352 287 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[27426 ];\r\nvexp=[334 597 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[278 41 ];\r\nvexp=[35775 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[59405 ];\r\nvexp=[279 166 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[271 428 ];\r\nvexp=[48986 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[539 327 ];\r\nvexp=[59893 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[461 178 ];\r\nvexp=[17867 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[491 627 ];\r\nvexp=[47278 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[62313 ];\r\nvexp=[712 513 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[10791 ];\r\nvexp=[346 103 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[58888 ];\r\nvexp=[109 419 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[431 114 ];\r\nvexp=[20855 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[373 647 ];\r\nvexp=[50962 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[60814 ];\r\nvexp=[455 593 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[109 79 ];\r\nvexp=[1321 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[356 581 ];\r\nvexp=[57162 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[3453 ];\r\nvexp=[98 53 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[2024 ];\r\nvexp=[13 46 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[3453 ];\r\nvexp=[98 53 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[3545 ];\r\nvexp=[131 92 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[687 244 ];\r\nvexp=[46715 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[26103 ];\r\nvexp=[304 79 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[65174 ];\r\nvexp=[235 326 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[65362 ];\r\nvexp=[155 267 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[701 508 ];\r\nvexp=[48425 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[272 377 ];\r\nvexp=[31638 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[61570 ];\r\nvexp=[143 265 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[156 251 ];\r\nvexp=[32490 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[157 425 ];\r\nvexp=[13924 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[726 203 ];\r\nvexp=[39063 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[26 139 ];\r\nvexp=[65376 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[58926 ];\r\nvexp=[474 607 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[64849 ];\r\nvexp=[397 311 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[38407 ];\r\nvexp=[363 115 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[33546 ];\r\nvexp=[200 329 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[271 201 ];\r\nvexp=[50185 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[123 137 ];\r\nvexp=[56830 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[41192 ];\r\nvexp=[125 446 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[689 292 ];\r\nvexp=[40211 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[185 51 ];\r\nvexp=[8407 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[9110 ];\r\nvexp=[189 262 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[128 473 ];\r\nvexp=[34248 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[722 267 ];\r\nvexp=[21147 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[58918 ];\r\nvexp=[491 699 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[144 37 ];\r\nvexp=[36855 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\ntoc\r\n\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":3097,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":10,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2013-09-26T22:38:33.000Z","updated_at":"2013-09-26T23:05:09.000Z","published_at":"2013-09-26T23:05:09.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 Challenge is derived from\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://code.google.com/codejam/contest/2924486/dashboard#s=p1\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eGJam 2014 China Rational Number Tree\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe Goal is to determine the tree node if given [P,Q] or provide the [P,Q] if given a node. This is the small Challenge with a Max of 16 Tree levels. The large Challenge is 64 Tree levels.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eConsider an infinite complete binary tree where the root node is 1/1 and the left and right childs of node P/Q are P/(P+Q) and (P+Q)/Q, 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\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe Tree looks like:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[         1/1\\n    ______|______\\n    |           |\\n   1/2         2/1\\n ___|___     ___|___\\n |     |     |     |\\n1/3   3/2   2/3   3/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\u003eThe nodes are 1/1, 1/2, 2/1, 1/3, 3/2, 2/3, 3/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:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eInput:\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e [N] or [P,Q] where N is an integer node or [P,Q] are terms of a Node\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eOutput:\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e [P,Q] or [N] depends on Input 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\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eExamples:\u003c/w:t\u003e\u003c/w:r\u003e\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]  [Output]\\n  [2] [1 2]\\n  [1 2] [2]\\n  [5] [3 2]\\n  [3 2] [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:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eContest Performance:\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e Best Delta Time of 14 minutes with 1193 out of 3058 completing in less than 3 hours.\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":1900,"title":"GJam 2014 China Rd A: Rational Number Tree (Large Values)","description":"This Challenge is derived from \u003chttp://code.google.com/codejam/contest/2924486/dashboard#s=p1 GJam 2014 China Rational Number Tree\u003e.\r\n\r\nThe Goal is to determine the tree node if given [P,Q] or provide the [P,Q] if given a node. This is the Large Challenge with a Max of 64 Tree levels. Processing of uint64 size data requires extra care.\r\n\r\nConsider an infinite complete binary tree where the root node is 1/1 and the left and right children of node P/Q are P/(P+Q) and (P+Q)/Q, respectively. \r\n\r\nThe Tree looks like:\r\n\r\n         1/1\r\n    ______|______\r\n    |           |\r\n   1/2         2/1\r\n ___|___     ___|___\r\n |     |     |     |\r\n1/3   3/2   2/3   3/1\r\n\r\n\r\nThe nodes are 1/1, 1/2, 2/1, 1/3, 3/2, 2/3, 3/1,...\r\n\r\n\r\n*Input:* [N] or [P,Q] where N is a uint64 integer node or [P,Q] (double) are terms of a Node\r\n\r\n*Output:* [P,Q](double) or [N](uint64) depends on Input type\r\n\r\n*Examples:*\r\n\r\n  [Input]  [Output]\r\n    [2] [1 2]\r\n    [1 2] [2]\r\n    [5] [3 2]\r\n    [3 2] [5]\r\n\r\n*Contest Performance:* Best Delta Time of 14 minutes with only 368 able to process the large data set in less than 3 hours.\r\n\r\n*Notes:*\r\n\r\n1) Matlab has issues with uint64 for dec2bin and matrix multiplies.\r\n\r\n2) Example of uint64 read is provided in test suite comments\r\n\r\n3) Bitshift and bitget work on uint64","description_html":"\u003cp\u003eThis Challenge is derived from \u003ca href = \"http://code.google.com/codejam/contest/2924486/dashboard#s=p1\"\u003eGJam 2014 China Rational Number Tree\u003c/a\u003e.\u003c/p\u003e\u003cp\u003eThe Goal is to determine the tree node if given [P,Q] or provide the [P,Q] if given a node. This is the Large Challenge with a Max of 64 Tree levels. Processing of uint64 size data requires extra care.\u003c/p\u003e\u003cp\u003eConsider an infinite complete binary tree where the root node is 1/1 and the left and right children of node P/Q are P/(P+Q) and (P+Q)/Q, respectively.\u003c/p\u003e\u003cp\u003eThe Tree looks like:\u003c/p\u003e\u003cpre\u003e         1/1\r\n    ______|______\r\n    |           |\r\n   1/2         2/1\r\n ___|___     ___|___\r\n |     |     |     |\r\n1/3   3/2   2/3   3/1\u003c/pre\u003e\u003cp\u003eThe nodes are 1/1, 1/2, 2/1, 1/3, 3/2, 2/3, 3/1,...\u003c/p\u003e\u003cp\u003e\u003cb\u003eInput:\u003c/b\u003e [N] or [P,Q] where N is a uint64 integer node or [P,Q] (double) are terms of a Node\u003c/p\u003e\u003cp\u003e\u003cb\u003eOutput:\u003c/b\u003e [P,Q](double) or [N](uint64) depends on Input type\u003c/p\u003e\u003cp\u003e\u003cb\u003eExamples:\u003c/b\u003e\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003e[Input]  [Output]\r\n  [2] [1 2]\r\n  [1 2] [2]\r\n  [5] [3 2]\r\n  [3 2] [5]\r\n\u003c/pre\u003e\u003cp\u003e\u003cb\u003eContest Performance:\u003c/b\u003e Best Delta Time of 14 minutes with only 368 able to process the large data set in less than 3 hours.\u003c/p\u003e\u003cp\u003e\u003cb\u003eNotes:\u003c/b\u003e\u003c/p\u003e\u003cp\u003e1) Matlab has issues with uint64 for dec2bin and matrix multiplies.\u003c/p\u003e\u003cp\u003e2) Example of uint64 read is provided in test suite comments\u003c/p\u003e\u003cp\u003e3) Bitshift and bitget work on uint64\u003c/p\u003e","function_template":"function vout=Tree_CH(v);\r\n  vout=0;\r\nend","test_suite":"%%\r\ntic\r\nv=[          2081355757           4898583766 ];\r\nvexp=[uint64(11412103587704585708) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[        385960903003         298051413714 ];\r\nvexp=[uint64(13079621846505187505) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64(15477096172227810860) ];\r\nvexp=[        188445238409         450375998772 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64( 6473043965665514375) ];\r\nvexp=[        109230282567          33788952110 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64(11270280438309969755) ];\r\nvexp=[         23328302733           8557676614 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[          6893018069           8719066441 ];\r\nvexp=[uint64( 1875942192845872366) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64( 6566840053865194126) ];\r\nvexp=[         65441249939          85425641391 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[         21562167101          16520535073 ];\r\nvexp=[uint64(  956959952027690353) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[          1684200303           7336396097 ];\r\nvexp=[uint64(  871479491406563248) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64( 2524835851416755114) ];\r\nvexp=[         28589000023          46221104912 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[        154908421282         199691474905 ];\r\nvexp=[uint64( 7885684695614904270) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64( 8176570117722182781) ];\r\nvexp=[         40721598494          22123450931 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64( 9379940828518631730) ];\r\nvexp=[         37341631466          63773070917 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[        232141051889         328442531011 ];\r\nvexp=[uint64( 9972945692012784742) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64( 9539984397959825908) ];\r\nvexp=[         70384313011         178968141063 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[        421484284721         599703187188 ];\r\nvexp=[uint64(17162693345262485798) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[        127506314007          35528864794 ];\r\nvexp=[uint64( 4167185002280551319) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[         11313093168          21049073135 ];\r\nvexp=[uint64(16014443480831614722) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64( 7450646608300783266) ];\r\nvexp=[         83429116694         148768825269 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64(13305041571212833467) ];\r\nvexp=[         77301627056          27774083789 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64(13635447149676152154) ];\r\nvexp=[         90797761304         143479563807 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64(11002893257806672560) ];\r\nvexp=[         44637053272         195624712811 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64(11051724027090761936) ];\r\nvexp=[         41361095819         189799709732 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64(16687200783289968235) ];\r\nvexp=[        552258283575         209936061221 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[         54164851566         156315474505 ];\r\nvexp=[uint64(13714337615447966724) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64( 7329431770178715643) ];\r\nvexp=[         13299036287           4535592331 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64(16479631524350748877) ];\r\nvexp=[        165234451641          96812407705 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64( 6965988866158891263) ];\r\nvexp=[         21216614218           2585039947 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64( 2910455928437551420) ];\r\nvexp=[          6642417815          14808129701 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[         13173276049          27570716815 ];\r\nvexp=[uint64( 4977980945016614908) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64(16721022657493559975) ];\r\nvexp=[         65473107451          19359384006 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[         16946040975          10725070912 ];\r\nvexp=[uint64( 6003309882203701925) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64( 2198342485367409266) ];\r\nvexp=[         23006488657          39032588924 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[        120013217139          50302005308 ];\r\nvexp=[uint64(14344732783514005715) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[         57191814347          77886936688 ];\r\nvexp=[uint64( 8056110860202858614) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64(  971778736353519486) ];\r\nvexp=[         17760921544          20384041659 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[        129560016431         165770554719 ];\r\nvexp=[uint64(15111464173338859822) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64(17855284157674478998) ];\r\nvexp=[        215281025997         298483051015 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[          8822618162           5678585885 ];\r\nvexp=[uint64( 4934822377188433797) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64(  632138406214928188) ];\r\nvexp=[          1835073727           4084131059 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64(17330627945660580534) ];\r\nvexp=[         41195382388          56325602793 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[          6130953526          13549540271 ];\r\nvexp=[uint64( 1896894898836571068) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[         25774822611          36694510870 ];\r\nvexp=[uint64(15996304402734859814) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64( 9847540446768144862) ];\r\nvexp=[         31041969169          37560295989 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64(16612432143632526945) ];\r\nvexp=[         74531365158          60753898717 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64(18413647273680019461) ];\r\nvexp=[         10651217970           6995653927 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[         62279662838          47373225825 ];\r\nvexp=[uint64( 9640047776936252913) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64(16583979163800903818) ];\r\nvexp=[        114249431453         187605944484 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[          9050571726           1557293089 ];\r\nvexp=[uint64( 9060257062169994207) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64(12613321696385576431) ];\r\nvexp=[        125835757545          26079146381 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[         35625689704          19896848117 ];\r\nvexp=[uint64( 4411487194398480861) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64( 3484689439967270015) ];\r\nvexp=[         38461243033           5285269728 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[         16085645428          43823408873 ];\r\nvexp=[uint64(  894482490922679460) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64(12060487473657709988) ];\r\nvexp=[        250877787515         682594856898 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[        143931327293          76531069545 ];\r\nvexp=[uint64(12786697318005254653) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64(14215963369683634045) ];\r\nvexp=[        100316121935          54160354223 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[          6557653153          12053301655 ];\r\nvexp=[uint64(  343376420813762434) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[         47494216762         112901758075 ];\r\nvexp=[uint64( 3772080181899583404) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64( 6766488059228584288) ];\r\nvexp=[          8189923863          44106320581 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[         41526542352          17027036567 ];\r\nvexp=[uint64(17583140790467836275) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[          7196361275           6496875429 ];\r\nvexp=[uint64( 6443574928762444801) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64(17365843048376429107) ];\r\nvexp=[         18457341831           7658711707 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[         78140576077          33767545674 ];\r\nvexp=[uint64( 6098897546038113251) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[          6734445697          12144787423 ];\r\nvexp=[uint64( 4770215408132554690) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[        426726665699         126968827572 ];\r\nvexp=[uint64(12995540462042527271) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64( 5523416580603863552) ];\r\nvexp=[          4255700693          41585972826 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64( 3928457774057619184) ];\r\nvexp=[          3877602413          16306596859 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[        136097916108          28801327007 ];\r\nvexp=[uint64( 5984770176263773551) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64(16263054952801281548) ];\r\nvexp=[         14189368539          34874268638 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[        662028875555         839442017139 ];\r\nvexp=[uint64(11859750004469197678) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[         61393402621         332298132605 ];\r\nvexp=[uint64( 7879625004656522848) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[          1998630709           8715852076 ];\r\nvexp=[uint64(  429234479783941040) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[         46021740257          21715449429 ];\r\nvexp=[uint64(14347105153381215235) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64(  498971859648614985) ];\r\nvexp=[         30472124134          22307121041 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64( 6396162213707057064) ];\r\nvexp=[         26683188512          96283024611 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[         46925294325          33937979441 ];\r\nvexp=[uint64( 1189627028589296041) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[         76315837293          99424320902 ];\r\nvexp=[uint64(11656949174638158734) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[         81880058662          38464981613 ];\r\nvexp=[uint64( 7071867154613101059) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64(10763027175299443277) ];\r\nvexp=[        330973468653         194345162402 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[         79087591419          23535674032 ];\r\nvexp=[uint64(15017024826981320231) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[        241564818347         155909390759 ];\r\nvexp=[uint64(15575297637481852549) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[         45079186819         295776092742 ];\r\nvexp=[uint64(16532545499676710720) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[         22268771423          34477255167 ];\r\nvexp=[uint64(11007510539515659130) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64( 5666822869473456046) ];\r\nvexp=[         28640204779          36488487629 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64(14041232599151835393) ];\r\nvexp=[         28442192536          25169506635 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64( 9611808239041397120) ];\r\nvexp=[          1055826287           7876555270 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[        358405360794         498368744795 ];\r\nvexp=[uint64( 4955841772239017238) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64( 3979638765694296062) ];\r\nvexp=[          6903410593           7465748396 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[        151761015812         211325030677 ];\r\nvexp=[uint64( 7987025462351843862) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[        325266071703          87446899892 ];\r\nvexp=[uint64(16944641327505127607) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64( 3273057505586617135) ];\r\nvexp=[        124425395619          27124979723 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[        142722642746          60293518411 ];\r\nvexp=[uint64(10857549622062058131) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[        379488415355         462240655923 ];\r\nvexp=[uint64(16693497308621268574) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64( 5336487237226370963) ];\r\nvexp=[         76728175571          32349586492 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[        366909173981         111494050923 ];\r\nvexp=[uint64(11044880014193584327) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64( 2767480983943234275) ];\r\nvexp=[        155407720950          67429662431 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[          4375152441          11923449250 ];\r\nvexp=[uint64(14458798758395123876) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[        107946470399          33010545783 ];\r\nvexp=[uint64(13708745226178508359) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64(  546205200272961984) ];\r\nvexp=[          1773793574          11180737745 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64( 6791165959744564855) ];\r\nvexp=[        125726750555          33307435529 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\ntoc\r\n%%\r\n% Read of GJam 64 bit data\r\n% function z = read_input64(fn)\r\n%  fid=fopen(fn);\r\n%  u=textscan(fid,'%u64');\r\n%  fclose(fid);\r\n%  vptr=2; % skip Test case count \r\n%  dptr=1;\r\n%  while vptr\u003csize(u{1},1)\r\n%   if u{1}(vptr)==1 % single N\r\n%    z{dptr}=u{1}(vptr+1);\r\n%    vptr=vptr+2;\r\n%   else % Pair for p/q\r\n%    z{dptr}=[u{1}(vptr+1) u{1}(vptr+2)];\r\n%    vptr=vptr+3;\r\n%   end\r\n%   dptr=dptr+1;\r\n%  end\r\n% end\r\n%Typical GJam 64 bit data\r\n% 100\r\n% 2 2081355757 4898583766\r\n% 2 385960903003 298051413714\r\n% 1 15477096172227810860\r\n% 1 6473043965665514375\r\n% 1 11270280438309969755\r\n% 2 6893018069 8719066441\r\n% 1 6566840053865194126\r\n% 2 21562167101 16520535073\r\n% 2 1684200303 7336396097\r\n% 1 2524835851416755114\r\n% 2 154908421282 199691474905\r\n","published":true,"deleted":false,"likes_count":0,"comments_count":0,"created_by":3097,"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":"2013-09-29T03:53:20.000Z","updated_at":"2013-09-29T21:22:24.000Z","published_at":"2013-09-29T04:19:40.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis Challenge is derived from\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://code.google.com/codejam/contest/2924486/dashboard#s=p1\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eGJam 2014 China Rational Number Tree\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe Goal is to determine the tree node if given [P,Q] or provide the [P,Q] if given a node. This is the Large Challenge with a Max of 64 Tree levels. Processing of uint64 size data requires extra care.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eConsider an infinite complete binary tree where the root node is 1/1 and the left and right children of node P/Q are P/(P+Q) and (P+Q)/Q, 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\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe Tree looks like:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[         1/1\\n    ______|______\\n    |           |\\n   1/2         2/1\\n ___|___     ___|___\\n |     |     |     |\\n1/3   3/2   2/3   3/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\u003eThe nodes are 1/1, 1/2, 2/1, 1/3, 3/2, 2/3, 3/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:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eInput:\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e [N] or [P,Q] where N is a uint64 integer node or [P,Q] (double) are terms of a Node\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eOutput:\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e [P,Q](double) or [N](uint64) depends on Input 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\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eExamples:\u003c/w:t\u003e\u003c/w:r\u003e\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]  [Output]\\n  [2] [1 2]\\n  [1 2] [2]\\n  [5] [3 2]\\n  [3 2] [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:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eContest Performance:\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e Best Delta Time of 14 minutes with only 368 able to process the large data set in less than 3 hours.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eNotes:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e1) Matlab has issues with uint64 for dec2bin and matrix multiplies.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e2) Example of uint64 read is provided in test suite comments\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e3) Bitshift and bitget work on uint64\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"}],"problem_search":{"errors":[],"problems":[{"id":45247,"title":"Tell your secret","description":"A secret can be told only to 2 persons in 5 minutes. Now, these 2 more persons can spread the secret to 4 other people in the next 5 minutes. this way continues... So How long will it take to spread the secret to n persons?\r\nOutput will be for two scenarios -\r\n\r\n* z(1) -- each person can continue spreading the secret\r\n* z(2) -- each person can tell the secret to only two persons\r\n\r\nn.b. outputs can only be multiples of 5. ","description_html":"\u003cp\u003eA secret can be told only to 2 persons in 5 minutes. Now, these 2 more persons can spread the secret to 4 other people in the next 5 minutes. this way continues... So How long will it take to spread the secret to n persons?\r\nOutput will be for two scenarios -\u003c/p\u003e\u003cul\u003e\u003cli\u003ez(1) -- each person can continue spreading the secret\u003c/li\u003e\u003cli\u003ez(2) -- each person can tell the secret to only two persons\u003c/li\u003e\u003c/ul\u003e\u003cp\u003en.b. outputs can only be multiples of 5.\u003c/p\u003e","function_template":"function t = puzzle_tell_ur_secret(n)","test_suite":"%%\r\nn = 1;\r\nz = [0,0];\r\nassert(isequal(puzzle_tell_ur_secret(n),z))\r\n%%\r\nn = 2;\r\nz = [5,5];\r\nassert(isequal(puzzle_tell_ur_secret(n),z))\r\n%%\r\nn = 3;\r\nz = [5,5];\r\nassert(isequal(puzzle_tell_ur_secret(n),z))\r\n%%\r\nn = 8;\r\nz = [10,15];\r\nassert(isequal(puzzle_tell_ur_secret(n),z))\r\n%%\r\nn = 20;\r\nz = [15,20];\r\nassert(isequal(puzzle_tell_ur_secret(n),z))\r\n%%\r\nn = 31;\r\nz = [20,20];\r\nassert(isequal(puzzle_tell_ur_secret(n),z))\r\n%%\r\nn = 64;\r\nz = [20,30];\r\nassert(isequal(puzzle_tell_ur_secret(n),z))\r\n%%\r\nn = 100;\r\nz = [25,30];\r\nassert(isequal(puzzle_tell_ur_secret(n),z))\r\n%%\r\nn = 768;\r\nz = [35,45];\r\nassert(isequal(puzzle_tell_ur_secret(n),z))\r\n%%\r\nn = 3000;\r\nz = [40,55];\r\nassert(isequal(puzzle_tell_ur_secret(n),z))\r\n%%\r\nn = 100000;\r\nz = [55,80];\r\nassert(isequal(puzzle_tell_ur_secret(n),z))\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":363598,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":17,"test_suite_updated_at":"2019-12-27T00:41:26.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2019-12-27T00:10:25.000Z","updated_at":"2026-03-13T11:59:30.000Z","published_at":"2019-12-27T00:41:26.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 secret can be told only to 2 persons in 5 minutes. Now, these 2 more persons can spread the secret to 4 other people in the next 5 minutes. this way continues... So How long will it take to spread the secret to n persons? Output will be for two scenarios -\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\u003ez(1) -- each person can continue spreading the secret\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\u003ez(2) -- each person can tell the secret to only two persons\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003en.b. outputs can only be multiples of 5.\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":45509,"title":"List the households affected by leaks in water distribution ","description":"Consider the following water distribution network, where water is pumped uni-directionally from left to right:\r\n\r\n             8\r\n            /\r\n           2 ---- 9     13      24 ---- 25\r\n          / \\          /       /      \r\n         /   7        12 ---- 23\r\n        /     6      / \\           22\r\n0 ---- 1     /      /   14        /\r\n        \\   4 ---- 11            /\r\n         \\ / \\          17 ---- 19 ---- 21\r\n          3   \\        /  \\      \\\r\n           \\  10 ---- 15   18     \\\r\n            5          \\           20\r\n                        16\r\n\r\nThe network consists of: (1) a single source station; (2) pumping stations; and, (3) households / end-users. The source station is Node 0. _Pumping stations_ are nodes that lead water to more nodes downstream. In the example, the pumping stations are Nodes 1, 2, 3, 4, 10, 11, 12, 15, 17, 19, 23, 24. Meanwhile, _households_ are nodes that do not lead to any more nodes downstream. In the example, the households are Nodes 5, 6, 7, 8, 9, 13, 14, 16, 18, 20, 21, 22, 25.\r\n\r\n\r\nIf there is a leak at any node, then all the nodes downstream from that node will be affected, including itself. For instance, if Node 17 has leaked, then Nodes 17-22 are all affected. Among these, Nodes 18, 20-21 are households. Given *P*, can you list all the households that are affected by a leak in Node *P*?\r\n\r\nWrite a function that accepts a vector *X*, which is a row vector of length *N*, and a scalar *P*. The *X* represents the water distribution network, read as follows: Node *X*( _i_ ) is a _direct_ downstream water distributor to Node _i_, for 1 \u003c= _i_ \u003c= *N*. Given *X* and *P*, output a row vector listing all affected households, _sorted in increasing order_.\r\n\r\nFor instance, the above example will be represented as:\r\n\r\n  i =  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25\r\n X = [0 1 1 3 3 4 2 2 2  4  4 11 12 12 10 15 15 17 17 19 19 19 12 23 24]\r\n\r\nPlease take the time to verify the elements of *X*. Using this *X*, sample test cases are given below:\r\n\r\n  \u003e\u003e water_loss(X,2)\r\n  ans =  \r\n     7 8 9\r\n\u003e\u003e water_loss(X,10)\r\nans =\r\n     16 18 20 21 22\r\n\u003e\u003e water_loss(X,23)\r\nans =\r\n     25\r\n\u003e\u003e water_loss(X,13)\r\nans =\r\n     13\r\n\r\nYou are ensured that:\r\n\r\n* 2 \u003c= *N* \u003c= 400 and 1 \u003c= *P* \u003c= *N*\r\n* *X*( _i_ ) \u003c _i_, for _i_ = [1, *N*]\r\n* *X*( _i_ ) \u003e 0, for _i_ = [2, *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: 988.2px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 494.1px; transform-origin: 407px 494.1px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 20.8px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-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.4px; text-align: left; transform-origin: 384px 10.4px; 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=\"\"\u003eConsider the following water distribution network, where water is pumped uni-directionally from left to right:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgb(247, 247, 247); block-size: 260px; border-bottom-left-radius: 4px; border-bottom-right-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 130px; transform-origin: 404px 130px; 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-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-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             8\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-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-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\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-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-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           2 ---- 9     13      24 ---- 25\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-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-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\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-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-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         /   7        12 ---- 23\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-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-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        /     6      / \\           22\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-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-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; \"\u003e0 ---- 1     /      /   14        /\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-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-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        \\   4 ---- 11            /\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-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-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         \\ / \\          17 ---- 19 ---- 21\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-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-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          3   \\        /  \\      \\\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-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-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           \\  10 ---- 15   18     \\\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-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-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            5          \\           20\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-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-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                        16\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 83.2px; 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 41.6px; text-align: left; transform-origin: 384px 41.6px; 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 network consists of: (1) a single source station; (2) pumping stations; and, (3) households / end-users. The source station is Node 0.\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \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-style: italic; \"\u003ePumping stations\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 are nodes that lead water to more nodes downstream. In the example, the pumping stations are Nodes 1, 2, 3, 4, 10, 11, 12, 15, 17, 19, 23, 24. Meanwhile,\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\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; 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-style: italic; \"\u003ehouseholds\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 are nodes that do not lead to any more nodes downstream. In the example, the households are Nodes 5, 6, 7, 8, 9, 13, 14, 16, 18, 20, 21, 22, 25.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 62.4px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-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.2px; text-align: left; transform-origin: 384px 31.2px; 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=\"\"\u003eIf there is a leak at any node, then all the nodes downstream from that node will be affected, including itself. For instance, if Node 17 has leaked, then Nodes 17-22 are all affected. Among these, Nodes 18, 20-22 are households. Given\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\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; 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; \"\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, can you list all the households that are affected by a leak in Node\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\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; 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; \"\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?\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 62.4px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-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.2px; text-align: left; transform-origin: 384px 31.2px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eWrite a function that accepts a 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=\"\"\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-weight: 700; \"\u003eX\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e, which is a row vector of length\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\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eN\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 scalar\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\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; 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; \"\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. 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=\"\"\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-weight: 700; \"\u003eX\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e represents the water distribution network, read as follows: Node\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\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; 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; \"\u003eX\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e(\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-style: italic; \"\u003ei\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 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; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-style: italic; \"\u003edirect\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 downstream water distributor to Node\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\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; 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-style: italic; \"\u003ei\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, for 1 \u0026lt;=\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\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; 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-style: italic; \"\u003ei\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 \u0026lt;=\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\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eN\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. Given\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\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; 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; \"\u003eX\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\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=\"\"\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-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, output a row vector listing all affected households,\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\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; 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-style: italic; \"\u003esorted in increasing order\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: 20.8px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-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.4px; text-align: left; transform-origin: 384px 10.4px; 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, the above example will be represented as:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgb(247, 247, 247); block-size: 40px; border-bottom-left-radius: 4px; border-bottom-right-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 20px; transform-origin: 404px 20px; 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-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-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; \"\u003ei =  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25\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-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-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; \"\u003eX = [0 1 1 3 3 4 2 2 2  4  4 11 12 12 10 15 15 17 17 19 19 19 12 23 24]\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 20.8px; 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.4px; text-align: left; transform-origin: 384px 10.4px; 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=\"\"\u003ePlease take the time to verify the elements 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=\"\"\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-weight: 700; \"\u003eX\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e. Using this\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\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; 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; \"\u003eX\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e, sample test cases are given below:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgb(247, 247, 247); block-size: 240px; border-bottom-left-radius: 4px; border-bottom-right-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 120px; transform-origin: 404px 120px; 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-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-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\u0026gt;\u0026gt; water_loss(X,2)\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-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-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; \"\u003eans =  \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-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-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   7 8 9\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-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-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\u0026gt;\u0026gt; water_loss(X,10)\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-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-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; \"\u003eans =\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-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-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   16 18 20 21 22\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-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-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\u0026gt;\u0026gt; water_loss(X,23)\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-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-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; \"\u003eans =\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-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-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   25\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-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-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\u0026gt;\u0026gt; water_loss(X,13)\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-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-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; \"\u003eans =\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-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-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   13\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 20.8px; 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.4px; text-align: left; transform-origin: 384px 10.4px; 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=\"\"\u003eYou are ensured that:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cul style=\"block-size: 60px; 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 30px; transform-origin: 391px 30px; margin-top: 10px; margin-bottom: 20px; \"\u003e\u003cli style=\"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=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e2 \u0026lt;=\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; \"\u003e\u003cspan style=\"\"\u003e \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; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eN\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; \"\u003e\u003cspan style=\"\"\u003e \u0026lt;= 400 and 1 \u0026lt;=\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; \"\u003e\u003cspan style=\"\"\u003e \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; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eP\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; \"\u003e\u003cspan style=\"\"\u003e \u0026lt;=\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; \"\u003e\u003cspan style=\"\"\u003e \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; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eN\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"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=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eX\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; \"\u003e\u003cspan style=\"\"\u003e(\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; \"\u003e\u003cspan style=\"\"\u003e \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; \"\u003e\u003cspan style=\"font-style: italic; \"\u003ei\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; \"\u003e\u003cspan style=\"\"\u003e ) \u0026lt;\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; \"\u003e\u003cspan style=\"\"\u003e \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; \"\u003e\u003cspan style=\"font-style: italic; \"\u003ei\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; \"\u003e\u003cspan style=\"\"\u003e, for\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; \"\u003e\u003cspan style=\"\"\u003e \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; \"\u003e\u003cspan style=\"font-style: italic; \"\u003ei\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; \"\u003e\u003cspan style=\"\"\u003e = [1,\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; \"\u003e\u003cspan style=\"\"\u003e \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; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eN\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; \"\u003e\u003cspan style=\"\"\u003e]\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"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=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eX\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; \"\u003e\u003cspan style=\"\"\u003e(\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; \"\u003e\u003cspan style=\"\"\u003e \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; \"\u003e\u003cspan style=\"font-style: italic; \"\u003ei\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; \"\u003e\u003cspan style=\"\"\u003e ) \u0026gt; 0, for\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; \"\u003e\u003cspan style=\"\"\u003e \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; \"\u003e\u003cspan style=\"font-style: italic; \"\u003ei\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; \"\u003e\u003cspan style=\"\"\u003e = [2,\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; \"\u003e\u003cspan style=\"\"\u003e \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; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eN\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; \"\u003e\u003cspan style=\"\"\u003e]\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003c/ul\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function y = water_loss(X,P)\r\n  y = P;\r\nend","test_suite":"%%\r\nfiletext = fileread('water_loss.m')\r\nassert(isempty(strfind(filetext, 'rand')))\r\nassert(isempty(strfind(filetext, 'fileread')))\r\nassert(isempty(strfind(filetext, 'assert')))\r\nassert(isempty(strfind(filetext, 'echo')))\r\n%%\r\nX = [0 1 1 2 4 2 4];\r\nP = 2;\r\ny = [5 6 7 ];\r\nassert(isequal(water_loss(X,P),y))\r\n%%\r\nX = [0 1 2 3 4 5 4 1];\r\nP = 2;\r\ny = [6 7 ];\r\nassert(isequal(water_loss(X,P),y))\r\n%%\r\nX = [0 1 1 3 3 4 2 2 2 4 4 11 12 12 10 15 15 17 17 19 19 19 12 23 24];\r\nassert(isequal(water_loss(X,23),25))\r\nassert(isequal(water_loss(X,13),13))\r\nassert(isequal(water_loss(X,2),[7 8 9]))\r\nassert(isequal(water_loss(X,10),[16 18 20 21 22]))\r\n%%\r\nX = [0 1 2 1 2 4 5 1 8 7 5 5 6 4 8 ...\r\n 8 14 14 12 8 17 12 8 22 22 14 17 16 6 9 ...\r\n 15 8 28 7 8 6 9 17];\r\nassert(isequal(water_loss(X,36),36))\r\nP = 17;\r\ny = [21 27 38];\r\nassert(isequal(water_loss(X,P),y))\r\n%%\r\nX = [0 1 1 2 2 1 4 2 4 6 3 4 8 4 12 ...\r\n 15 12 6 11 3 19 19 18 6 15 1 12 9 5 6 ...\r\n 13 3 20 16 24 25 23 2 3 13 22 27 18 36 32 ...\r\n 44 25 16 6 30 39 22 5 15 9 16 25 31 27 52 ...\r\n 32 58 40 61 16];\r\nP = 19;\r\ny = [21 41 60 ];\r\nassert(isequal(water_loss(X,P),y))\r\nP = 15;\r\ny = [34 46 47 48 54 56 57 65 ];\r\nassert(isequal(water_loss(X,P),y))\r\n%%\r\nX = [0 1 1 2 1 3 3 2 2 9 7 6 11 2 11 ...\r\n 12 9 4 11 6 3 5 20 2 6 2 12 1 26 6 ...\r\n 3 10 15 4 34 12 11 3 12 2 21 32 27 4 4 ...\r\n 35 42 26 6 41 17 15 39 1 3 37 34 30 43 42 ...\r\n 47 18 43 36 26 5 52 23 42 52 8 10 40 36 66 ...\r\n 60 56 4 6 7 64 77 57 11 61 10 11 56 29 59 ...\r\n 68 54 69 22 70 93 84 9 36 37 69 61 81 38 22 ...\r\n 10 82 23 42 61 26 72 55 18 90 12 35 28 63 11 ...\r\n 49 13 14 97 37 76 122 55 89 98 57 86 15 125 26 ...\r\n 36 109 67 107 56 39 6 96 62 66 89 9 47 115 104 ...\r\n 19 20 15 2 66 102 113 84 18 101 21 22 16 24];\r\ny = [95 138 ];\r\nassert(isequal(water_loss(X,52),y))\r\ny = [74 99 103 136 ];\r\nassert(isequal(water_loss(X,36),y))\r\ny = [85 110 126 137 143 148 156 160 ];\r\nassert(isequal(water_loss(X,42),y))\r\n%%\r\nX = [0 1 1 3 2 3 5 7 3 8 8 11 1 5 10 5 4 13 12 12 14 1 8 11 6 ...\r\n 18 23 8 21 4 26 5 19 13 28 18 18 33 14 18 39 2 41 9 30 27 32 17 30 40 ...\r\n 1 5 51 35 13 23 7 16 15 20 10 22 8 56 7 61 27 4 24 51 56 39 50 66 5 ...\r\n 23 4 16 57 58 71 48 6 77 68 25 47 86 63 75 39 43 52 26 71 48 63 30 14 48 ...\r\n 37 80 80 69 14 3 60 33 102 107 32 89 101 68 101 109 64 86 69 4 54 79 64 46 117 ...\r\n 104 107 48 76 113 122 88 28];\r\ny = [115 130 ];\r\nassert(isequal(water_loss(X,101),y))\r\ny = [81 95 123 125 ];\r\nassert(isequal(water_loss(X,56),y))\r\n%%\r\nX = [0 1 2 2 2 2 5 7 8 6 6 2 11 6 3 14 13 16 6 13 14 3 9 7 18 ...\r\n 8 24 23 11 15 21 26 20 19 12 16 26 33 28 1 27 18 19 6 36 15 12 17 19 27 ...\r\n 29 21 21 28 36 53 41 23 49 8 4 6 11 21 20 1 36 7 10 44 61 70 42 73 41 ...\r\n 39 26 34 39 6 72 6 36 69 34 53 71 78 82 17 24 82 55 47 58 78 52 20 45 43 ...\r\n 97 63 71 75 37 55 60 17 61 76 47 93 82 41 52 45 90 86 51 83 114 95 87 14 49 ...\r\n 74 58 7 30 108 3 114 11 89 68 30 78 17 93 84 8 8 22 3 63 121 91 77 128 15 ...\r\n 137 17 79 22 87 1 120 134 145 157 81 44 17 83 97 126 14 111 87 29 160 101 76 163 115 ...\r\n 80 148 95 99 122 67 44 106 159 75 21 83 57 76 158 77 75 70 28 51 17 85 51 59 85 ...\r\n 24 100 143 50 161 16 82 1 46 1 40 31 57 38 30 129 195 204 49 106 83 116 59 16 98 ...\r\n 40 6 217 99 221 176 2 158 165 151 130 52 184 55 89 214 207 98 78 149 223 224 147 83 213 ...\r\n 111 227 9 135 182 46 87 49 84 105 143 13 145 73 64 65 42 256 251 221 197 48 99 52 1 ...\r\n 88 194 174 151 123 81 141 215 216 164 214 185 36 146 101 27 44 58 197 127 205 77 3 159 84 ...\r\n 284 273 119 8 205 256 298 18 139 180 213 224 203 228 118 184 37 19 312 91 191 309 60 63 111 ...\r\n 304 128 90 50 131 124 44 145 31 206 4 193 267 80 152 194 21 170 221 77 289 336 294 177 98 ...\r\n 262 84 337 219 213 62 33 92 308 328 252 262 84 210 296 148 362 34 119 189 23 270 208 198 311 ...\r\n 323 297 120 171 286 42 42 104 201 374 274 121 113 330 355 250 100 35 330 231 375 25 233 114 331];\r\ny = [321 345 349 366 377 ];\r\nassert(isequal(water_loss(X,77),y))\r\ny = [140 259 300 352 363 ];\r\nassert(isequal(water_loss(X,84),y))\r\ny = [32 54 107 110 132 142 153 173 178 188 192 218 245 248 253 254 260 277 282 ...\r\n    287 291 293 295 310 317 320 321 326 327 329 341 345 346 349 366 370 371 376 ...\r\n    377 383 384 387 390 391 396 399];\r\nassert(isequal(water_loss(X,5),y))\r\n%%\r\nX = [0 1 1 2 4 3 1 1 7 5 4 9 5 7 10 14 6 12 18 2 12 9 7 7 19 ...\r\n 25 5 22 6 29 25 14 24 17 28 13 3 22 35 8 18 31 2 41 34 26 9 24 25 49 ...\r\n 43 50 36 22 51 27 13 23 41 33 46 61 60 34 62 8 4 21 40 37 64 39 32 40 53 ...\r\n 2 61 11 38 21 30 54 14 24 17 17 29 77 42 36 17 89 38 79 58 36 85 77 46 81 ...\r\n 90 44 35 62 94 74 41 79 104 60 60 35 8 21 11 54 2 108 76 1 4 26 56 16 2 ...\r\n 91 45 100 56 57 7 7 13 80 33 114 117 133 68 31 32 76 109 50 67 93 134 24 106 87 ...\r\n 65 134 60 28 98 97 52 127 158 156 21 38 4 100 19 68 147 92 62 36 75 164 22 82 150 ...\r\n 8 122 174 51 24 124 165 112 165 36 140 65 79 30 155 119 142 155 13 185 98 149 147 165 32 ...\r\n 92 125 189 170 183 120 121 177 8 186 86 8 159 33 31 131 55 71 88 89 85 135 38 42 22 ...\r\n 73 174 54 169 159 190 192 69 73 123 77 197 193 133 63 164 57 111 94 132 243 186 243 59 132 ...\r\n 13 190 152 217 252 238 105 1 140 54 58 86 26 197 198 144 90 223 149 258 242 97 149 95 171 ...\r\n 220 206 35 229 8 117 206 221 104 212 255 70 38 65 102 84 270 15 174 48 248 50 150 298 107 ...\r\n 15 65 121 102 70 286 210 296 135 291 2 190 250 73 293 241 262 182 253 105 72 101 189 269 95 ...\r\n 131 282 202 326 68 273 224 83 159 134 201 269 36 278 286 121 147 196 241 256 262 135 149 333 200 ...\r\n 298 97 220 208 342 31 179 187 33 325 319 159 283 54 226 96 164 310 73 113 179 126 298 369 60 ...\r\n 89 265 142 369 369 245 328 154 243 379 216 361 279 188 249 347 78 155 390 159 261 357 396 260 44];\r\ny = [115 129 130 138 145 163 194 195 204 207 235 239 251 267 271 275 301 303 315 322 338 341 366 392 ];\r\nassert(isequal(water_loss(X,4),y))\r\ny = [143 151 284 289 302 358 388 ];\r\nassert(isequal(water_loss(X,62),y))\r\ny = [130 271 ];\r\nassert(isequal(water_loss(X,57),y))\r\ny = [160 272 352 ];\r\nassert(isequal(water_loss(X,97),y))\r\ny = [275 ];\r\nassert(isequal(water_loss(X,75),y))\r\ny = [145 ];\r\nassert(isequal(water_loss(X,67),y))\r\ny = [275 ];\r\nassert(isequal(water_loss(X,53),y))\r\ny = [99 143 151 219 231 236 263 284 289 302 306 312 340 343 345 354 358 388 393 ];\r\nassert(isequal(water_loss(X,26),y))\r\ny = [160 272 352 ];\r\nassert(isequal(water_loss(X,97),y))\r\ny = [254 ];\r\nassert(isequal(water_loss(X,55),y))\r\n","published":true,"deleted":false,"likes_count":4,"comments_count":0,"created_by":255320,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":23,"test_suite_updated_at":"2020-05-11T17:59:04.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2020-05-11T16:06:38.000Z","updated_at":"2025-12-05T01:48:01.000Z","published_at":"2020-05-11T17:59:04.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eConsider the following water distribution network, where water is pumped uni-directionally from left to right:\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[             8\\n            /\\n           2 ---- 9     13      24 ---- 25\\n          / \\\\          /       /      \\n         /   7        12 ---- 23\\n        /     6      / \\\\           22\\n0 ---- 1     /      /   14        /\\n        \\\\   4 ---- 11            /\\n         \\\\ / \\\\          17 ---- 19 ---- 21\\n          3   \\\\        /  \\\\      \\\\\\n           \\\\  10 ---- 15   18     \\\\\\n            5          \\\\           20\\n                        16]]\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 network consists of: (1) a single source station; (2) pumping stations; and, (3) households / end-users. The source station is Node 0.\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ePumping stations\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e are nodes that lead water to more nodes downstream. In the example, the pumping stations are Nodes 1, 2, 3, 4, 10, 11, 12, 15, 17, 19, 23, 24. Meanwhile,\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ehouseholds\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e are nodes that do not lead to any more nodes downstream. In the example, the households are Nodes 5, 6, 7, 8, 9, 13, 14, 16, 18, 20, 21, 22, 25.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\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 there is a leak at any node, then all the nodes downstream from that node will be affected, including itself. For instance, if Node 17 has leaked, then Nodes 17-22 are all affected. Among these, Nodes 18, 20-22 are households. Given\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eP\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e, can you list all the households that are affected by a leak in Node\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eP\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e?\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eWrite a function that accepts a vector\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eX\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e, which is a row vector of length\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eN\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e, and a scalar\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eP\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e. The\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eX\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e represents the water distribution network, read as follows: Node\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eX\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\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\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ei\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e ) is 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:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003edirect\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e downstream water distributor to Node\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ei\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e, for 1 \u0026lt;=\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ei\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u0026lt;=\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eN\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e. Given\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eX\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e and\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eP\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e, output a row vector listing all affected households,\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003esorted in increasing order\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 instance, the above example will be represented as:\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[i =  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25\\nX = [0 1 1 3 3 4 2 2 2  4  4 11 12 12 10 15 15 17 17 19 19 19 12 23 24]]]\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\u003ePlease take the time to verify the elements of\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eX\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e. Using this\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eX\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e, sample test cases are given below:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[\u003e\u003e water_loss(X,2)\\nans =  \\n   7 8 9\\n\u003e\u003e water_loss(X,10)\\nans =\\n   16 18 20 21 22\\n\u003e\u003e water_loss(X,23)\\nans =\\n   25\\n\u003e\u003e water_loss(X,13)\\nans =\\n   13]]\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 are ensured that:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e2 \u0026lt;=\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eN\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u0026lt;= 400 and 1 \u0026lt;=\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eP\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u0026lt;=\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eN\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:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eX\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:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ei\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e ) \u0026lt;\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ei\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e, for\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ei\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e = [1,\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eN\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e]\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\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\u003eX\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:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ei\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e ) \u0026gt; 0, for\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ei\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e = [2,\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eN\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\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":1897,"title":"GJam 2014 China Rd A: Rational Number Tree","description":"This Challenge is derived from \u003chttp://code.google.com/codejam/contest/2924486/dashboard#s=p1 GJam 2014 China Rational Number Tree\u003e.\r\n\r\nThe Goal is to determine the tree node if given [P,Q] or provide the [P,Q] if given a node. This is the small Challenge with a Max of 16 Tree levels. The large Challenge is 64 Tree levels.\r\n\r\nConsider an infinite complete binary tree where the root node is 1/1 and the left and right childs of node P/Q are P/(P+Q) and (P+Q)/Q, respectively. \r\n\r\nThe Tree looks like:\r\n\r\n         1/1\r\n    ______|______\r\n    |           |\r\n   1/2         2/1\r\n ___|___     ___|___\r\n |     |     |     |\r\n1/3   3/2   2/3   3/1\r\n\r\n\r\nThe nodes are 1/1, 1/2, 2/1, 1/3, 3/2, 2/3, 3/1,...\r\n\r\n\r\n*Input:* [N] or [P,Q] where N is an integer node or [P,Q] are terms of a Node\r\n\r\n*Output:* [P,Q] or [N]  depends on Input type\r\n\r\n*Examples:*\r\n\r\n  [Input]  [Output]\r\n    [2] [1 2]\r\n    [1 2] [2]\r\n    [5] [3 2]\r\n    [3 2] [5]\r\n\r\n*Contest Performance:* Best Delta Time of 14 minutes with 1193 out of 3058 completing in less than 3 hours.","description_html":"\u003cp\u003eThis Challenge is derived from \u003ca href = \"http://code.google.com/codejam/contest/2924486/dashboard#s=p1\"\u003eGJam 2014 China Rational Number Tree\u003c/a\u003e.\u003c/p\u003e\u003cp\u003eThe Goal is to determine the tree node if given [P,Q] or provide the [P,Q] if given a node. This is the small Challenge with a Max of 16 Tree levels. The large Challenge is 64 Tree levels.\u003c/p\u003e\u003cp\u003eConsider an infinite complete binary tree where the root node is 1/1 and the left and right childs of node P/Q are P/(P+Q) and (P+Q)/Q, respectively.\u003c/p\u003e\u003cp\u003eThe Tree looks like:\u003c/p\u003e\u003cpre\u003e         1/1\r\n    ______|______\r\n    |           |\r\n   1/2         2/1\r\n ___|___     ___|___\r\n |     |     |     |\r\n1/3   3/2   2/3   3/1\u003c/pre\u003e\u003cp\u003eThe nodes are 1/1, 1/2, 2/1, 1/3, 3/2, 2/3, 3/1,...\u003c/p\u003e\u003cp\u003e\u003cb\u003eInput:\u003c/b\u003e [N] or [P,Q] where N is an integer node or [P,Q] are terms of a Node\u003c/p\u003e\u003cp\u003e\u003cb\u003eOutput:\u003c/b\u003e [P,Q] or [N]  depends on Input type\u003c/p\u003e\u003cp\u003e\u003cb\u003eExamples:\u003c/b\u003e\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003e[Input]  [Output]\r\n  [2] [1 2]\r\n  [1 2] [2]\r\n  [5] [3 2]\r\n  [3 2] [5]\r\n\u003c/pre\u003e\u003cp\u003e\u003cb\u003eContest Performance:\u003c/b\u003e Best Delta Time of 14 minutes with 1193 out of 3058 completing in less than 3 hours.\u003c/p\u003e","function_template":"function vout=Tree_CH(v)\r\n vout=v;\r\nend","test_suite":"%%\r\ntic\r\nv=[281 87 ];\r\nvexp=[64903 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[71 384 ];\r\nvexp=[40544 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[280 103 ];\r\nvexp=[14427 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[17357 ];\r\nvexp=[277 162 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[263 381 ];\r\nvexp=[19846 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[785 477 ];\r\nvexp=[56053 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[19311 ];\r\nvexp=[440 93 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[241 171 ];\r\nvexp=[33049 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[225 94 ];\r\nvexp=[14291 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[40040 ];\r\nvexp=[185 664 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[565 431 ];\r\nvexp=[60145 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[399 680 ];\r\nvexp=[64178 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[62292 ];\r\nvexp=[358 937 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[398 1051 ];\r\nvexp=[46356 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[59 45 ];\r\nvexp=[1777 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[47 175 ];\r\nvexp=[3400 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[59987 ];\r\nvexp=[1109 466 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[33547 ];\r\nvexp=[329 129 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[256 45 ];\r\nvexp=[20703 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[43221 ];\r\nvexp=[1090 673 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[80 251 ];\r\nvexp=[41976 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[40366 ];\r\nvexp=[487 621 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[65 48 ];\r\nvexp=[1289 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[5644 ];\r\nvexp=[59 145 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[52852 ];\r\nvexp=[307 787 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[61149 ];\r\nvexp=[610 341 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[39087 ];\r\nvexp=[650 141 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[61881 ];\r\nvexp=[520 361 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[488 275 ];\r\nvexp=[21405 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[33893 ];\r\nvexp=[485 306 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[26965 ];\r\nvexp=[885 547 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[5918 ];\r\nvexp=[99 122 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[63216 ];\r\nvexp=[90 379 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[248 459 ];\r\nvexp=[60546 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[26250 ];\r\nvexp=[370 607 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[295 476 ];\r\nvexp=[33386 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[29373 ];\r\nvexp=[450 247 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[183 509 ];\r\nvexp=[64324 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[56818 ];\r\nvexp=[257 433 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[447 730 ];\r\nvexp=[57674 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[241 ];\r\nvexp=[17 13 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[14807 ];\r\nvexp=[313 86 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[251 145 ];\r\nvexp=[8557 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[76 485 ];\r\nvexp=[60096 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[24345 ];\r\nvexp=[278 197 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[2581 ];\r\nvexp=[127 79 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[588 247 ];\r\nvexp=[48723 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[190 233 ];\r\nvexp=[9630 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[367 303 ];\r\nvexp=[61729 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[4019 ];\r\nvexp=[97 40 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[58547 ];\r\nvexp=[953 394 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[25786 ];\r\nvexp=[367 573 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[52923 ];\r\nvexp=[788 283 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[16812 ];\r\nvexp=[134 319 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[394 323 ];\r\nvexp=[38817 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[34401 ];\r\nvexp=[352 287 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[27426 ];\r\nvexp=[334 597 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[278 41 ];\r\nvexp=[35775 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[59405 ];\r\nvexp=[279 166 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[271 428 ];\r\nvexp=[48986 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[539 327 ];\r\nvexp=[59893 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[461 178 ];\r\nvexp=[17867 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[491 627 ];\r\nvexp=[47278 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[62313 ];\r\nvexp=[712 513 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[10791 ];\r\nvexp=[346 103 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[58888 ];\r\nvexp=[109 419 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[431 114 ];\r\nvexp=[20855 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[373 647 ];\r\nvexp=[50962 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[60814 ];\r\nvexp=[455 593 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[109 79 ];\r\nvexp=[1321 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[356 581 ];\r\nvexp=[57162 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[3453 ];\r\nvexp=[98 53 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[2024 ];\r\nvexp=[13 46 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[3453 ];\r\nvexp=[98 53 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[3545 ];\r\nvexp=[131 92 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[687 244 ];\r\nvexp=[46715 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[26103 ];\r\nvexp=[304 79 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[65174 ];\r\nvexp=[235 326 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[65362 ];\r\nvexp=[155 267 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[701 508 ];\r\nvexp=[48425 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[272 377 ];\r\nvexp=[31638 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[61570 ];\r\nvexp=[143 265 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[156 251 ];\r\nvexp=[32490 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[157 425 ];\r\nvexp=[13924 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[726 203 ];\r\nvexp=[39063 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[26 139 ];\r\nvexp=[65376 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[58926 ];\r\nvexp=[474 607 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[64849 ];\r\nvexp=[397 311 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[38407 ];\r\nvexp=[363 115 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[33546 ];\r\nvexp=[200 329 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[271 201 ];\r\nvexp=[50185 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[123 137 ];\r\nvexp=[56830 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[41192 ];\r\nvexp=[125 446 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[689 292 ];\r\nvexp=[40211 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[185 51 ];\r\nvexp=[8407 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[9110 ];\r\nvexp=[189 262 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[128 473 ];\r\nvexp=[34248 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[722 267 ];\r\nvexp=[21147 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[58918 ];\r\nvexp=[491 699 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[144 37 ];\r\nvexp=[36855 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\ntoc\r\n\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":3097,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":10,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2013-09-26T22:38:33.000Z","updated_at":"2013-09-26T23:05:09.000Z","published_at":"2013-09-26T23:05:09.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 Challenge is derived from\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://code.google.com/codejam/contest/2924486/dashboard#s=p1\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eGJam 2014 China Rational Number Tree\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe Goal is to determine the tree node if given [P,Q] or provide the [P,Q] if given a node. This is the small Challenge with a Max of 16 Tree levels. The large Challenge is 64 Tree levels.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eConsider an infinite complete binary tree where the root node is 1/1 and the left and right childs of node P/Q are P/(P+Q) and (P+Q)/Q, 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\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe Tree looks like:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[         1/1\\n    ______|______\\n    |           |\\n   1/2         2/1\\n ___|___     ___|___\\n |     |     |     |\\n1/3   3/2   2/3   3/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\u003eThe nodes are 1/1, 1/2, 2/1, 1/3, 3/2, 2/3, 3/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:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eInput:\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e [N] or [P,Q] where N is an integer node or [P,Q] are terms of a Node\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eOutput:\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e [P,Q] or [N] depends on Input 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\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eExamples:\u003c/w:t\u003e\u003c/w:r\u003e\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]  [Output]\\n  [2] [1 2]\\n  [1 2] [2]\\n  [5] [3 2]\\n  [3 2] [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:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eContest Performance:\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e Best Delta Time of 14 minutes with 1193 out of 3058 completing in less than 3 hours.\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":1900,"title":"GJam 2014 China Rd A: Rational Number Tree (Large Values)","description":"This Challenge is derived from \u003chttp://code.google.com/codejam/contest/2924486/dashboard#s=p1 GJam 2014 China Rational Number Tree\u003e.\r\n\r\nThe Goal is to determine the tree node if given [P,Q] or provide the [P,Q] if given a node. This is the Large Challenge with a Max of 64 Tree levels. Processing of uint64 size data requires extra care.\r\n\r\nConsider an infinite complete binary tree where the root node is 1/1 and the left and right children of node P/Q are P/(P+Q) and (P+Q)/Q, respectively. \r\n\r\nThe Tree looks like:\r\n\r\n         1/1\r\n    ______|______\r\n    |           |\r\n   1/2         2/1\r\n ___|___     ___|___\r\n |     |     |     |\r\n1/3   3/2   2/3   3/1\r\n\r\n\r\nThe nodes are 1/1, 1/2, 2/1, 1/3, 3/2, 2/3, 3/1,...\r\n\r\n\r\n*Input:* [N] or [P,Q] where N is a uint64 integer node or [P,Q] (double) are terms of a Node\r\n\r\n*Output:* [P,Q](double) or [N](uint64) depends on Input type\r\n\r\n*Examples:*\r\n\r\n  [Input]  [Output]\r\n    [2] [1 2]\r\n    [1 2] [2]\r\n    [5] [3 2]\r\n    [3 2] [5]\r\n\r\n*Contest Performance:* Best Delta Time of 14 minutes with only 368 able to process the large data set in less than 3 hours.\r\n\r\n*Notes:*\r\n\r\n1) Matlab has issues with uint64 for dec2bin and matrix multiplies.\r\n\r\n2) Example of uint64 read is provided in test suite comments\r\n\r\n3) Bitshift and bitget work on uint64","description_html":"\u003cp\u003eThis Challenge is derived from \u003ca href = \"http://code.google.com/codejam/contest/2924486/dashboard#s=p1\"\u003eGJam 2014 China Rational Number Tree\u003c/a\u003e.\u003c/p\u003e\u003cp\u003eThe Goal is to determine the tree node if given [P,Q] or provide the [P,Q] if given a node. This is the Large Challenge with a Max of 64 Tree levels. Processing of uint64 size data requires extra care.\u003c/p\u003e\u003cp\u003eConsider an infinite complete binary tree where the root node is 1/1 and the left and right children of node P/Q are P/(P+Q) and (P+Q)/Q, respectively.\u003c/p\u003e\u003cp\u003eThe Tree looks like:\u003c/p\u003e\u003cpre\u003e         1/1\r\n    ______|______\r\n    |           |\r\n   1/2         2/1\r\n ___|___     ___|___\r\n |     |     |     |\r\n1/3   3/2   2/3   3/1\u003c/pre\u003e\u003cp\u003eThe nodes are 1/1, 1/2, 2/1, 1/3, 3/2, 2/3, 3/1,...\u003c/p\u003e\u003cp\u003e\u003cb\u003eInput:\u003c/b\u003e [N] or [P,Q] where N is a uint64 integer node or [P,Q] (double) are terms of a Node\u003c/p\u003e\u003cp\u003e\u003cb\u003eOutput:\u003c/b\u003e [P,Q](double) or [N](uint64) depends on Input type\u003c/p\u003e\u003cp\u003e\u003cb\u003eExamples:\u003c/b\u003e\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003e[Input]  [Output]\r\n  [2] [1 2]\r\n  [1 2] [2]\r\n  [5] [3 2]\r\n  [3 2] [5]\r\n\u003c/pre\u003e\u003cp\u003e\u003cb\u003eContest Performance:\u003c/b\u003e Best Delta Time of 14 minutes with only 368 able to process the large data set in less than 3 hours.\u003c/p\u003e\u003cp\u003e\u003cb\u003eNotes:\u003c/b\u003e\u003c/p\u003e\u003cp\u003e1) Matlab has issues with uint64 for dec2bin and matrix multiplies.\u003c/p\u003e\u003cp\u003e2) Example of uint64 read is provided in test suite comments\u003c/p\u003e\u003cp\u003e3) Bitshift and bitget work on uint64\u003c/p\u003e","function_template":"function vout=Tree_CH(v);\r\n  vout=0;\r\nend","test_suite":"%%\r\ntic\r\nv=[          2081355757           4898583766 ];\r\nvexp=[uint64(11412103587704585708) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[        385960903003         298051413714 ];\r\nvexp=[uint64(13079621846505187505) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64(15477096172227810860) ];\r\nvexp=[        188445238409         450375998772 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64( 6473043965665514375) ];\r\nvexp=[        109230282567          33788952110 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64(11270280438309969755) ];\r\nvexp=[         23328302733           8557676614 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[          6893018069           8719066441 ];\r\nvexp=[uint64( 1875942192845872366) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64( 6566840053865194126) ];\r\nvexp=[         65441249939          85425641391 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[         21562167101          16520535073 ];\r\nvexp=[uint64(  956959952027690353) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[          1684200303           7336396097 ];\r\nvexp=[uint64(  871479491406563248) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64( 2524835851416755114) ];\r\nvexp=[         28589000023          46221104912 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[        154908421282         199691474905 ];\r\nvexp=[uint64( 7885684695614904270) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64( 8176570117722182781) ];\r\nvexp=[         40721598494          22123450931 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64( 9379940828518631730) ];\r\nvexp=[         37341631466          63773070917 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[        232141051889         328442531011 ];\r\nvexp=[uint64( 9972945692012784742) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64( 9539984397959825908) ];\r\nvexp=[         70384313011         178968141063 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[        421484284721         599703187188 ];\r\nvexp=[uint64(17162693345262485798) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[        127506314007          35528864794 ];\r\nvexp=[uint64( 4167185002280551319) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[         11313093168          21049073135 ];\r\nvexp=[uint64(16014443480831614722) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64( 7450646608300783266) ];\r\nvexp=[         83429116694         148768825269 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64(13305041571212833467) ];\r\nvexp=[         77301627056          27774083789 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64(13635447149676152154) ];\r\nvexp=[         90797761304         143479563807 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64(11002893257806672560) ];\r\nvexp=[         44637053272         195624712811 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64(11051724027090761936) ];\r\nvexp=[         41361095819         189799709732 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64(16687200783289968235) ];\r\nvexp=[        552258283575         209936061221 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[         54164851566         156315474505 ];\r\nvexp=[uint64(13714337615447966724) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64( 7329431770178715643) ];\r\nvexp=[         13299036287           4535592331 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64(16479631524350748877) ];\r\nvexp=[        165234451641          96812407705 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64( 6965988866158891263) ];\r\nvexp=[         21216614218           2585039947 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64( 2910455928437551420) ];\r\nvexp=[          6642417815          14808129701 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[         13173276049          27570716815 ];\r\nvexp=[uint64( 4977980945016614908) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64(16721022657493559975) ];\r\nvexp=[         65473107451          19359384006 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[         16946040975          10725070912 ];\r\nvexp=[uint64( 6003309882203701925) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64( 2198342485367409266) ];\r\nvexp=[         23006488657          39032588924 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[        120013217139          50302005308 ];\r\nvexp=[uint64(14344732783514005715) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[         57191814347          77886936688 ];\r\nvexp=[uint64( 8056110860202858614) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64(  971778736353519486) ];\r\nvexp=[         17760921544          20384041659 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[        129560016431         165770554719 ];\r\nvexp=[uint64(15111464173338859822) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64(17855284157674478998) ];\r\nvexp=[        215281025997         298483051015 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[          8822618162           5678585885 ];\r\nvexp=[uint64( 4934822377188433797) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64(  632138406214928188) ];\r\nvexp=[          1835073727           4084131059 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64(17330627945660580534) ];\r\nvexp=[         41195382388          56325602793 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[          6130953526          13549540271 ];\r\nvexp=[uint64( 1896894898836571068) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[         25774822611          36694510870 ];\r\nvexp=[uint64(15996304402734859814) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64( 9847540446768144862) ];\r\nvexp=[         31041969169          37560295989 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64(16612432143632526945) ];\r\nvexp=[         74531365158          60753898717 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64(18413647273680019461) ];\r\nvexp=[         10651217970           6995653927 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[         62279662838          47373225825 ];\r\nvexp=[uint64( 9640047776936252913) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64(16583979163800903818) ];\r\nvexp=[        114249431453         187605944484 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[          9050571726           1557293089 ];\r\nvexp=[uint64( 9060257062169994207) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64(12613321696385576431) ];\r\nvexp=[        125835757545          26079146381 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[         35625689704          19896848117 ];\r\nvexp=[uint64( 4411487194398480861) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64( 3484689439967270015) ];\r\nvexp=[         38461243033           5285269728 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[         16085645428          43823408873 ];\r\nvexp=[uint64(  894482490922679460) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64(12060487473657709988) ];\r\nvexp=[        250877787515         682594856898 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[        143931327293          76531069545 ];\r\nvexp=[uint64(12786697318005254653) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64(14215963369683634045) ];\r\nvexp=[        100316121935          54160354223 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[          6557653153          12053301655 ];\r\nvexp=[uint64(  343376420813762434) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[         47494216762         112901758075 ];\r\nvexp=[uint64( 3772080181899583404) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64( 6766488059228584288) ];\r\nvexp=[          8189923863          44106320581 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[         41526542352          17027036567 ];\r\nvexp=[uint64(17583140790467836275) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[          7196361275           6496875429 ];\r\nvexp=[uint64( 6443574928762444801) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64(17365843048376429107) ];\r\nvexp=[         18457341831           7658711707 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[         78140576077          33767545674 ];\r\nvexp=[uint64( 6098897546038113251) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[          6734445697          12144787423 ];\r\nvexp=[uint64( 4770215408132554690) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[        426726665699         126968827572 ];\r\nvexp=[uint64(12995540462042527271) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64( 5523416580603863552) ];\r\nvexp=[          4255700693          41585972826 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64( 3928457774057619184) ];\r\nvexp=[          3877602413          16306596859 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[        136097916108          28801327007 ];\r\nvexp=[uint64( 5984770176263773551) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64(16263054952801281548) ];\r\nvexp=[         14189368539          34874268638 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[        662028875555         839442017139 ];\r\nvexp=[uint64(11859750004469197678) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[         61393402621         332298132605 ];\r\nvexp=[uint64( 7879625004656522848) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[          1998630709           8715852076 ];\r\nvexp=[uint64(  429234479783941040) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[         46021740257          21715449429 ];\r\nvexp=[uint64(14347105153381215235) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64(  498971859648614985) ];\r\nvexp=[         30472124134          22307121041 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64( 6396162213707057064) ];\r\nvexp=[         26683188512          96283024611 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[         46925294325          33937979441 ];\r\nvexp=[uint64( 1189627028589296041) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[         76315837293          99424320902 ];\r\nvexp=[uint64(11656949174638158734) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[         81880058662          38464981613 ];\r\nvexp=[uint64( 7071867154613101059) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64(10763027175299443277) ];\r\nvexp=[        330973468653         194345162402 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[         79087591419          23535674032 ];\r\nvexp=[uint64(15017024826981320231) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[        241564818347         155909390759 ];\r\nvexp=[uint64(15575297637481852549) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[         45079186819         295776092742 ];\r\nvexp=[uint64(16532545499676710720) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[         22268771423          34477255167 ];\r\nvexp=[uint64(11007510539515659130) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64( 5666822869473456046) ];\r\nvexp=[         28640204779          36488487629 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64(14041232599151835393) ];\r\nvexp=[         28442192536          25169506635 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64( 9611808239041397120) ];\r\nvexp=[          1055826287           7876555270 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[        358405360794         498368744795 ];\r\nvexp=[uint64( 4955841772239017238) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64( 3979638765694296062) ];\r\nvexp=[          6903410593           7465748396 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[        151761015812         211325030677 ];\r\nvexp=[uint64( 7987025462351843862) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[        325266071703          87446899892 ];\r\nvexp=[uint64(16944641327505127607) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64( 3273057505586617135) ];\r\nvexp=[        124425395619          27124979723 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[        142722642746          60293518411 ];\r\nvexp=[uint64(10857549622062058131) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[        379488415355         462240655923 ];\r\nvexp=[uint64(16693497308621268574) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64( 5336487237226370963) ];\r\nvexp=[         76728175571          32349586492 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[        366909173981         111494050923 ];\r\nvexp=[uint64(11044880014193584327) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64( 2767480983943234275) ];\r\nvexp=[        155407720950          67429662431 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[          4375152441          11923449250 ];\r\nvexp=[uint64(14458798758395123876) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[        107946470399          33010545783 ];\r\nvexp=[uint64(13708745226178508359) ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64(  546205200272961984) ];\r\nvexp=[          1773793574          11180737745 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\n%%\r\nv=[uint64( 6791165959744564855) ];\r\nvexp=[        125726750555          33307435529 ];\r\nvout=Tree_CH(v);\r\nassert(isequal(vout,vexp))\r\ntoc\r\n%%\r\n% Read of GJam 64 bit data\r\n% function z = read_input64(fn)\r\n%  fid=fopen(fn);\r\n%  u=textscan(fid,'%u64');\r\n%  fclose(fid);\r\n%  vptr=2; % skip Test case count \r\n%  dptr=1;\r\n%  while vptr\u003csize(u{1},1)\r\n%   if u{1}(vptr)==1 % single N\r\n%    z{dptr}=u{1}(vptr+1);\r\n%    vptr=vptr+2;\r\n%   else % Pair for p/q\r\n%    z{dptr}=[u{1}(vptr+1) u{1}(vptr+2)];\r\n%    vptr=vptr+3;\r\n%   end\r\n%   dptr=dptr+1;\r\n%  end\r\n% end\r\n%Typical GJam 64 bit data\r\n% 100\r\n% 2 2081355757 4898583766\r\n% 2 385960903003 298051413714\r\n% 1 15477096172227810860\r\n% 1 6473043965665514375\r\n% 1 11270280438309969755\r\n% 2 6893018069 8719066441\r\n% 1 6566840053865194126\r\n% 2 21562167101 16520535073\r\n% 2 1684200303 7336396097\r\n% 1 2524835851416755114\r\n% 2 154908421282 199691474905\r\n","published":true,"deleted":false,"likes_count":0,"comments_count":0,"created_by":3097,"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":"2013-09-29T03:53:20.000Z","updated_at":"2013-09-29T21:22:24.000Z","published_at":"2013-09-29T04:19:40.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis Challenge is derived from\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://code.google.com/codejam/contest/2924486/dashboard#s=p1\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eGJam 2014 China Rational Number Tree\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe Goal is to determine the tree node if given [P,Q] or provide the [P,Q] if given a node. This is the Large Challenge with a Max of 64 Tree levels. Processing of uint64 size data requires extra care.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eConsider an infinite complete binary tree where the root node is 1/1 and the left and right children of node P/Q are P/(P+Q) and (P+Q)/Q, 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\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe Tree looks like:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[         1/1\\n    ______|______\\n    |           |\\n   1/2         2/1\\n ___|___     ___|___\\n |     |     |     |\\n1/3   3/2   2/3   3/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\u003eThe nodes are 1/1, 1/2, 2/1, 1/3, 3/2, 2/3, 3/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:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eInput:\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e [N] or [P,Q] where N is a uint64 integer node or [P,Q] (double) are terms of a Node\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eOutput:\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e [P,Q](double) or [N](uint64) depends on Input 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\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eExamples:\u003c/w:t\u003e\u003c/w:r\u003e\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]  [Output]\\n  [2] [1 2]\\n  [1 2] [2]\\n  [5] [3 2]\\n  [3 2] [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:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eContest Performance:\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e Best Delta Time of 14 minutes with only 368 able to process the large data set in less than 3 hours.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eNotes:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e1) Matlab has issues with uint64 for dec2bin and matrix multiplies.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e2) Example of uint64 read is provided in test suite comments\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e3) Bitshift and bitget work on uint64\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"}],"term":"tag:\"tree\"","current_player_id":null,"fields":[{"name":"page","type":"integer","callback":null,"default":1,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":null,"static":null,"prepend":true},{"name":"per_page","type":"integer","callback":null,"default":50,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":null,"static":null,"prepend":true},{"name":"sort","type":"string","callback":null,"default":null,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":null,"static":null,"prepend":true},{"name":"body","type":"text","callback":null,"default":"*:*","directive":null,"facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":false},{"name":"group","type":"string","callback":null,"default":null,"directive":"group","facet":true,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"difficulty_rating_bin","type":"string","callback":null,"default":null,"directive":"difficulty_rating_bin","facet":true,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"id","type":"integer","callback":null,"default":null,"directive":"id","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"tag","type":"string","callback":null,"default":null,"directive":"tag","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"product","type":"string","callback":null,"default":null,"directive":"product","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"created_at","type":"timeframe","callback":{},"default":null,"directive":"created_at","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"profile_id","type":"integer","callback":null,"default":null,"directive":"author_id","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"created_by","type":"string","callback":null,"default":null,"directive":"author","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"player_id","type":"integer","callback":null,"default":null,"directive":"solver_id","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"player","type":"string","callback":null,"default":null,"directive":"solver","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"solvers_count","type":"integer","callback":null,"default":null,"directive":"solvers_count","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"comments_count","type":"integer","callback":null,"default":null,"directive":"comments_count","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"likes_count","type":"integer","callback":null,"default":null,"directive":"likes_count","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"leader_id","type":"integer","callback":null,"default":null,"directive":"leader_id","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"leading_solution","type":"integer","callback":null,"default":null,"directive":"leading_solution","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true}],"filters":[{"name":"asset_type","type":"string","callback":null,"default":null,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":null,"static":"\"cody:problem\"","prepend":true},{"name":"profile_id","type":"integer","callback":{},"default":null,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":"author_id","static":null,"prepend":true}],"query":{"params":{"per_page":50,"term":"tag:\"tree\"","current_player":null,"sort":"map(difficulty_value,0,0,999) asc"},"parser":"MathWorks::Search::Solr::QueryParser","directives":{"term":{"directives":{"tag":[["tag:\"tree\"","","\"","tree","\""]]}}},"facets":{"#\u003cMathWorks::Search::Field:0x00007fac45d48480\u003e":null,"#\u003cMathWorks::Search::Field:0x00007fac45d483e0\u003e":null},"filters":{"#\u003cMathWorks::Search::Field:0x00007fac45d47940\u003e":"\"cody:problem\""},"fields":{"#\u003cMathWorks::Search::Field:0x00007fac45d48840\u003e":1,"#\u003cMathWorks::Search::Field:0x00007fac45d48660\u003e":50,"#\u003cMathWorks::Search::Field:0x00007fac45d485c0\u003e":"map(difficulty_value,0,0,999) asc","#\u003cMathWorks::Search::Field:0x00007fac45d48520\u003e":"tag:\"tree\""},"user_query":{"#\u003cMathWorks::Search::Field:0x00007fac45d48520\u003e":"tag:\"tree\""},"queried_facets":{}},"query_backend":{"connection":{"configuration":{"index_url":"http://index-op-v2/solr/","query_url":"http://search-op-v2/solr/","direct_access_index_urls":["http://index-op-v2/solr/"],"direct_access_query_urls":["http://search-op-v2/solr/"],"timeout":10,"vhost":"search","exchange":"search.topic","heartbeat":30,"pre_index_mode":false,"host":"rabbitmq-eks","port":5672,"username":"search","password":"J3bGPZzQ7asjJcCk","virtual_host":"search","indexer":"amqp","http_logging":"true","core":"cody"},"query_connection":{"uri":"http://search-op-v2/solr/cody/","proxy":null,"connection":{"parallel_manager":null,"headers":{"User-Agent":"Faraday v1.0.1"},"params":{},"options":{"params_encoder":"Faraday::FlatParamsEncoder","proxy":null,"bind":null,"timeout":null,"open_timeout":null,"read_timeout":null,"write_timeout":null,"boundary":null,"oauth":null,"context":null,"on_data":null},"ssl":{"verify":true,"ca_file":null,"ca_path":null,"verify_mode":null,"cert_store":null,"client_cert":null,"client_key":null,"certificate":null,"private_key":null,"verify_depth":null,"version":null,"min_version":null,"max_version":null},"default_parallel_manager":null,"builder":{"adapter":{"name":"Faraday::Adapter::NetHttp","args":[],"block":null},"handlers":[{"name":"Faraday::Response::RaiseError","args":[],"block":null}],"app":{"app":{"ssl_cert_store":{"verify_callback":null,"error":null,"error_string":null,"chain":null,"time":null},"app":{},"connection_options":{},"config_block":null}}},"url_prefix":"http://search-op-v2/solr/cody/","manual_proxy":false,"proxy":null},"update_format":"RSolr::JSON::Generator","update_path":"update","options":{"url":"http://search-op-v2/solr/cody"}}},"query":{"params":{"per_page":50,"term":"tag:\"tree\"","current_player":null,"sort":"map(difficulty_value,0,0,999) asc"},"parser":"MathWorks::Search::Solr::QueryParser","directives":{"term":{"directives":{"tag":[["tag:\"tree\"","","\"","tree","\""]]}}},"facets":{"#\u003cMathWorks::Search::Field:0x00007fac45d48480\u003e":null,"#\u003cMathWorks::Search::Field:0x00007fac45d483e0\u003e":null},"filters":{"#\u003cMathWorks::Search::Field:0x00007fac45d47940\u003e":"\"cody:problem\""},"fields":{"#\u003cMathWorks::Search::Field:0x00007fac45d48840\u003e":1,"#\u003cMathWorks::Search::Field:0x00007fac45d48660\u003e":50,"#\u003cMathWorks::Search::Field:0x00007fac45d485c0\u003e":"map(difficulty_value,0,0,999) asc","#\u003cMathWorks::Search::Field:0x00007fac45d48520\u003e":"tag:\"tree\""},"user_query":{"#\u003cMathWorks::Search::Field:0x00007fac45d48520\u003e":"tag:\"tree\""},"queried_facets":{}},"options":{"fields":["id","difficulty_rating"]},"join":" "},"results":[{"id":45247,"difficulty_rating":"easy-medium"},{"id":45509,"difficulty_rating":"medium"},{"id":1897,"difficulty_rating":"medium"},{"id":1900,"difficulty_rating":"unrated"}]}}