{"group":{"id":1,"name":"Community","lockable":false,"created_at":"2012-01-18T18:02:15.000Z","updated_at":"2026-04-06T14:01:22.000Z","description":"Problems submitted by members of the MATLAB Central community.","is_default":true,"created_by":161519,"badge_id":null,"featured":false,"trending":false,"solution_count_in_trending_period":0,"trending_last_calculated":"2026-04-06T00:00:00.000Z","image_id":null,"published":true,"community_created":false,"status_id":2,"is_default_group_for_player":false,"deleted_by":null,"deleted_at":null,"restored_by":null,"restored_at":null,"description_opc":null,"description_html":null,"published_at":null},"problems":[{"id":60980,"title":"Mesh the tetrahedron","description":"Problem statement\r\n\r\nAn tetrahedron is a regular polyhedron with 4 vertices and 4 triangular faces. It is also one of the five well known platonic solids.\r\nA triangulated mesh -or a triangulation- is simply a N x 3 matrix of positive integers where each row contains the vertex indices of a triangle, and where N is the number of triangles. \r\n\r\nYour task here is to mesh this tetrahedron. To do so, you will list the triangles/rows in a matrix of triangles, T. You will also be careful to always keep the triangles / faces coherently / consistently oriented (all clockwise or all counterclockwise : triangles [1, 2, 3] and [3, 2, 1] are distinct).\r\nOn the other hand [1, 2, 3], [2, 3, 1] and [3, 1, 2] are one same unique triangle.\r\nThe row order of the triangles in the list doesn't matter.\r\n       \r\nEdit / update\r\nTriangles orientation not taken into account anymore, because of too many possible cases to check in the tests (!)\r\n\r\nExample\r\nThe first triangle (X \u003e 0 and Y \u003e 0) here can be [1, 2, 4] if counterclockwise oriented (normals outward).\r\n\r\n\r\n\r\nForbidden functions / expressions\r\nregexp\r\nassignin\r\nstr2num\r\necho\r\n\r\nSee also\r\nMesh processing\r\nMesh generation toolbox","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.4333px; min-height: 0px; white-space: normal; color: rgb(0, 0, 0); font-family: Menlo, Monaco, Consolas, monospace; font-style: normal; font-size: 14px; font-weight: 400; text-decoration: rgb(0, 0, 0); white-space: normal; \"\u003e\u003cdiv style=\"block-size: 1194.73px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 408px 597.367px; transform-origin: 408px 597.367px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 63.0083px 8px; transform-origin: 63.0083px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eProblem statement\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 21px; text-align: left; transform-origin: 385px 21px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 374.592px 8px; transform-origin: 374.592px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eAn tetrahedron is a regular polyhedron with 4 vertices and 4 triangular faces. It is also one of the five well known platonic solids.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 21px; text-align: left; transform-origin: 385px 21px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 157.542px 8px; transform-origin: 157.542px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eA triangulated mesh -or a triangulation- is simply 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: 5.05833px 8px; transform-origin: 5.05833px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\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: 206.533px 8px; transform-origin: 206.533px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e x 3 matrix of positive integers where each row contains the vertex indices of a triangle, and where \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 5.05833px 8px; transform-origin: 5.05833px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\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: 84.4px 8px; transform-origin: 84.4px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e is the number of triangles. \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 63px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 31.5px; text-align: left; transform-origin: 385px 31.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 328.017px 8px; transform-origin: 328.017px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eYour task here is to mesh this tetrahedron. To do so, you will list the triangles/rows in a matrix of triangles, \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 7.51667px 8px; transform-origin: 7.51667px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003eT. \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 49.4667px 8px; transform-origin: 49.4667px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eYou will also be careful to always keep the triangles / faces coherently / consistently oriented (all clockwise or all counterclockwise : triangles \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 23.325px 8px; transform-origin: 23.325px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003e[1, 2, 3]\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 15.5583px 8px; transform-origin: 15.5583px 8px; unicode-bidi: normal; \"\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: 23.325px 8px; transform-origin: 23.325px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003e[3, 2, 1]\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 40.0583px 8px; transform-origin: 40.0583px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e are distinct).\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 58.3417px 8px; transform-origin: 58.3417px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eOn the other hand \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 23.325px 8px; transform-origin: 23.325px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003e[1, 2, 3]\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 3.88333px 8px; transform-origin: 3.88333px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e, \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 23.325px 8px; transform-origin: 23.325px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003e[2, 3, 1]\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 15.5583px 8px; transform-origin: 15.5583px 8px; unicode-bidi: normal; \"\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: 23.325px 8px; transform-origin: 23.325px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003e[3, 1, 2]\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 94.5333px 8px; transform-origin: 94.5333px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e are one same unique triangle.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 168.575px 8px; transform-origin: 168.575px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe row order of the triangles in the list doesn't matter.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 13.5917px 8px; transform-origin: 13.5917px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e       \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 41.9833px 8px; transform-origin: 41.9833px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eEdit / update\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 351.75px 8px; transform-origin: 351.75px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eTriangles orientation not taken into account anymore, because of too many possible cases to check in the tests (!)\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 28.7833px 8px; transform-origin: 28.7833px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eExample\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 52.1167px 8px; transform-origin: 52.1167px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe first triangle \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 53.2917px 8px; transform-origin: 53.2917px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003e(X \u0026gt; 0 and Y \u0026gt; 0)\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 42.7833px 8px; transform-origin: 42.7833px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e here can be [\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 21.3833px 8px; transform-origin: 21.3833px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003e1, 2, 4]\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 148.208px 8px; transform-origin: 148.208px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e if counterclockwise oriented (normals outward).\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 378px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 189px; text-align: left; transform-origin: 385px 189px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cimg class=\"imageNode\" width=\"504\" height=\"378\" style=\"vertical-align: middle;width: 504px;height: 378px\" src=\"data:image/png;base64,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\" data-image-state=\"image-loaded\"\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 114.308px 8px; transform-origin: 114.308px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eForbidden functions / expressions\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cul style=\"block-size: 81.7333px; counter-reset: list-item 0; font-family: Helvetica, Arial, sans-serif; list-style-type: square; margin-block-end: 20px; margin-block-start: 10px; margin-bottom: 20px; margin-top: 10px; perspective-origin: 392px 40.8667px; transform-origin: 392px 40.8667px; margin-top: 10px; margin-bottom: 20px; \"\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 364px 10.2167px; text-align: left; transform-origin: 364px 10.2167px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 21.4px 8px; transform-origin: 21.4px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003eregexp\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 364px 10.2167px; text-align: left; transform-origin: 364px 10.2167px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 25.6833px 8px; transform-origin: 25.6833px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003eassignin\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 364px 10.2167px; text-align: left; transform-origin: 364px 10.2167px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 25.2833px 8px; transform-origin: 25.2833px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003estr2num\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 364px 10.2167px; text-align: left; transform-origin: 364px 10.2167px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 15.175px 8px; transform-origin: 15.175px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003eecho\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003c/ul\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 28.3917px 8px; transform-origin: 28.3917px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eSee also\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003ca target='_blank' href = \"https://fr.mathworks.com/matlabcentral/cody/groups/57483\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eMesh processing\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003ca target='_blank' href = \"https://fr.mathworks.com/matlabcentral/fileexchange/85173-mesh-generation-toolbox?s_tid=prof_contriblnk\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eMesh generation toolbox\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function T = mesh_the_tetrahedron()\r\n  T = 1;\r\nend","test_suite":"%%\r\nT_correct = [1 2 4;\r\n             2 3 4;\r\n             3 1 4;\r\n             1 3 2];\r\n\r\n% Check every possible solutions\r\nassert(isequal(sortrows(sort(mesh_the_tetrahedron(),2)),sortrows(sort(T_correct,2))))\r\n\r\n%% Forbidden functions\r\nfiletext = fileread('mesh_the_tetrahedron.m');\r\nillegal = contains(filetext, 'regexp') || contains(filetext, 'str2num') || contains(filetext, 'assignin') || contains(filetext, 'echo')\r\nassert(~illegal);","published":true,"deleted":false,"likes_count":1,"comments_count":1,"created_by":149128,"edited_by":149128,"edited_at":"2025-07-26T07:43:58.000Z","deleted_by":null,"deleted_at":null,"solvers_count":40,"test_suite_updated_at":"2025-07-23T16:17:50.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2025-07-23T11:03:01.000Z","updated_at":"2026-04-07T07:21:51.000Z","published_at":"2025-07-23T11:11:01.000Z","restored_at":null,"restored_by":null,"spam":null,"simulink":false,"admin_reviewed":false,"description_opc":"{\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eProblem statement\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\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\u003eAn tetrahedron is a regular polyhedron with 4 vertices and 4 triangular faces. It is also one of the five well known platonic solids.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eA triangulated mesh -or a triangulation- is simply a \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eN\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e x 3 matrix of positive integers where each row contains the vertex indices of a triangle, and where \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eN\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e is the number of triangles. \u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eYour task here is to mesh this tetrahedron. To do so, you will list the triangles/rows in a matrix of triangles, \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eT. \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003eYou will also be careful to always keep the triangles / faces coherently / consistently oriented (all clockwise or all counterclockwise : triangles \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e[1, 2, 3]\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e and \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e[3, 2, 1]\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e are distinct).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eOn the other hand \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e[1, 2, 3]\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\u003e[2, 3, 1]\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e and \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e[3, 1, 2]\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e are one same unique triangle.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\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 row order of the triangles in the list doesn't matter.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e       \u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eEdit / update\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eTriangles orientation not taken into account anymore, because of too many possible cases to check in the tests (!)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eExample\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe first triangle \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e(X \u0026gt; 0 and Y \u0026gt; 0)\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e here can be [\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e1, 2, 4]\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e if counterclockwise oriented (normals outward).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"378\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"504\\\"/\u003e\u003cw:attr w:name=\\\"verticalAlign\\\" w:val=\\\"middle\\\"/\u003e\u003cw:attr w:name=\\\"altText\\\" w:val=\\\"\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId1\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eForbidden functions / expressions\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:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eregexp\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:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eassignin\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:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003estr2num\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:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eecho\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eSee also\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:hyperlink w:docLocation=\\\"https://fr.mathworks.com/matlabcentral/cody/groups/57483\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eMesh processing\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:hyperlink w:docLocation=\\\"https://fr.mathworks.com/matlabcentral/fileexchange/85173-mesh-generation-toolbox?s_tid=prof_contriblnk\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eMesh generation toolbox\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\",\"relationship\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"target\":\"/media/image1.png\",\"relationshipId\":\"rId1\"}]},{\"partUri\":\"/media/image1.png\",\"contentType\":\"image/png\",\"content\":\"data:image/png;base64,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\",\"relationship\":null}],\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"target\":\"/matlab/document.xml\",\"relationshipId\":\"rId1\"}]}"},{"id":60981,"title":"Mesh the pentagon (with the minimum number of triangles)","description":"Problem statement\r\n\r\nAn pentagon is a regular polygon with 5 vertices and 5 edges. Here below is an example of the vertex set V, corresponding to the XYZ coordinates column vectors of a pentagon included in the unit circle.\r\n\r\nV = [1           0            0;\r\n     cos(2*pi/5) sin(2*pi/5)  0;\r\n     cos(4*pi/5) sin(4*pi/5)  0;\r\n     cos(4*pi/5) sin(-4*pi/5) 0;\r\n     cos(2*pi/5) sin(-2*pi/5) 0];\r\n\r\nA triangulated mesh T (stands for triangles here) -or a triangulation- is simply a N x 3 matrix of positive integers where each row contains the vertex indices of a triangle, and where N is the number of triangles. \r\n\r\nYour task here is to mesh this pentagon with the minimum possible number of triangles. To do so, you will list the pentagons/rows in a matrix of faces, F. The row order of the triangles in the list doesn't matter.\r\n\r\nExample\r\nThe first triangle here can be [1, 2, 3] if counterclockwise oriented.\r\n\r\n\r\n\r\n\r\nTip\r\nBeware to avoid self intersecting triangles.\r\n\r\nForbidden functions / expressions\r\nregexp\r\nassignin\r\nstr2num\r\necho\r\n\r\nSee also\r\nMesh processing\r\nMesh generation toolbox","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.4333px; min-height: 0px; white-space: normal; color: rgb(0, 0, 0); font-family: Menlo, Monaco, Consolas, monospace; font-style: normal; font-size: 14px; font-weight: 400; text-decoration: rgb(0, 0, 0); white-space: normal; \"\u003e\u003cdiv style=\"block-size: 1278.4px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 408px 639.2px; transform-origin: 408px 639.2px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 63.0083px 8px; transform-origin: 63.0083px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eProblem statement\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 21px; text-align: left; transform-origin: 385px 21px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 327.525px 8px; transform-origin: 327.525px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eAn pentagon is a regular polygon with 5 vertices and 5 edges. Here below is an example of the vertex set \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 6.09167px 8px; transform-origin: 6.09167px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003eV,\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 48.2417px 8px; transform-origin: 48.2417px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e corresponding to the XYZ coordinates column vectors of a pentagon included in the unit circle.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgb(247, 247, 247); block-size: 102.167px; border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; border-end-end-radius: 4px; border-end-start-radius: 4px; border-start-end-radius: 4px; border-start-start-radius: 4px; border-top-left-radius: 4px; border-top-right-radius: 4px; margin-block-end: 10px; margin-block-start: 10px; margin-bottom: 10px; margin-inline-end: 3px; margin-inline-start: 3px; margin-left: 3px; margin-right: 3px; margin-top: 10px; perspective-origin: 405px 51.0833px; transform-origin: 405px 51.0833px; margin-left: 3px; margin-top: 10px; margin-bottom: 10px; margin-right: 3px; \"\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 405px 10.2167px; text-wrap-mode: nowrap; transform-origin: 405px 10.2167px; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 123.2px 8.5px; tab-size: 4; transform-origin: 123.2px 8.5px; unicode-bidi: normal; white-space-collapse: preserve; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003eV = [1           0            0;\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 405px 10.2167px; text-wrap-mode: nowrap; transform-origin: 405px 10.2167px; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 123.2px 8.5px; tab-size: 4; transform-origin: 123.2px 8.5px; unicode-bidi: normal; white-space-collapse: preserve; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e     cos(2*pi/5) sin(2*pi/5)  0;\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 405px 10.2167px; text-wrap-mode: nowrap; transform-origin: 405px 10.2167px; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 123.2px 8.5px; tab-size: 4; transform-origin: 123.2px 8.5px; unicode-bidi: normal; white-space-collapse: preserve; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e     cos(4*pi/5) sin(4*pi/5)  0;\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 405px 10.2167px; text-wrap-mode: nowrap; transform-origin: 405px 10.2167px; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 123.2px 8.5px; tab-size: 4; transform-origin: 123.2px 8.5px; unicode-bidi: normal; white-space-collapse: preserve; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e     cos(4*pi/5) sin(-4*pi/5) 0;\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 405px 10.2167px; text-wrap-mode: nowrap; transform-origin: 405px 10.2167px; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 127.05px 8.5px; tab-size: 4; transform-origin: 127.05px 8.5px; unicode-bidi: normal; white-space-collapse: preserve; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e     cos(2*pi/5) sin(-2*pi/5) 0];\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 10px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 10px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 10px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 21px; text-align: left; transform-origin: 385px 21px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 64.1833px 8px; transform-origin: 64.1833px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eA triangulated mesh \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 4.275px 8px; transform-origin: 4.275px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003eT\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 176.983px 8px; transform-origin: 176.983px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e (stands for triangles here) -or a triangulation- is simply 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: 5.05833px 8px; transform-origin: 5.05833px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\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: 132.633px 8px; transform-origin: 132.633px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e x 3 matrix of positive integers where each row contains the vertex indices of a triangle, and where \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 5.05833px 8px; transform-origin: 5.05833px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\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: 84.4px 8px; transform-origin: 84.4px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e is the number of triangles. \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 21px; text-align: left; transform-origin: 385px 21px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 384.442px 8px; transform-origin: 384.442px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eYour task here is to mesh this pentagon with the minimum possible number of triangles. To do so, you will list the pentagons/rows in a matrix of faces, \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 7.25833px 8px; transform-origin: 7.25833px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003eF. \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 168.575px 8px; transform-origin: 168.575px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe row order of the triangles in the list doesn't matter.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 28.7833px 8px; transform-origin: 28.7833px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eExample\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 92.9583px 8px; transform-origin: 92.9583px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe first triangle here can be [\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 21.3833px 8px; transform-origin: 21.3833px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003e1, 2, 3]\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 89.8583px 8px; transform-origin: 89.8583px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e if counterclockwise oriented.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 339.5px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 169.75px; text-align: left; transform-origin: 385px 169.75px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cimg class=\"imageNode\" width=\"445\" height=\"334\" style=\"vertical-align: baseline;width: 445px;height: 334px\" src=\"data:image/png;base64,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X/hC8ZIpiFuA+u2v3BahC9ADs5JkzZw585VXXjnssMNee+21o48+evv27e1vjBoaGnrhhReOOuqoN998c/bs2Xv27Gl/g/HELUCzHOcC9MNP3yFZS5cubSVu6+H2228/IHFb3n777bVr17YeDjnkkJNPPrl4yRituC1+HaAVt8UvAOqxf+R2+2tHADr4G0FSNnv27I997GPPPvvsM888037VYc2aNWeffXbr4cQTT3zssceKlzi5BQiUE12A3piSZGpkZOSll1467LDDtm3bNnfu3M4ruzma5HBA3AIEwgVdgN7YWCZHhx9++C233FLsM//gBz/IN3GLheQJE7fYSZa4AOEwkwF64y8CychHPvKRBQsWnHrqqRdccMHcuXNbb1qtu2LFiuK7GXFyCxAve8sAUzEfycj27dvf+c53tr846KCf//znF110UfuLHIhbgDQIXYBJGY7kYmhoaPfu3du2bZsxY8aRRx5ZvPzXv/513nnnPfjgg8WXaRK3AIlxQRdgUiYjGWmFbnEFd8GCBd/4xjdWrVrVen7jjTdOOeWU9evXj/6RhIhbgIQ5zgXozmQkX9dcc81XvvKV1sM//vGPJUuWFC+jJ24BMiF0AbowFsnX8PDwli1bjjjiiNbzMcccs2nTpuJ9lMQtQG7sLQN0YSaStTVr1px99tmth0996lN333138TIm3eJW2QLkwHEuwET8e7kka3h4ePHixcuWLZs/f3771Ti7du0qHmbOnFk8xKEVt8WvA7TitvgFQA72D/xJNnoA8qNySda111778MMP33HHHUuXLm2/Gufoo48uHrZu3Vo8BE3cAnAAoQswjv0WkrV8+fLbb7+99XD//feffvrpxctOxx577DPPPDNjxoxXX331Xe96V/Hjl0PU7T9cZC0ALS7oAoxlFJKsmTNnbtq06aijjmo9n3POObfeemvxvjB79uw//elPp556auv5O9/5zuWXX168D4i4BaBHLugCdDAKSdm55557yy23tB7efPPNK6644rrrrtu+ffvQ0NDSpUu///3vf+hDH2p96/HHHz/llFN27tw5+r/RtEn2zcQtAJMQugD7mIMk7rLLLlu9enXx/NZbb73++uuzZs065JBDijePPvroxz/+8c2bNxdfNkbcAjA4oQswyhAkfaeddtoPf/jDxYsXt78etWXLlh//+MdXX3317t27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\" data-image-state=\"image-loaded\"\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 10.3667px 8px; transform-origin: 10.3667px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eTip\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 131.092px 8px; transform-origin: 131.092px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eBeware to avoid self intersecting triangles.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 114.308px 8px; transform-origin: 114.308px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eForbidden functions / expressions\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cul style=\"block-size: 81.7333px; counter-reset: list-item 0; font-family: Helvetica, Arial, sans-serif; list-style-type: square; margin-block-end: 20px; margin-block-start: 10px; margin-bottom: 20px; margin-top: 10px; perspective-origin: 392px 40.8667px; transform-origin: 392px 40.8667px; margin-top: 10px; margin-bottom: 20px; \"\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 364px 10.2167px; text-align: left; transform-origin: 364px 10.2167px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 21.4px 8px; transform-origin: 21.4px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003eregexp\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 364px 10.2167px; text-align: left; transform-origin: 364px 10.2167px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 25.6833px 8px; transform-origin: 25.6833px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003eassignin\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 364px 10.2167px; text-align: left; transform-origin: 364px 10.2167px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 25.2833px 8px; transform-origin: 25.2833px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003estr2num\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 364px 10.2167px; text-align: left; transform-origin: 364px 10.2167px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 15.175px 8px; transform-origin: 15.175px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003eecho\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003c/ul\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 28.3917px 8px; transform-origin: 28.3917px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eSee also\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003ca target='_blank' href = \"https://fr.mathworks.com/matlabcentral/cody/groups/57483\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eMesh processing\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003ca target='_blank' href = \"https://fr.mathworks.com/matlabcentral/fileexchange/85173-mesh-generation-toolbox?s_tid=prof_contriblnk\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eMesh generation toolbox\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function T = mesh_the_pentagon()\r\n  T = 1;\r\nend","test_suite":"%%\r\nT_correct1 = [1 2 3;\r\n              1 3 4;\r\n              1 4 5];\r\n\r\nT_correct2 = [2 3 4;\r\n              2 4 5;\r\n              2 5 1];\r\n\r\nT_correct3 = [3 4 5;\r\n              3 5 1;\r\n              3 1 2];\r\n\r\nT_correct4 = [3 4 5;\r\n              3 5 1;\r\n              3 1 2];\r\n\r\nT_correct5 = [5 1 2;\r\n              5 2 3;\r\n              5 3 4];\r\n\r\n% Check every possible solutions\r\nassert(isequal(sortrows(sort(mesh_the_pentagon(),2)),sortrows(sort(T_correct1,2)))...\r\n     | isequal(sortrows(sort(mesh_the_pentagon(),2)),sortrows(sort(T_correct2,2)))...\r\n     | isequal(sortrows(sort(mesh_the_pentagon(),2)),sortrows(sort(T_correct3,2)))...\r\n     | isequal(sortrows(sort(mesh_the_pentagon(),2)),sortrows(sort(T_correct4,2)))...\r\n     | isequal(sortrows(sort(mesh_the_pentagon(),2)),sortrows(sort(T_correct5,2))))\r\n\r\n%% Forbidden functions\r\nfiletext = fileread('mesh_the_pentagon.m');\r\nillegal = contains(filetext, 'regexp') || contains(filetext, 'str2num') || contains(filetext, 'assignin') || contains(filetext, 'echo')\r\nassert(~illegal);","published":true,"deleted":false,"likes_count":1,"comments_count":6,"created_by":149128,"edited_by":149128,"edited_at":"2025-08-13T05:29:08.000Z","deleted_by":null,"deleted_at":null,"solvers_count":31,"test_suite_updated_at":"2025-08-13T05:29:08.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2025-07-23T12:59:46.000Z","updated_at":"2026-02-10T17:07:57.000Z","published_at":"2025-07-23T15:54:36.000Z","restored_at":null,"restored_by":null,"spam":null,"simulink":false,"admin_reviewed":false,"description_opc":"{\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eProblem statement\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\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\u003eAn pentagon is a regular polygon with 5 vertices and 5 edges. Here below is an example of the vertex set \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eV,\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e corresponding to the XYZ coordinates column vectors of a pentagon included in the unit circle.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[V = [1           0            0;\\n     cos(2*pi/5) sin(2*pi/5)  0;\\n     cos(4*pi/5) sin(4*pi/5)  0;\\n     cos(4*pi/5) sin(-4*pi/5) 0;\\n     cos(2*pi/5) sin(-2*pi/5) 0];]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eA triangulated mesh \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eT\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e (stands for triangles here) -or a triangulation- is simply a \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eN\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e x 3 matrix of positive integers where each row contains the vertex indices of a triangle, and where \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eN\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e is the number of triangles. \u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eYour task here is to mesh this pentagon with the minimum possible number of triangles. To do so, you will list the pentagons/rows in a matrix of faces, \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eF. \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003eThe row order of the triangles in the list doesn't matter.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eExample\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe first triangle here can be [\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e1, 2, 3]\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e if counterclockwise oriented.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"334\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"445\\\"/\u003e\u003cw:attr w:name=\\\"verticalAlign\\\" w:val=\\\"baseline\\\"/\u003e\u003cw:attr w:name=\\\"altText\\\" w:val=\\\"\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId1\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eTip\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eBeware to avoid self intersecting triangles.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eForbidden functions / expressions\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:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eregexp\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:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eassignin\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:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003estr2num\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:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eecho\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eSee also\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:hyperlink w:docLocation=\\\"https://fr.mathworks.com/matlabcentral/cody/groups/57483\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eMesh processing\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:hyperlink w:docLocation=\\\"https://fr.mathworks.com/matlabcentral/fileexchange/85173-mesh-generation-toolbox?s_tid=prof_contriblnk\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eMesh generation toolbox\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\",\"relationship\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"target\":\"/media/image1.png\",\"relationshipId\":\"rId1\"}]},{\"partUri\":\"/media/image1.png\",\"contentType\":\"image/png\",\"content\":\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABPcAAAO5CAIAAAD6jVcHAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAC2cSURBVHhe7d19qN51/fhxPZvHNU+abGPOmIR8XXTrzdCgKYYMsSKYo7QVKriVIkkUgYSI2B2zG5OozNJuoFRQp5aJESW5SEydgvMGE+ZcolvN2Zy6zel+1+98ro3r7JzrnOs61+fmffN4ML77nM/Z97/v93X53Pv1PjsIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoH5DQ0MXXHDBbbfd9p///Gf37t07d+7cuHHjzTfffNppp7X/BAAAAETh2GOPXb9+/d4u1qxZMzIy0v6jAAAAELL58+e/+OKLRdA+/fTTl19++fLly88999xrr712x44dxfs///nP7T8NAAAAIbvxxhuLlL3ttttmzpzZfjtq4cKFGzZsKL67cuXK9lsAAAAI0+GHH75nz55WxG7atGnWrFnttx1OPvnkonIffPDB9isAAAAI07Jly4qIvfbaa9uvxnnhhRdaf6AVw+2vAeCgg4bavwMAhGTbtm133XXXo48++sADD7RfjfP888+3/ueMGTMO2GcGAACAyLTKdvfu3Xv37t25c2f7FQA4ywUAIrVq1apDDjmk9XDvvfcWbwAAACBK8+bN27x58+i93b1nnnlm+y0AAABEZ3h4+G9/+1uRuHfeeWf7LQAAAERn5syZ99xzT5G4GzZsmDNnTvsbAAAAEJeRkZG//OUvReK+8MILCxcubH8DAAAA4jJ//vx169YVibthwwaJCwAAQKwWL1784osvFon78MMPz5s3r/0NAAAAiMuyZctef/31InHvvvvukZGR9jcAAAAgLitXriz6tuWaa65pvwUAAIDoXHDBBe3A3bv34osvbr8FAACA6Jx++untwN27d9myZe23AAAAEJ3h4eGNGzcWiXvJJZe03wLAVA5u/w4AEJKvfe1r3/ve91oPb7311u9///viZTef+9zndu7c2f4CAAAAQrN+/friILcXfuoyAAAAQduzZ087YXugcgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABrJ3b/sBAHp2cPt3AIBAdMbtwf5bBYD++OQAAMLQ7eRW6ALQDx8bAECjellLFroA9MxnBgDQhEni9qqr2g9XXtl+aBG6APTGBwYAUKNe4rbT/tBVuQD0xgcGAFC9fuO2k9AFoB8+LQCAygwSt/vZWwagHz4qAICydYvb3sv2AI5zAeiZjwoAoCSlx20noQtAb3xOAACDqTRuOwldAHrgQwIAmJba4nY/F3QB6IFPCACgZ6X8NKlBOM4FYCo+IQCAqTQet52ELgCT8vEAAHQRVNx2EroAdOezAQAYK9i43c8FXQC688EAAIwKP247Oc4FoAsfDACQt7jitpPQBWAiPhUAIEvxxu1+9pYBmIiPBADISQJx28lxLgDj+EgAgAx0i9sYy/YAQheAsXweAEC6Eo7bTkIXgA4+DAAgOZnE7X4u6ALQwScBAKQit7jt5DgXgH18EgBA5HKO205CF4BRPgYAIELdyrYlt7jtJHQBULkAEBNxOzkXdAFQuQAQAXHbO8e5ANnzAQAAoRK30yN0AfJm+gNAYMTtgOwtA+TN6AeAMIjbEjnOBciY0Q8AjRK3FRG6ALky9wGgCeK2BkIXIEuGPgDUqFvcKtsquKALkCUTHwCqJ26b4jgXID8mPgBURtyGQOgCZMa4B4CyidvQCF2AnJj1AFAScRssF3QBcmLQA8AAupVti7gNiuNcgGwY9ADQP3EbI6ELkAdTHgB6Jm6jZm8ZIA9GPABMRdwmw3EuQAaMeADoQtwmSegCpM58B4CxxG3yhC5A0gx3ABglbvPhgi5A0kx2APImbvPkOBcgXSY7AFnqFrfKNh9CFyBRxjoAORG3dBK6ACky0wHIgLhlQi7oAqTIQAcgXeKWKTnOBUiOgQ5AcsQtfRG6AGkxzQFIQreybRG3TM7eMkBajHIAYiZuKYXjXICEGOUAREjcUjqhC5AKcxyAeIhbKiV0AZJgiAMQPHFLPVzQBUiCCQ5AqMQt9XOcCxA/ExyAwIhbmiV0ASJnfAMQBnFLOIQuQMzMbgAa1S1ulS0NckEXIGYGNwBNELcEznEuQLQMbgBqJG6JiNAFiJOpDUD1xC0xsrcMECcjG4DKiFti5zgXIEJGNgCl6la2LeKWGAldgNiY1wCUQdySMKELEBXDGoABiFty4IIuQFRMagD6J27JjeNcgHiY1AD0TNySM6ELEAljGoCpiFsoCF2AGJjRAHQhbuEALugCxMCABmAscQuTcJwLEDwDGoBR3eJW2cIBhC5A2ExngLyJW+iXvWWAsBnNAFkStzAIx7kAATOaAXIibqEsQhcgVOYyQAbELVRB6AIEyVAGSFS3sm0Rt1AKF3QBgmQiA6RF3EKdHOcChMdEBkiCuIWmCF2AwBjHADETtxACoQsQErMYIELiFoLigi5ASAxigHiIWwiW41yAYBjEAMETtxAFoQsQBlMYIFTiFuJibxkgDEYwQGC6xa2yhfA5zgUIgBEMEAZxC2kQugBNM38BGiVuIT1CF6BRhi9AE8QtJMwFXYBGmbwANRK3kAnHuQDNMXkBKtatbFvELSRM6AI0xNgFqIa4hczZWwZoiJkLUCpxC+wndAGaYOAClEHcAhOytwxQOwMXYADiFpiS0AWol2kL0D9xC/TO3jJAvYxagJ6JW2B6HOcC1MioBZiKuAUGJ3QB6mLOAnTRLW6VLTA9QhegFoYswFjiFqiIC7oAtTBhAUaJW6AGjnMBqmfCAnkTt0DNhC5AxYxXID9+mhTQIHvLABUzW4FsiFsgEEIXoEoGK5A6cQsEyN4yQGUMViBR4hYInNAFqIapCqRF3AKxsLcMUA0jFUiCuAVi5DgXoAJGKhAzcQvETugClM08BSIkboGUCF2AUhmmQDzELZAkF3QBSmWSAsHrFrfKFkiG41yA8pikQKjELZAVoQtQEmMUCIy4BfJkbxmgJGYoEAZxCyB0AcpggALN8dOkAA5gbxlgYAYoUDtxCzAJoQswGNMTqIu4BeiFvWWAwRidQMXELUC/HOcCDMDoBKohbgEGIXQBpsvcBEolbgHKInQBpmWo/TskbeXKlffee+/27dt3797d+p+t5y9+8YtDQ/7vvzytuC1+jdeK2+IXANMzyV8gAjCOvxokcQsWLPjDH/6wePHi9tcdnnrqqeXLlz/99NPtr5kGJ7cAlXKcC9A/E5OUjYyMrFu37rjjjms9P/HEEz/72c/+/e9/z5kz58ILL/zoRz/aerlly5YPf/jDmzdvHv3j9Kxb3CpbgNIJXYA+GZekbPXq1Zdddlnr4Y477vj0pz/99ttvF+9bfvSjH1166aWthxtuuOELX/hC8ZIpiFuA+u2v3BahC9ADs5JkzZw585VXXjnssMNee+21o48+evv27e1vjBoaGnrhhReOOuqoN998c/bs2Xv27Gl/g/HELUCzHOcC9MNP3yFZS5cubSVu6+H2228/IHFb3n777bVr17YeDjnkkJNPPrl4yRituC1+HaAVt8UvAOqxf+R2+2tHADr4G0FSNnv27I997GPPPvvsM888037VYc2aNWeffXbr4cQTT3zssceKlzi5BQiUE12A3piSZGpkZOSll1467LDDtm3bNnfu3M4ruzma5HBA3AIEwgVdgN7YWCZHhx9++C233FLsM//gBz/IN3GLheQJE7fYSZa4AOEwkwF64y8CychHPvKRBQsWnHrqqRdccMHcuXNbb1qtu2LFiuK7GXFyCxAve8sAUzEfycj27dvf+c53tr846KCf//znF110UfuLHIhbgDQIXYBJGY7kYmhoaPfu3du2bZsxY8aRRx5ZvPzXv/513nnnPfjgg8WXaRK3AIlxQRdgUiYjGWmFbnEFd8GCBd/4xjdWrVrVen7jjTdOOeWU9evXj/6RhIhbgIQ5zgXozmQkX9dcc81XvvKV1sM//vGPJUuWFC+jJ24BMiF0AbowFsnX8PDwli1bjjjiiNbzMcccs2nTpuJ9lMQtQG7sLQN0YSaStTVr1px99tmth0996lN333138TIm3eJW2QLkwHEuwET8e7kka3h4ePHixcuWLZs/f3771Ti7du0qHmbOnFk8xKEVt8WvA7TitvgFQA72D/xJNnoA8qNySda111778MMP33HHHUuXLm2/Gufoo48uHrZu3Vo8BE3cAnAAoQswjv0WkrV8+fLbb7+99XD//feffvrpxctOxx577DPPPDNjxoxXX331Xe96V/Hjl0PU7T9cZC0ALS7oAoxlFJKsmTNnbtq06aijjmo9n3POObfeemvxvjB79uw//elPp556auv5O9/5zuWXX168D4i4BaBHLugCdDAKSdm55557yy23tB7efPPNK6644rrrrtu+ffvQ0NDSpUu///3vf+hDH2p96/HHHz/llFN27tw5+r/RtEn2zcQtAJMQugD7mIMk7rLLLlu9enXx/NZbb73++uuzZs065JBDijePPvroxz/+8c2bNxdfNkbcAjA4oQswyhAkfaeddtoPf/jDxYsXt78etWXLlh//+MdXX3317t27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\",\"relationship\":null}],\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"target\":\"/matlab/document.xml\",\"relationshipId\":\"rId1\"}]}"},{"id":43007,"title":"Euclidean inter-point distance matrix","description":"The Euclidean distance between two points in a p-dimensional space is a really common thing to compute in the field of computational geometry. In fact, it is pretty easy to do. norm(u-v) would seem to do the trick, for vectors u and v.\r\n\r\nBut what if you have a large number of points between which you want to compute ALL of those distances between every pair of points? In this problem, given an n by p array A, where each row of the matrix will be viewed as containing the coordinates of one p-dimensional point, you need to compute the n by n inter-point distance matrix.\r\n\r\nThus, D(i,J) will be the Euclidean distance between the i'th and j'th rows of A. Of course, D will be a symmetric matrix, with zeros on the diagonal.\r\n\r\nSo you can test your code, here is an example:\r\n\r\n  A = [1 1\r\n       5 2\r\n       2 2\r\n       4 5]\r\n\r\n  format short g\r\n  D = interDist(A)\r\n  D =\r\n         0       4.1231       1.4142            5\r\n    4.1231            0            3       3.1623\r\n    1.4142            3            0       3.6056\r\n         5       3.1623       3.6056            0\r\n\r\nThus, thinking of the points [1 1] and [5 2] as the coordinates of two points in the (x,y) plane, the Euclidean distance between them in that plane is 4.1231...\r\n\r\nAs you can see, the matrix is symmetric, with zeros on the main diagonal. That must always happen, since the distance between any point and itself must be zero.","description_html":"\u003cp\u003eThe Euclidean distance between two points in a p-dimensional space is a really common thing to compute in the field of computational geometry. In fact, it is pretty easy to do. norm(u-v) would seem to do the trick, for vectors u and v.\u003c/p\u003e\u003cp\u003eBut what if you have a large number of points between which you want to compute ALL of those distances between every pair of points? In this problem, given an n by p array A, where each row of the matrix will be viewed as containing the coordinates of one p-dimensional point, you need to compute the n by n inter-point distance matrix.\u003c/p\u003e\u003cp\u003eThus, D(i,J) will be the Euclidean distance between the i'th and j'th rows of A. Of course, D will be a symmetric matrix, with zeros on the diagonal.\u003c/p\u003e\u003cp\u003eSo you can test your code, here is an example:\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003eA = [1 1\r\n     5 2\r\n     2 2\r\n     4 5]\r\n\u003c/pre\u003e\u003cpre class=\"language-matlab\"\u003eformat short g\r\nD = interDist(A)\r\nD =\r\n       0       4.1231       1.4142            5\r\n  4.1231            0            3       3.1623\r\n  1.4142            3            0       3.6056\r\n       5       3.1623       3.6056            0\r\n\u003c/pre\u003e\u003cp\u003eThus, thinking of the points [1 1] and [5 2] as the coordinates of two points in the (x,y) plane, the Euclidean distance between them in that plane is 4.1231...\u003c/p\u003e\u003cp\u003eAs you can see, the matrix is symmetric, with zeros on the main diagonal. That must always happen, since the distance between any point and itself must be zero.\u003c/p\u003e","function_template":"function D = interDist(A)\r\n  % compute the interpoint distance matrix between rows of A\r\n  D = A;\r\nend\r\n\r\n","test_suite":"%%\r\nA = eye(3);\r\ny_correct = (1-A)*sqrt(2);\r\ntol = 10*eps;\r\nassert(norm(interDist(A)-y_correct) \u003c tol)\r\n\r\n%%\r\nA = (1:4)';\r\ny_correct = [     0     1     2     3;...\r\n     1     0     1     2;...\r\n     2     1     0     1;...\r\n     3     2     1     0];\r\ntol = 10*eps;\r\nassert(norm(interDist(A)-y_correct) \u003c tol)\r\n\r\n\r\n\r\n\r\n%%\r\nA = magic(3);\r\ny_correct = [0       6.48074069840786 9.79795897113271; ...\r\n  6.48074069840786                0 6.48074069840786; ...\r\n  9.79795897113271 6.48074069840786                0];\r\ntol = 1000*eps;\r\nassert(norm(interDist(A)-y_correct) \u003c tol)\r\n\r\n%%\r\nA = reshape((1:20).^2,4,5);\r\ntol = 1e-12;\r\ny_correct = [0 49.4469412603045 102.761860629321 160.015624237135; ...\r\n   49.4469412603045 0 53.3385414123783 110.634533487515; ...\r\n   102.761860629321 53.3385414123783 0 57.3149195236284; ...\r\n   160.015624237135 110.634533487515 57.3149195236284 0];\r\nassert(norm(interDist(A)-y_correct) \u003c tol)\r\n\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":544,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":28,"test_suite_updated_at":"2016-10-02T16:43:44.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2016-10-02T13:56:26.000Z","updated_at":"2026-04-02T13:14:06.000Z","published_at":"2016-10-02T16:43:44.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe Euclidean distance between two points in a p-dimensional space is a really common thing to compute in the field of computational geometry. In fact, it is pretty easy to do. norm(u-v) would seem to do the trick, for vectors u and v.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eBut what if you have a large number of points between which you want to compute ALL of those distances between every pair of points? In this problem, given an n by p array A, where each row of the matrix will be viewed as containing the coordinates of one p-dimensional point, you need to compute the n by n inter-point distance matrix.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThus, D(i,J) will be the Euclidean distance between the i'th and j'th rows of A. Of course, D will be a symmetric matrix, with zeros on the diagonal.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eSo you can test your code, here is an example:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[A = [1 1\\n     5 2\\n     2 2\\n     4 5]\\n\\nformat short g\\nD = interDist(A)\\nD =\\n       0       4.1231       1.4142            5\\n  4.1231            0            3       3.1623\\n  1.4142            3            0       3.6056\\n       5       3.1623       3.6056            0]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThus, thinking of the points [1 1] and [5 2] as the coordinates of two points in the (x,y) plane, the Euclidean distance between them in that plane is 4.1231...\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eAs you can see, the matrix is symmetric, with zeros on the main diagonal. That must always happen, since the distance between any point and itself must be zero.\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":60979,"title":"Mesh the cube","description":"Problem statement : mesh the cube with quadranglar / squared faces\r\n\r\nAn cube / regular hexahedron is a regular polyhedron with 8 vertices and 6 squared / quadrangular faces. It is also one of the five well known platonic solids.\r\nA quadrangular mesh F (stands for faces here) is simply a N x 4 matrix of positive integers where each row contains the vertex indices of squared faces, and where N is the number of faces. \r\n\r\nYour task here is to mesh this cube. To do so, you will list the squares/rows in a matrix of faces, F. You will also be careful to always keep the faces coherently / consistently oriented (all clockwise or all counterclockwise : square [1, 2, 3, 4] and [4, 3, 2, 1] are distinct).\r\nOn the other hand [1, 2, 3, 4], [2, 3, 4, 1], [3, 4, 1, 2] and [4, 1, 2, 3] are one same unique square.\r\nThe row order of the faces in the list doesn't matter.\r\n\r\nEdit / update\r\nFaces orientation not taken into account anymore, because of too many possible cases to check in the tests (!)\r\n\r\nExample\r\nThe first square (Z \u003e 0) here can be [1, 2, 3, 4] if counterclockwise oriented (normals outward).\r\n\r\n\r\n\r\nForbidden functions / expressions\r\nregexp\r\nassignin\r\nstr2num\r\necho\r\n\r\nSee also\r\nMesh processing\r\nMesh generation toolbox","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.4333px; min-height: 0px; white-space: normal; color: rgb(0, 0, 0); font-family: Menlo, Monaco, Consolas, monospace; font-style: normal; font-size: 14px; font-weight: 400; text-decoration: rgb(0, 0, 0); white-space: normal; \"\u003e\u003cdiv style=\"block-size: 1194.73px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 408px 597.367px; transform-origin: 408px 597.367px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 229.433px 8px; transform-origin: 229.433px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eProblem statement : mesh the cube with quadranglar / squared faces\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 21px; text-align: left; transform-origin: 385px 21px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 376.933px 8px; transform-origin: 376.933px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eAn cube / regular hexahedron is a regular polyhedron with 8 vertices and 6 squared / quadrangular faces. It is also one of the five well known platonic solids.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 21px; text-align: left; transform-origin: 385px 21px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 68.8583px 8px; transform-origin: 68.8583px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eA quadrangular mesh \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 4.275px 8px; transform-origin: 4.275px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003eF\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 36.9417px 8px; transform-origin: 36.9417px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e (stands for \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 16.725px 8px; transform-origin: 16.725px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003efaces\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 54.8417px 8px; transform-origin: 54.8417px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e here) is simply 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: 5.05833px 8px; transform-origin: 5.05833px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\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: 185.533px 8px; transform-origin: 185.533px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e x 4 matrix of positive integers where each row contains the vertex indices of squared faces, and where \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 5.05833px 8px; transform-origin: 5.05833px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\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: 74.6667px 8px; transform-origin: 74.6667px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e is the number of faces. \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 63px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 31.5px; text-align: left; transform-origin: 385px 31.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 296.108px 8px; transform-origin: 296.108px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eYour task here is to mesh this cube. To do so, you will list the squares/rows in a matrix of faces, \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 7.25833px 8px; transform-origin: 7.25833px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003eF. \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 80.6583px 8px; transform-origin: 80.6583px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eYou will also be careful to always keep the faces coherently / consistently oriented (all clockwise or all counterclockwise : square \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 31.1px 8px; transform-origin: 31.1px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003e[1, 2, 3, 4]\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 15.5583px 8px; transform-origin: 15.5583px 8px; unicode-bidi: normal; \"\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: 17.4917px 8px; transform-origin: 17.4917px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003e[4, 3, 2, 1]\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 40.0583px 8px; transform-origin: 40.0583px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e are distinct).\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 58.3417px 8px; transform-origin: 58.3417px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eOn the other hand \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 31.1px 8px; transform-origin: 31.1px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003e[1, 2, 3, 4]\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 3.88333px 8px; transform-origin: 3.88333px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e, \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 66.0833px 8px; transform-origin: 66.0833px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003e[2, 3, 4, 1], [3, 4, 1, 2]\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 15.5583px 8px; transform-origin: 15.5583px 8px; unicode-bidi: normal; \"\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: 31.1px 8px; transform-origin: 31.1px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003e[4, 1, 2, 3]\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 92.975px 8px; transform-origin: 92.975px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e are one same unique square.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 158.842px 8px; transform-origin: 158.842px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe row order of the faces in the list doesn't matter.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 41.9833px 8px; transform-origin: 41.9833px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eEdit / update\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 342.275px 8px; transform-origin: 342.275px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eFaces orientation not taken into account anymore, because of too many possible cases to check in the tests (!)\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 28.7833px 8px; transform-origin: 28.7833px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eExample\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 50.5583px 8px; transform-origin: 50.5583px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe first square \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 20.8083px 8px; transform-origin: 20.8083px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003e(Z \u0026gt; 0)\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 42.7833px 8px; transform-origin: 42.7833px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e here can be [\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 29.1583px 8px; transform-origin: 29.1583px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003e1, 2, 3, 4]\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 148.208px 8px; transform-origin: 148.208px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e if counterclockwise oriented (normals outward).\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 378px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 189px; text-align: left; transform-origin: 385px 189px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cimg class=\"imageNode\" width=\"504\" height=\"378\" style=\"vertical-align: middle;width: 504px;height: 378px\" src=\"data:image/png;base64,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I44ujcVI2ihIG0AMPvaAto13geBXbRSKdWruOWOEXVCF+nyLijdSKIYjjs6MxUjXKHQ7bbhFBXJjugKtGskE8dNG91i3Va63gcN7KRTDEUc3xqJvaSMROCA3blEBWjJyT0fwG1K6yqKNShRvJO+lUAxHHN0Yi/EbUtyTAoTk8w9onKs2grAFqknfruDwRorGiMTRgbHo+bM2XMEBuXEFB9Cgkas2CupGWyzXqIQ3UjRGJIhiIHIfi9f7R1KA/AgcQCMmpg11oxUdWHYThDdSNEYkiI6ljYK0AWTCByFQs5GuUdA1WmT/04A+3KLijRSQQQki64EY6RqFnqcNt6hAblzBAdGdeuqpl1xyyW233bZ58+bia3H8ohe9aM2aTCavqzZCsUSjEt5I0RQjYlCCyHcgJl614cINIDc+DiGufffd98Mf/vAhhxwy+H7I17/+9eOOO+6qq64afB+QZ21EY//TmG5fweGNFI0RiSPrujFM1yi5ggNyY7pCUOvXr//iF7/4iEc8ojj+2te+9r//9/++7rrr9thjj1NOOeXxj3988eJNN9108MEH33jjjSt/PRJpIyCLsyZ1OHB4I0VjROLIdCykjdUJHJAb0xWCOuuss17+8pcXB+9///uf8YxnbN26Nb1eOPfcc3/jN36jOHjHO97xwhe+ML0YgsdtBGRZ1ryuBg7vpWiMSBw5joW0MQuBA3JjukJEa9eu/cEPfrDbbrv96Ec/2m+//W677bbBD1asWbPm+uuv32effe66665dd911y5Ytgx+0SNqIyZqsFd0LHN5IARmUOLIbi5G0UVA3phE4IDceMgoRHX300bvttltx8Fd/9VcjdaOwdevWyy+/vDjYcccdDz300PRia7b591+jsiCjEt5IARmUOPIai9d7kijQcQIHRHTJJZfstttuT3va01772tcOXrqvtWvXpoMf//jH6aAd0kZY9j9UwhspIIMSR0ZjIW0A/eAzEvKzfv36733ve7vtttvGjRv33HPP4cdzNGc8bRCH/U+7OnOLijdSQAYliLwGYjxtMCO3qEBuXMEBmXngAx940UUXpRtY3vSmN7VQN0buSXHVRijFIsw6jEp4IwVkUILIaCBGLtxw1QbQdT4pIQ+HHXbYvvvue8QRR5x88sl77rln8cpFF1100kknpZ82ZOSqjYK0EYrNTxC5X8HhjRSTcQkil4EYuWqjIG0swBUckBvTFfJw2223PeABDxh8c88H7tte/OIXD75pgLQRn+VXHFkHDm+kgAxKHFmMhbRRIYEDcmO6QgbWrFmzefPmjRs37rDDDrvvvnt68Zvf/OZzn/vcz3/+8+nbukgbWbD2CiXfwOGNFJBBiSP+WEgblRM4IDeewQEZ2Lp167p16/baa6+f/Mmf3G+//d7xjncULz7iEY/45Cc/edBBB6W/U4uRuuFxGwEVqy4LLyrhjRSQQYkj+FiMPGuj4HEbQC8JHJCH8mGiN9xwwwtf+MJzzjmnON5ll13OO++89HrFtnmSaA5sfqhE8UbyXgrIoMQRv24MkzaAHvPZCVlat27dTTfd9KAHPag4fvCDH3zttdem1yvgnpRc2PyEldctKt5IMRmXOCKPxXjaoFpuUYHcuIIDsrR58+ZLL700HT/60Y9OB8sauWqj4MKNsCy2qIQ3UkzGJY6wYzHxnhSA3hM4IKJ169YdcsghxxxzzN577z14acydd96ZDtauXZsOFidt5MXmh0p4I8VkXIIoBiLmWExMG+oGwAqBAyJ6y1ve8o//+I/vf//7jz766MFLY/bbb790cMstt6SDKv3O79znD0GEXXCTZDRA3kgxGZcgYg6EtAGwPT5HIaLjjjvur/7qr4qDyy677KijjkovDnv4wx/+jW98Y4cddvjhD3/4Ez/xE+UjSBc0/tyN1bm4oxV2PsGVA3T88YODmM/g8EYKy9AEEbZuDNM1muEZHJAb0xUiWrt27bXXXrvPPvsUx8985jPf+973pteTXXfd9WMf+9gRRxxRHL/uda975StfmV5fXBk4yo1ZYaWwzEryqJvVVXDDAxQ5cHgjxWRc4gg4FtJGiwQOyI3pCkGdeOKJF110UXFw1113nXbaaX/6p3962223rVmz5uijj/7DP/zDn/3Zny1+9JWvfOVxj3vcpk2bVv5fLGFi4BgxV+8oSB4VsrQKbmSAwgYOb6SYjEsc0cZC2midwAG5MV0hrpe//OVnnXVWOr777rvvuOOOnXfeeccdd0yvXHnllU996lNvvPHG9O1SZgkc41zi0QzrquDGByhm4PBGism4xBFqLEbSRkHdaIXAAbkxXSG0I4888pxzzjnkkEMG36+46aabNmzYcPbZZ2/evHnw0pIWCxzjJI9qWVEFN22AAgYO76WYjEscccZC2ghF4IDcmK6QgQMOOOCQQw7Zaaedtm7d+q//+q//8A//MPhBVaoKHCP0jmVYTgW3ygCFChzeSGEZmjiCjIW0EZDAAbkxXYHaAsc4yWNG1lLBrT5AcQKHN1JYhiaOIGPhcRsxCRyQG9MVaDBwjPDg0okspILb7gAFCRzeSGEZmjgijIW0EZnAAbkxXYH2Ase4nl/iYQkV3yxjFCFweC+FZWiCiDAQ0kZ8AgfkxnQFIgWOcf1JHtZPwc0+QO0GDm+kyIxOEK0PhMdt5ELggNyYrkDswDGiq73D4im4uQaoxcDhjRSZ0Qmi3YGQNvIicEBuTFcgq8AxrgPJw8opuHkHqK3A4Y0UlqGJo8WxkDZyJHBAbkxXIPPAMSK7B5daNgW3wAC1Eji8kcIyNHG0OBYet5EpgQNyY7oC3Qoc48Je4mHBFNzCA9R84PBeCsvQxNHWWEgbWRM4IDemK9D1wDEuQvKwWgpumQFqMnB4I0VmdOJoZSykjQ4QOCA3pivQv8AxovneYakU3JID1Fjg8EaKzOjE0fxYeNxGZwgckBvTFeh94BhXa/KwTgpu+QFqJnB4I0VmdOJoeCykjY4ROCA3pisgcGxPhQ8utUgKrpIBaiBweCNFZnTiaHIspI1OEjggN6YrIHDMb4FLPCyPgqtwgOoOHN5LkRmdIBoeCI/b6CqBA3JjugICRxXmSh5vfvPggCCqXbzWFzgssoMzQEE0ORDSRrcJHJAb0xUQOGqgd2Sk8pVrTYHDCjs4AxREYwPhnpQ+EDggN6YrIHA0QvKIqY5lax2Bw/I6MqMTRzNjIW30h8ABuTFdAYGjDfM+uFTyqENNa9bKA4e1dWRGJ44GxkLa6I+0NHr72+/5appDPkxXQOCIwSUeTap1tVpt4LCwjszoxFH3WEgbPVGuiBKBA3JjugICR1SSR03qXqpWFTgsqYMzQHE0XDekje4Z6RolgQNyY7oCAkcm9I5KNLBOrSRwWE8HZ4DiqHUspI1um9Y1SgIH5MZ0BQSObEke82pmkbp84LCYDs4AxVHfWLgnpdu2mzYSgQNyY7oCAkeHSB7TNLk8XTJwWEkHZ4DiqGkspI0Om7FrlAQOyI3pCggc3aV3JA2vTRcOHNbQ8RmjIKQN5jJv1ygJHJAb0xUQOPqkh8mj+YXpYoHDAjo4AxRHM3VD2uiAhbtGSeCA3JiugMDRY3P1jkJ2yaOVVekCgcPqOTgDFEcdYyFtdMzyXaMkcEBuTFdA4GBIly7xaGtJOm/gsHQOzgDFUflYSBtdUmHXKAkckBvTFRA4WFWOyaPdxehcgcO6OTgDFEe1Y+FxG51RR9coCRyQG9MVEDiYR/ze0fpKdMbAYcUcnAEKpcLhkDa6odauURI4IDemKyBwsJxQySPCMjTNo+L/J29968r3k1guB2eAQqlqOKSNDmima5QEDsiN6QoIHFSqxQeXBlmDFvMo/f9kWuCwVg7OAIVS1XB43EbuGk4bicABuTFdAYGDmjVziUecBegznjE4mBg4LJSDM0ChVDIc0ka+WokawwQOyI3pCggcNK7a5BFt6blK4LBKDs4AxSFt9FbrUWOYwAG5MV0BgYO2LdM7Aq47JwYO6+PgDFAoyw+Hx21kJ1TXKAkckBvTFRA4iGeu5HHOOYODIMYDh8VxcAYolCWHQ9rISMyoMUzggNyYroDAQXjzPri03eQxEjisjIMzQKEsMxzSRhbiR41hAgfkxnQFBA4yFPkSj+HAYVkcnAEKpcK6IW2EklfUGCZwQG5MV0DgoBPiJI8ycGzYMDggJpuWUBYeDmkjrHy7RknggNyYroDAQRe12DsEjvhsV6JZbESkjYA6EDWGCRyQG9MVEDjoh8aSh8ARnL1KNAuMiMdthNKxqDFM4IDcmK6AwEEv1ffgUoEjMhuVaOYdEWkjiA5HjWECB+TGdAUEDlhR1SUeAkdYdinRzDUi0kYEPekaJYEDcmO6AgIHTLFY8hA4ArI/iWbeEfG4jRb1LWoMEzggN6YrIHDAbObqHddeK3BEYXMSzVwjIm20os9RY5jAAbkxXQGBAxY1V/J4+csHBzTJziSa2UfEPSkNEzXGCRyQG9MVEDigIvM+uFTyqJttSTQzjoi00RhRY3UCB+TGdAUEDqhUOY82bLjfFVcMjmehd1TLniSaWUZE2miGrjEjgQNyY7oCAgdUajhwjJM8GmA3EtB2B0XaqJuosQCBA3JjugICB1Rq9cAxQu+onK1IQPPWDWmjKqLGkgQOyI3pCggcUKm5Asc4yWMZ9iEBrT4o0kblRI0KCRyQG9MVEDigCuU8esYzBgdV/TOxkseMbEICWmVQ3JNSLV2jDgIH5MZ0BQQOWML4pqLywDFC75jIDiSgaYMibVRF1KibwAG5MV0BgQPmtPqmou7AMa7nycPeIyBpoz6iRpMEDsiN6QoIHDCbGfcVzQeOEXP1jkLWycPGI6AZ64a0MTtRoy0CB+TGdAUEDphugX1F64FjXFcv8bDrCGjioEgbi9E1WidwQG5MV0DggDHL7CsCBo5xHUgethwBjQ+KtDEvUSMUgQNyY7oCAgesqGpfkUXgGJFX77DZiGlkXDxuY3aiRlgCB+TGdAUEDvqt8q1FjoFjXNjkYacR0/C4SBuzEDWyIHBAbkxXQOCgf2rdWnQjcIwI8uBS24yYynGRNlYnamRH4IDcmK6AwEE/NLa16GTgGNf8JR72GDFNqxvSRknXyJfAAbkxXQGBg05rfmvRk8AxrtbkYYMRUxoXaWOcqNENAgfkxnQFBA46p92tRW8Dx4iqeoetRVjF0Egbw0SN7hE4IDemKyBw0BVBdhcCxzQLJA/7ipjG00ahn3VD1Og2gQNyY7oCAgc5C7i7EDhmNO+DS3/v9wYHtOusswYHpR6mDV2jJwQOyI3pCggcZCjy7kLgWNhcyUPvaF7P04ao0UMCB+TGdAUEDjKRy+5C4KiQ5BHHSN3oSdoQNXpO4IDcmK6AwEFgOe4uBI766B2t6FvaEDUoCRyQG9MVEDiIJ+sNhsDRJMmjVr1KG7oG4wQOyI3pCggcxNCZ3YXA0SIPLq1KTx63IWqwOoEDcmO6AgIHrereBkPgCMUlHvPqfNoQNZidwAG5MV0BgYPGdXuDIXAEJ3lM0+G0IWqwGIEDcmO6AgIHTenJHkPgyIvekXTycRu6BksSOCA3pisgcFCnHm4wBI7c9S15dCxtiBpUSOCA3JiugMBB1Xq+wRA4OqbDDy7tzD0pogY1ETggN6YrIHBQEXuMRODovA5c4tGBtOGEQwMEDsiN6QoIHCzBHmOcwNFDGSWPrNOGEw4NEzggN6YrIHAwP9uMVQgcxOwd+aYNJxzaInBAbkxXQOBgNvYYMxI4GNd68sjuSaJOOEQgcEBuTFdA4GBVthnzEjiYRWPJI6O04WxDNAIH5MZ0BQQOxthmLEPgYAF19I4s7klxtiEygQNyY7oCAgcrbDOqInBQiWWSR/y04YRDFgQOyI3pCggc/WabUTmBgzrM1TuGxUkbzjZkR+CA3JiugMDRP7YZtRI4aMZ2k0eEtOFsQ9YEDsiN6QoIHL1hp9EMgYO2lMmj3bThVENnCByQmzWD/wLQScVOo/wDdNvjHz84aIVTDQBtEzgAushOA2hAeapxtgEgAIEDoCvsNIAGONUAEJXAAZAzOw2gAU41AORA4ADIkJ0G0ACnGgCyInAAZKLcadhsAPVxqgEgWwIHQGx2GkDdyvOMUw0AORM4AOKx2QDq5jwDQOcIHABh2GwAtSpPMs4zAHSRwAHQKvsNoG5OMgD0g8AB0Lhys2G/AdTEeQaA/hE4AJpiswE0w3kGgF4SOADqVEYN+w0AAKiTwAFQA1EDmMevHnvsbR//ePFnjwc9aPASADAngQOgImXU0DWAeRz44Ae/+aUvfcCuuxZ/Bi8BAPMTOACWI2oAS1izZs1FZ5yxy047Db4HABYlcADMr4waugawnFe/4AU/d+CBg28AgCUIHAAzEzWASh1+8MG//7znFQf/dvvt6RUAYGECB8CqyqihawCVWr/LLu9+9auLg49eccXffO5z6UUAYGECB8AYUQOo3x+/7GUP3nvvmzZuPPV1rxu8BAAsQeAAuJeoATTlhCc96Vee+tTi4MVnn33jrbemFwGAZQgcQL+VUUPXAJqy7x57nPfylxcHf/7Rj37gssvSiwDAkgQOoJdEDaA9f/kHf7D7Ax7wrzfc8BtvfvPgJQBgaQIH0Ce6BtC23z7ppCcdckhx8CtnnHH7j3+cXgQAlidwAD2gawAxHPTwh5/1a79WHJz9l395+Ze+lF4EACohcADdpWsAkazbcceLzjxzx7Vrv/Ltb//+eecNXgUAKiJwAJ2jawAhveHXf/1RD3vYnXfd9axXvWrL3XcPXgUAKiJwAF2hawCBHX3oof/jmc8sDs78sz/71nXXrdtxx+E/O6wZLMnKV9bc+woAMKP7D/4L9FkZBY4/fnCQEUWDaJ7xjMHBhg2DA7jf/d7+e7/3gl/+5cE3M3jay17211dcMfhmdun/yQtfuPINsJy3v/2er/e3Y4Js+D8OAHlyvQYAADBEjwSyuoJD0SA+V3AwyUn/+T8ffvDBg2/GPPlxj3vEAQcUB+/40IfuvOuu4uBPLr74n6++euWH83AFB1TIFRyQG9MVyCFw6BpkROBgfheeccazjj66ONjzqU+95d/+Lb24CIEDKiRwQG7cogIEts19KAAAwEwEDiAeXQMAAJiTwAGEoWsAAACLEjiAtukaAADA0gQOoCW6BsC9TnrVq+7/+McXf5Z6wigA9JvAATRL1wAAAGogcACN0DUAAIA6CRxAnXQNAACgEQIHUANdAwAAaJbAAVRH1wAAAFoicABL0zUAAIC2CRzAonQNAAAgDIEDmJOuAQAAxCNwALPRNQAAgMAEDmBVugYAAJADgQOYRNcAAACyInAAQ3QNAAAgTwIHAAAAkD2BAwAAAMiewAEAAABkT+AAAAAAsidwAAAAANkTOAAAAIDsCRwAAABA9gQOAAAAIHsCBwAAAJA9gQMAAADInsABAAAAZE/gAAAAALIncAAAAADZEzgAAADua9u2wQGQD4EDAABgxbZtgz9AhgQOAACg33QN6ASBAwAA6CVdA7pF4AAAAPpE14COEjgAAIAe0DWg6wQOAACgu3QN6A2BAwAA6BxdA/pH4AAAADpE14C+EjgAAID8uWQDek/gAAAAsqVrAPcSOAAAgNzoGsAYgQMAAMiErgFMJ3AAAACx6RrADAQOAAAgJF0DmIfAAQAARKJrAAsROAAAgAB0DWA5AgcAANAqXQOogsABAAC0wSUbQKUEDgAAoEG6BlAPgQMAAKifrgHUTOAAAABqo2sATRE4AACAqukaQOMEDgAAoCK6BtAegQMAAFiOrgEEIHAAAAAL0TWASAQOAABgHroGEJLAAQAAzEbXAAITOAAAgFW5ZAPIgcABAABMomsAWRE4AACAIboGkCeBAwAA0DWA7AkcAADQY7oG0BUCBwAA9I+uAXSOwAEAAL2hawDdJXAAAEDX6RpADwgcAADQUboG0CcCBwAAdEgZNXQNoGcEDgAAyJyoASBwAABAlkQNgPsSOAAAIBOiBsB0AgcAAMQmagDMQOAAAIB4yqihawDMRuAAAIAYRA2AJQgcAADQHlEDoCICBwAANE7UAKiawAEAAI0oo4auAVADgQMAAGojagA0ReAAAIBKiRoAbRA4AACgCqIGQKsEDgAAWFQZNXQNgLYJHAAAMA9RAyAkgQMAALZH1AAIT+AAAIBJRA2ArAgcAAAwRNQAyJPAAQBA75VRQ9cAyJbAAQBAL4kaAN0icAAA0BuiBkB3CRwAAHSdqAHQAwIHAABdVEYNXQOgHwQOAAC6QtQA6DGBAwCAnIkaAKwQOAAAyJCoAcB9CRwAAGSijBq6BgBjBA4AAAITNQCYjcABAEAwogYA8xM4AACIQdQAYAkCBwAA7Smjhq4BwHIEDgAAmiVqAFADgQMAgPqJGgDUTOAAAKAeogYADRI4AAColKgBQBsEDgAAllZGDV0DgJYIHAAALETUACASgQMAgJmJGgBEJXAAALA9ogYA4QkcAABMUkYNXQOAHAgcAADcS9QAIFsCBwBAv4kaAHSCwAEA0EuiBgDdInAAAPRGGTV0DQA6R+AAAOg0UQOAfhA4AAA6R9QAoH8EDgCAbhE1AOglgQMAAADInsABAAAAZE/gAAAAALIncAAAAADZEzgAAACA7AkcAAAAQPYEDgAAACB7AgcAAACQPYEDAAAAyJ7AAQAAAGRP4AAAAACyJ3AAAAAA2RM4AAAAgOwJHAAAAED2BA4AAAAgewIHAAAAkD2BAwAAAMiewAEAAABkT+AAAAAAsidwAAAAANkTOAAAAIDsCRwAAABA9gQOAAAAIHsCBwAAAJA9gQMAAADInsABAAAAZE/gAAAAALIncAAAAADZEzgAAACA7AkcAAAAQPYEDgAAACB7AgcAAACQPYEDAAAAyJ7AAQAAAGRP4AAAAACyJ3AAAAAA2RM4AAAAgOwJHAAAAED2BA4AAAAgewIHAAAAkD2BAwAAAMiewAEAAABkT+AAAAAAsidwAAAAANkTOAAAAIDsCRwAAAD3tW3b4ADIh8ABAACwYtu2wR8gQwIHAADQe7oG5E/gAAAA+solG9AhAgcAANAzugZ0kcABAAD0g64BnSZwAAAAnaZrQD8IHAAAQBfpGtAzAgcAANAhugb0lcABAADkT9eA3hM4AACAbOkawL0EDgAAIDe6BjBG4AAAAPKhawBTCBwAAEB4LtkAtkfgAAAAotI1gJkJHAAAQDC6BjA/gQMAAIhB1wCWIHAAAACt0jWAKggcAABAG3QNoFICBwAA0CBdA6iHwAEAANRP1wBqJnAAAAB10jWARggcAABADVyyATRL4AAAAKqjawAtETgAAICl6RpA2wQOAABgUboGEIbAAQAAzEnXAOIROAAAgNnoGkBgAgcAALAqXQPIgcABAABMomsAWRE4AACA+9I1gAwJHAAAwAqXbAA5EzgAAKDfdA2gEwQOAADoJV0D6BaBAwCqY58AxKdrAB0lcADAcsqtgt0CEJkzFdB1AgcALMRWAciCkxXQGwIHAMys3CfYKgDBOVkB/SNwAMCqyk2CfQIQn/MV0GMCBwBMYpMAZMQpC0DgAIB/V+4QbBKAXDhlAdxL4ACg90QNIDtOXABjBA4AeqncG9geABlx4gKYTuAAoE/sDYAcOXcBzEDgAKDryo2BvQGQF+cugHkIHAB0lI0BkCmnL4CFCBwAdEi5K7AxALLj9AWwHIEDgPzZFQD5cgYDqIjAAUC27AqAfDmDAVRN4AAgN3YFQNacwQDqIXAAkAldA8iakxhAzQQOAGKzJQCy5iQG0BSBA4CQbAmArDmJATRO4AAgElsCIGtOYgDtETgACMCWAMiakxhAAAIHAO2xJQCy5iQGEInAAUDjbAmArDmJAYQkcADQFFsCIGtOYgCxCRwA1MyWAMhXeQZzEgMIT+AAoB62BECmytOXMxhAVgQOACplVwDkqDx3OX0BZEvgAKAKNgZAjpy7ADpE4ABgCfYGQHbKE5dzF0C3CBwAzM/eAMhLedZy4gLoLoEDgJnZHgAZKU9ZzloA/SBwALA9dghALsrzlVMWQP8IHABMYZMA5ML5CgCBA4BR9glAFsqTlfMVACsEDgBW2CcA8ZVnKicrAMYIHAD9ZqsABFeeppypAFiVwAHQS3YL8azfddffPumkT27YcMcnP7n5sstu+/jHP3D22Sc86UmDH0PfOE0BMCeBA6BPbBiiOvIxj/mXiy5602/8xhMe+9hddtppx7VrH7Drrv/1yCPf85rXfOKtb12/666DvwfdVp6jnKYAmJ/AAdADNgyxHX7wwR8755z99tyzOP7oFVc8+/TTj3/FK/7g/PNv2rixeOVJhxxy0RlnrPxF6KLyBOUcBcByBA6ATrNnCG/XnXd+96tfvctOOxXHz3vNa57+spdd+Ld/e/GnPvXq888/+LnP/X/f/W7x+tMe//gnH3bYyl+HTiiLhhMUANUROAC6yM4hHy857rgH7713cXD2X/7lu/76r9OLyY233vpbf/RH6fj5T3taOoCMOTUBUCeBA6BDbB4y9KL/+l+Lr9//wQ/+4Pzz0yvDPvJ3f3fTxo2f+dKX7ti0afAS5KU8Lzk1AVAzgQMgfzYP2XrkQx7yiAMOKA4u+L//d9Odd6YXh23dunXvpz3tyF/7tVNf97rBSxBfeVJyXgKgQQIHQLbsH/L3cwcemA4+9cUvpgPIVXlGclICoCUCB0BubCE65LBHPSodXHXNNcXXh+yzz6tf8IKP/OEfXv+hD11yzjlv+c3ffORDHpL+AgTljARAGAIHQCbsIrpo75/8yXTwreuue+kzn/nN97znVaec8rTHP36/Pff8L4cd9j+e+cyvX3jhmS96Ufo7EEV5OnJGAiASgQMgNruITttt553TwW+eeOIf/eZv7rh27Tevvfaij3+8+FMcpB/9/vOet+F3ficdQ2vKc5HTEQBRCRwAIdlI9MOaNYMP4rNe8pIf33nnr5xxxoEnnnjSq15V/CkOim/v2rKl+OmvH3/80w8/PP1NaE55InIuAiAHAgdAJPYSfbXDmjUnn3nmX1xyyeD7FcW3v/mWt6TjVz7veekA6lWehZyIAMiNwAEQgO1E733ua19776WXDr4Z8icXX3zdTTcVBz//qEc9cLfd0otQPWchAPIncAC0x46i9zZt3pwOPn3llelg3Ge+/OV08Pif/dl0ANUoT0HOQgB0gsAB0Dg7Cu618bbb0sG/fOc76WDc7XfckQ52XrcuHcDiyvOPUxAAnSNwADTFpoIxV3z1q+ngofvskw7GlQ8iLS/3gPmUJx/nHwA6TeAAqJl9BdNd+Y1vpINDHvnIdDBu3z32SAflX4aZOPkA0DMCB0A9bC2YwT994xv/77vfLQ6e8vM///D9908vDtt3zz2ffNhhxcFXvv3tG2+9Nb0I2+HkA0AvCRwAldI1mNMfvec9xdcd1qw5/3/9r5132im9WDrvd3+3+FFx8LYPfjC9AgDARAIHQBV0DRZ17nve85kvfak4eMJjH3vFeecd+ZjHpNd/5mEPu+Scc37piCOK4y9cddWfXHxxeh0AgIkEDoAl6BpU4Zdf/vIrvvKV4uDnDjzwsj/5k02f/vTtn/jE1y644L+s3Jzy/7773V/63d/dunXryt8FAGAygQNgfroGldp4221H/tqv/f7b3vb9H/yg+HanHXfcbZddioM777rrnIsu+v9OOeWG739/5S8CADDV/Qf/Bfqs3Kgfd9zggIkUDWZxwgmDgw0bBgfzOOxRj9p/r712WLPmh3fc8fF/+Ictd989+AHM4oor7vl66qkr3wDLOf/8e77e344JsuEKDoDtcb0GDfr817528ac+9d5LL73kc59TNwAAZidwAEyhawAAQD4EDoD70jUAACBDAgfACl0DAAByJnAA/aZrAABAJwgcQC/pGgAA0C0CB9AnugYAAHSUwAH0gK4BAABdJ3AA3aVrAABAbwgcQOfoGgAA0D8CB9AVugYAAPSYwAFkTtcgrP/+3wcHAADU7/6D/wJ9VtaB444bHMSnaBDTCScMDqbZsGFwAHW44op7vp566so3wHLOP/+er/e3Y4JsmK5AVoFD1yCsaWnj1a8eHJx++j3HxddhegfVEjigQgIH5MZ0BXIIHLoGkY2kjQ9/eHBQ+qVfGhwUyt5RkjyokMABFRI4IDemKxA4cOgaBDd+1cZ43Rg33DsKw5d4jNM7mIvAARUSOCA3pisQL3DoGsS3WNqYZuIlHumWlnQwTPJgFQIHVEjggNyYrkCYwKFrkIVq08Y005LHRJIHJYEDKiRwQG5MV6DtwKFrkJHtPm6jJqv0juJbl3hQEjigQgIH5MZ0BVoKHLoGeWkrbUwjeTCRwAEVEjggN6Yr0Gzg0DXITjP3pCxp2oNLk/F7WySPrhI4oEICB+TGdAUaCRy6BjnKIm2MKBfiT3/64KCQesd45ijpHZ0hcECFBA7IjekK1Bk4dA0ylXXamGY8eRRO92+1dIvAARUSOCA3pitQQ+DQNchXjmmjsMD6e7h3FIaTxzi9IxcCB1RI4IDcmK5AdYFD1yB30Z4kOqOqFt8jl3iUpcMlHhkROKBCAgfkxnQFlg4cugYdkGnaKNS38p7rEo+C5BGBwAEVEjggN6YrsGjg0DXohkzvSUkaXnZPfIpHySUeEQgcUCGBA3JjugJzBg5dg86QNpY3cpVHYfjelhGSRwMEDqiQwAG5MV2B2QKHrkGXZJ02CmFX29Puaklc4tEAgQMqJHBAbkxXYNXAoWvQPfk+biPJa6k98a4Wl3jUR+CACgkckBvTFZgUOHQNOin3tFHIfZ098ZaWQkoe47e3SB7zEjigQgIH5MZ0BYZyxrHHDg6gY6SNsKbd1TLxKg+9Y7sEDqiQwAG5MV0BgYNOy/1xG0mvltcT72opSB6zEDigQgIH5MZ0BQQOOqobaaPQ87X1Kpd4uKVlnMABFRI4IDemKyBw0DmdSRsFC+tx0y7xSHqePAQOqJDAAbkxXQGBg27pwOM2SlbVs5jrKR6FbicPgQMqJHBAbkxXQOCgK6QNkmnJI+n2JR4CByyvXBe98533fHVChnyYroDAQf66lDYKFtOVm3hXy8SneBSyTh4CByysXA6VBA7IjekKCBzkrEuP20ispBsw8RKPVDqGj5O8eofAAfMa7xolgQNyY7oCAgd56l7aKFhGt2X15DFylUfk5CFwwIxW6RolgQNyY7oCAge56WTaKFhDx7H6UzwKYZOHwAGrm6VrlAQOyI3pCggcZKVjj9tIrJ7jG08eI41jWIu9Q+CAaeZKG4nAAbkxXQGBg0x0Mm0ULJ0zNfHBpaW2LvEQOGDEAl2jJHBAbkxXQOAgvK6mjYJ1c2dMu6vl9JV/qyUdlOrrHQIHJMt0jZLAAbkxXQGBg8C6+riNxKK520aSx7DxO1yqSh4CBz1XSdcoCRyQG9MVEDgISdqgeybe1ZJKR1XJQ+Cgn6rtGiWBA3JjugICB8F0O20UrJVJpt3VkizWOwQOeqWmrlESOCA3pisgcBBJhx+3kVgos4rxu1rSlR2pfcySPAQO+qDurlESOCA3pisgcBBD59NGwSqZuax+iUdhPHkIHHRYY12jJHBAbkxXQOCgbZ2/JyWxRGZ505JHWTqe/ex7vl555T1fq3pwKbSr+a5REjggN6YrIHDQHmkDljSSPFLgOOaYlW8WfZAHRNBi1ygJHJAb0xUQOGhDT9JGwcqYJr373fd8TVdwFEYu8UhP9CjpHcQUIW0kAgfkxnQFBA6a1Z+0UbAspmEpcJx55so3K7Z7V8swyYMWxekaJYEDcmO6AgIHDerDk0RL1sQ0bzxwjFild6Rjd7XQsIBdoyRwQG5MV0DgoBHSBjRgu4Fj3Fz/VoveQVUid42SwAG5MV0BgYOa9eqelIKlMC1aIHCMm5g8UuYojl3iwTKy6BolgQNyY7oCAge16VvaKFgH065KAseIkd5RGLnKwyUebFdeXaMkcEBuTFdA4KAGPUwbBYtgWldH4Bg3MXmc7ikejMm0a5QEDsiN6QoIHFStV4/bKFkBE0EzgWPE6re0lMclyaPzcu8aJYEDcmO6AgIH1ZE2oF2tBI5x0x5cOvEqD72jMzrTNUoCB+TGdAUEDqrQz7RRsPAllCCBY9y05JG4xCN33UsbicABuTFdAYGD5fTzcRuJVS/RhA0cI8af4jHs1ff9t1r0jrC62jVKAgfkxnQFBA4W1ee0UbDkJaBcAse41S/xKEgecXS+a5QEDsiN6QoIHMxP2oCY8g0cIyZe4pGu7Bh/ikdB8mhAf7pGSeCA3JiugMDBnHr7uI3ESpfIOhM4xk1LHiWXeNSkh12jJHBAbkxXQOBgZj1PGwXLXILrcOAYN/GulpQ50rUewySPefW5a5QEDsiN6QoIHMxA2ihY4xJfrwLHiNWf4qF3zEjXGCZwQG5MV0DgYFU9f9xGyQKXLPQ5cIwbv6slXdlRtg93tZR0jYkEDsiN6QoIHEwhbSSWtmRE4FjFxN4xrIdXeegaqxM4IDemKyBwMEbaKFnXkheBYy7THlw6UjqSjvUOaWMWAgfkxnQFBA7uy+M2Sha1ZEfgWNK05FHK/a4WXWMuAgfkxnQFBA7uJW0Ms6IlRwJHtabd1ZIyx8i1HpF7h66xGIEDcmO6AgIH0sZ9WcuSL4GjbiPJo7y4I2by0DWWJHBAbkxXQODoN4/bGGEhS9YEjuZNvMrj9Hv/rZbh3lFoJnnoGlUROCA3pisgcPSVtDHOKpbcCRytm3aJR6m+Szx0jcoJHJAb0xUQOPpH2pjIEpYOEDgCmvbg0olXeSyQPHSN+ggckBvTFRA4esbjNiayfqUbBI74JvaOQnmtx4x3tegaDRA4IDemKyBw9Ia0MZGVK10icORo4lM8Cql0pGs9Sm996+CABggckBvTFRA4esA9KdNYttIxAkc3jD/Io4wdieTRDIEDcmO6AgJHp0kbq7BmpXsEjk6a6ykeekeFBA7IjekKCBwdJW2szoKVThI4emL8Eo8RkkclBA7IjekKCBydI22szlKVDhM4+mnag0uTP/iD+/SOQrX/PG2HCRyQG9MVEDi6xZNEV2edSrcJHCRPf/q/f7gXVr/EQ++YRuCA3JiugMDRFdLGdlmk0nkCB9M87WmDgyQ9wiMdFFziMZHAAbkxXQGBI3/uSZmFFSp9IHAwo5HekQxf6OESj4LAAbkxXQGBI2fSxowsT+kJgYOFTbvEIx0Xepg8BA7IjekKCBx5kjZmZGFKrwgcVGX8Eo9p13cknUweAgfkxnQFBI4MedzGjKxK6RuBg/pMvKulNHzFR6EbvUPggNyYroDAkRVpY3aWpPSQwEGTxu9qGZF78hA4IDemKyBwZELamIv1KP0kcNCiiXe1jN/MkmTROwQOyI3pCggc4XncxlysROkzgYNQcr/EQ+CA3JiugMARmLQxL8tQek7gILLVL/FI+SNU8hA4IDemKyBwhCRtLMAaFAQO8jIxeRRS5hi5w6X53iFwQG5MV0DgiMfjNhZgAQoFgYPcTbyr5fTTBwfpuFR38hA4IDemKyBwRCJtLMbqExKBg46ZdldL2TsKZfKovHcIHJAb0xUQOGKQNhZj3QnDBA46b5UHeZSXe5SWTB4CB+TGdAUEjrZ53MbCLDphhMBB30x7isewhZOHwAG5MV0BgaM90sYyrDhhnMABq1ziMXJcWL13CByQG9MVEDjaIG0syXITJhI4YNz4g0uHb2kpTEseAgfkxnQFBI7GedzGMiw0YRUCB2zXtLtaTh/7t1oe+9h7vvrcgXyYroDA0SBpY0lWmbA6gQMWMDF5fPCDg2MfPZAP0xUQOBohbSzPEhO2S+CA5Z122uAg8ekD+Vgz+C8ANTnhBHWjAtaXEMq2bYM/0CWnnaZuQNYEDoDaTEwb6sYCrC8hgjJqlF3D3KQzJqYN73DIjcABUANpoyrWl9Cu8aiRmJt0hrQBHSJwAFRN2qiK9SW0YlrUKJmbdIO0AZ0jcABUZ+TCDWljGZaY0LDVo0bJ3KQbpA3oIoEDoAoT70lhYVaZ0Iwyamy3ayTmJh0wcuGGtAEdInAALGdi2lA3FmahCXWbN2ok5iYdMPGeFKBDBA6ARUkblbPQhJosFjVK5ia5m5g2vLGhcwQOgPlJG3Ww0ITKLRM1SuYmWZM2oE8EDoA5SRt1sNaEClXSNRJzk6xJG9AzAgfAzEYu3JA2qmK5CTGZm+Rr5MINaQP6wTwHVv5vfcmxxw4OGDFy1UZB2qiE5SZU693vvufrGWesfLMEc5N8jV+1UYPzzjtvzZrV/k/F73znOz/72c8OvgGa4tMLEDhWJW3Uxw4KKldJ4DA3ydRI2ijU82Y+8MAD/+Vf/mXwzRS/8iu/8hd/8ReDb4CmuEUFYIqRG1IK7kmpkB0UxGRukqORG1IKxTu5tjfzox/96MEREIzAATCJtFErOyiIydwkO82mjeSQQw5JB0ccccROU1xwwQXp7wBNEjgA7mvkwg1po1r1rzuBRZib5KjxtJEceOCBxde77rrrs5/97OYptm7dmv4y0CSBA+Be0kbdbJ8gJnOT7IxcuNFU2kie8IQnFF+vvPJKFQOiETgApjxug2rZQUFM5iZ5aTVtFHZfURz88z//c3oFiEPgAPptYtpQNypnBwUxmZtkZCRtFNp4Ax9++OHp4NJLL00He+2115FHHrlu3br0LdAigQPoK2mjMXZQEJO5SS4mpo2W3sDpARyFW2655ayzzrrxxhtvuummyy677M4777z66qtPO+20nXfeOf0FoHk+2ID73W/btsHBsccODjrPDSnNsH2Chr373fd8PeOMlW+mMzfJxUjXKLT97r3wwguf9axnFQf/9m//9qAHPSi9OOyb3/zmL/7iL1577bWD74EG+XgDehY4pI3G2EFB82YJHOYmuQhwQ8q4q6666j/+x/+Yji+77LILLrjgpptu2mmnnY466qhTTjmlOChe/853vvPYxz72lltuSX8NaIxPOKA3gUPaaJIdFLRiu4HD3OyS9PHdyTENmTYKa9eu3bRp0w477FAc/7f/9t8uuOCC9HryUz/1U5/4xCce/OAHF8fvfOc7Tz311PQ60BgfckAPAsdI2iioG7Wyg4K2rB44zM1uKD+1C90b06hpI1m3bt3RRx/9oAc9aOPGjZdccsng1SGPecxjrrzyyuLg7rvv3nvvvV3EAQ3zOQd0OnBIGw2zfYJ2rRI4TM/cDXeNpGNjGu9xG4v55Cc/+YQnPKE4OP744y+++OL0ItAM/4oK0FEn+EdSGmf7BGGZnvnatm3wZ0SXxvS0QP9IyvK+8IUvpIN99tknHQCNETiALpI2mmf7BGGZnjma1jWSzoxpt9JG8vWvfz0dPPShD00HQGMEDqBbRi7ckDaaYfsEYZmeeVm9axTy3///uzzTxs4773zooYfuscceg+/H/PRP/3Q6+MpXvpIOgMYIHEBXSBttsX2CmLq0E+687XaNpDMDOnLhRj7v1T/7sz/78Y9//Pd///cnnnji4KUxj370o9PBt771rXQANEbgAPI3kjYK0kYzbJ8gLHMzCzN2jaQbYzrxnpR8lP9yykknnZQORhx44IFPfOITi4Prrrvus5/9bHoRaIzAAeRsYtpQN5ph+wRhmZ7xzd41kg6M6cS0kdv/rg9/+MMbN24sDo444ojnPOc56cXS+vXr3/Wud+2www7F8dlnn51eBJokcAB5kjbaZfsEsIC5Ltko5X7K7UTaSO64447/+T//Zzp+17vedfrpp+++++7F8Zo1a44++ujPfe5zP//zP198+6lPfWrDhg0rfwtolBUqsLLeSo49dnAQnBtS2qVuQFjvfvc9X888c+Ubwpi3aAzL+pQ70jUKnfgEee1rX/uKV7xi8M397vejH/1o7dq1O+20U/r2M5/5zC//8i+nCz2AhrmCA8jKyIUbrtpoWLb/NzfoBdMzmsWu1xjWpbrRoU+QV77ylU996lOvvPLK9O1uu+2W6sb3vve9V7ziFUcddZS6AW3xQQhkcgXHyFUbBWmjYfZOEFmaoRdccM9XV3C0a5miMSzfs+542uio/fff/+d+7ud22223u+6665prrvnCF74w+AHQEqtVIHzgkDYiUDcgsnKGChwtqqprJJmedTt6TwqQC7eoAIGN3JBScE9KKyxPITIztF3blr4PZVyOY3pad54kCuRL4ABCkjbisDyFyMzQttTRNZLsxlTaAMIQOIB4pI0grFAhODO0efV1jUKOZ11pA4hE4AAiGblwQ9pokRUqRGYb2bBau0aS3YCOXLjhPQkEIHAAMUy8J4W2WKRCZGZok+ruGkleYyptAFEJHEDbJqYNdaNF1qkQmRnajAYu2ShlNKYjaaPgDQlEInAA7ZE2oinWqZaqEJkZWrcmu0aSy5hOTBvekEAwAgfQEmkjGutUCM4krU/zXSPJYkylDSAfAgfQuJELN6SNCCxVITiTtA5tdY0kl7oxTNoAYhM4gAZJGzFZrUJwJmm12u0aSfwxHblwQ9oAciBwAI0YSRsFaSMIC1YIziStSoSukQQfU2kDyJbAAdRsYtpQNyKwZoX4TNLlxekaSeQxHUkbBe9AICsCB1AbaSMya1aIzzxdRrSukYQd04lpwzsQyI3AAdRD2ojMmhXiM08XFrBrFML2AmkD6BCBA6jayIUb0kY0lq0QnO3lYmJespGEHVBpA+gWgQOojrQRnJUrxGeSzity10hijunIhRs+IIBOEDiAKoykjYK0EY2VK8Rnns4uftdIAo6ptAF0l8ABLGdi2lA3orF4hfjM01nk0jWSaGM6kjYK3nVAtwgcwKKkjVxYv0J85unq8uoaSagxnZg2vOuAzhE4gIVIG7mwfoX4zNNpcuwaSZwxlTaAPhE4gDmNXLghbURmCQvxmafj8u0aSai6MUzaALpO4ABmJm3kxSoW4jNPh+XeNZIgYzpy4Ya0AfSDwAHMYCRtFKSN4CxkIT7ztNSBrpFEGNOJ96QA9IPAAaxqYtpQN4KzloX4zNNCNy7ZKLU+phPThnca0CcCBzCFtJEpa1mIr+fztGNdo9B6R5A2AFYIHMAk0kamLGchuD5vO7vXNZJ2B1TaABgicAD3NXLhhrSRCytaiK+fk7SrXSNpd0ylDYD7EjiAIeMXbpAFK1qIr2/ztNtdI2lxTEcu3JA2AFY4FQIry9ARJ500OCA+i1qIr7F5esEF93w988yVb9rQ7aIxrK1z78hVGwWfAgD3ckIE7rXKqlTvCMu6FuJrcp62FTj60zWSVs690gbA9jgtAvdKy9Px1dLEZavkEYGlLcTX8DxtOHD0rWskzZ97pQ2A2Tg5AlOUy9bhVdS0taze0TyrW4iv+XnaTODoZ9dIWq8bTv4A0zlFAjOTPOKwwIX4Wpmn9QWOPkeNUsNjKm0AzMmJEljUxN5RkDzqZo0L8bU1T6sNHKLGsCbHVNoAWIjTJVCd8eSRXim+HV8l6x2LscyF+Fqcp5UEDl1jXGNj6nEbAEtwxgTqNJ48CtOWzpLHdlnmQnCtT9KFA4eoMY20AZAP502gQRN7RzK+ttY7hlnmQnwR5ulcgUPU2K5mxlTaAKiIsyfQqpHkkb4tjicuu3ubPKx0Ib4g83S7gUPUmF0zY+pxGwDVcQ4Fgikbx7BpK/I+JA+LXYgvzjydFjh0jXk1MKbSBkDVnEmB2MpF+SzJo3u9w3oX4gs1T4cDh6ixsLrHVNoAqIfzKWTjqKOOOuWUUwbfbM+55577hS98YfBNxwwnj3RcHozLOnlY8kJ80eZpChxnnLHyDQupdUw9bgOgTk6pkI1TTz31He94x+Cb7Tn22GM/8IEPDL7ptuHeMSz35GHJC/EFnKcCx5LqG1NpA6B+awb/BbrllltuGRx1XrFATH9K27b9+5UdI38KF154nz8xpf+vApGZp91T05iedtqEe1K8fwBq4NwK2VizZs3atWsH30zyx3/8xy94wQuKg9e85jWnjf9fivps5GqOtKwMe4mHVS/EF3aeuoJjYTWN6XjaAKA2TrLQEc9//vPf+c53Fgcf/ehHn/70p6cXmaxMG+MLzfHq0XDvsPaF+CLPU4FjMXWMqbQB0DinWuiCn/qpn/ryl7+8yy673HTTTQcddNDNN988+AEzmpg8mr/Ew/IX4gs+TwWOBVQ+ptIGQEuccKELLr/88iOOOKI4eNaznvV//s//SS+yuJG0sd3qUUnysAKG4LKYpALHXOpOGwXndoAGOedC9sp/XeVjH/vYU57ylPQiFZt4iUehkt5h+Qvx5TJPBY7ZVTum0gZAAM68kLf169d/85vf3Geffe6+++6DDjroqquuGvyAuk1MHhN7R2GV5GEFDPFlNE8FjhlVOKbSBkAY/plYyNtv/dZv7bPPPsXB2972NnWjUcX6Nf1Jtt37b9MWyh+VP532b9OWfwEIyzztngrHdPxxG94wAO1xCoaMrV+//rvf/e4DHvCAu+6662EPe9j1118/+AERTLzEIxm/0OPZzx4cAKFkt1l1Bcd2VTWmniQKEI9zMWTsZS972Rvf+Mbi4G1ve9uLX/zi9CJBDUeNch08XjpKkge0Lsctq8CxukrG1D0pAFE5HUPGrr766oc+9KHFwU//9E+7PyU/LvGAyDLdsgocq1h+TKUNgNiclCFXT3ziEy+99NLi4DOf+cyRRx6ZXiRvE5PHtKs8JA+oT767VoFjmiXHVNoAyIGHjEKunn3v/vbP//zP0wHZK5bL6U+ybezBpcPe/e77/AGqMjLX6IBlxvS00yY8bsObBCAkZ2fI1c0337znnnvefffde+2118aNGwev0m3DV3OUy+vixeJ4/EIPl3jAAnLfuLqCY9wyYzqeNgAIzGkasnTooYf+/d//fXFw6aWX/uIv/mJ6kd6Z2DtKkgfMqwPbV4FjxMJjKm0AZMgtKpClo446Kh38zd/8TTqgj4oFd/kn2bZyV0v6U75YHrirBaYZnkd0w8JjOvGeFABy4HwNWXrf+953/PHHFwf/6T/9p8svvzy9CBOU13GML9DLH5Vc4kE/dWn76gqOZOG0MULaAMiKszZk6YYbbthnn33uvvvudevWbd26dfAqbNdw1BheuI/HjoLeQR90bAcrcBQWGFNpA6ATnLshP+vWrbvzzjuLg+uuu+6AAw5IL8KChi/xSMflst4lHnRe9zaxAsfydUPaAMiWMzjk5+CDD/7Sl75UHHzwgx885phj0otQjZGoMRw7imPJgy7p5D6254Fj3jGVNgC6xUNGIT//4T/8h3Twwx/+MB1AZYr1/fCfwraVR5amg/GfenApmUpvYLpkrjE97b5PEi3PaQDkzKkcgDmNXMeRdgXjF3ckLvEgoA5vZXt7BcfsY+pxGwDd5YQOwHKG08b4PmEkfOgdtK7bu9l+Bo4Zx1TaAOg6p3UAqjYteUy8ykPyoEmd39D2MHDMMqbSBkA/OLkDUL9VrvIYrx6SBzXpw562b4FjgbohbQB0l1M8AI0biRrlfqN4vTge+aneQSV6sq3tVeDY7phKGwA940QPQAATL/EYv7gjkTyYS6+2tT0JHNIGAJM43QMQz3jaSPsTyYN59W1n24fAsfqYetwGQI854wOQg4mXeCTj1UPvIOnhzrbzgWOVMZU2AHrPeR+API0nj/RKcSx5UOjn5rbbgWPamEobAKxw9gegE1a5xKMwkjz0js7r7f62w4FjxrohbQD0mM8AADpqJGqkbc/4xR2J5NElfd7idjVwTBxTaQOA+/JJAEA/jF/iMS12JJJHpnq+y+1k4BgfU2kDgEl8HgDQV+OBY5XwoXdkwUa3e4FjZEw9bgOA6XwkAMC9xq/yKI1XD8kjGhvdQscCx/CYShsAbI8PBgCYYuKlHMWeqng9fR2md7TLXjfpUuAox1TaAGA2Ph4AYGarXOJRkDzaYrtb6kzgmFY3jDUA0/mQAIBFjV/ikXZf468nkkflbHdHdCBwSBsALMpHBQBUZ1rySFziUS073nG5B440pu5JAWAhPi0AoE4Tk0fxYvo6QvKYnR3vRFkHjmJMpQ0AluAzAwAaNBw1RnZuesfsbHqnyTdwvOpVg4OSUQZgTj45AKBVI10jberSi8XxyE8lj4J97ypyDBzSBgAV8fkBAJFM7B0lV3nY+q4uu8AxUjeMLwBL8CkCALENR41i+1d8mzaB47Gj0O3eYfe7XRkFDmkDgKr5LAGA3ExLHslI+OhM8rABnkUWgcM9KQDUw8cJAGRu4qUcZfjoRu+wAZ5R8MAhbQBQJx8qANA5w1Gj3ECmF3NMHvbAswsbOKQNAOrnowUAum6kaIw0juDJwzZ4LjEDh8dtANAIHzAA0D/jyWNYkN5hG7yAaIFD2gCgQT5mAICxu1rKb9OOtPnkYSe8mDiBQ9oAoHE+bACAMe1e4mEzvLAIgcPjNgBoic8bAGAGEy/xSAflt6VlkofN8DLaDRzSBgCt8qkDACxkWvJIFkse9sNLaitwSBsABOCzBwCowkjRKJPHRBN7hy3x8loJHB63AUAMPoEAgHqMXOIxYiR/POc5gwOW0XDgkDYAiMTnEADQiIkXdKQLPdLGWPJYXmOBQ9oAIB6fRgBAS0aKxsgmWe9YQAOBw+M2AIjKBxIAEMZw1Jh4WccwyWNcrYFD2gAgNh9LAEBU0+pGua8e/gt6R6GmwCFtAJADH04AQD5GkkexzU6vTLzco4fJo47A4XEbAGTCRxQAkK3x3lEa+VHS+eRRbeCQNgDIig8qAKBDJl7iMfx1WPd6R1WBQ9oAIEM+rgCAThuOGuMb9Y4lj+UDh8dtAJAtn1gAQJ+MFI20ey9fHLnKI7vesUzgkDYAyJzPLQCg38aTR/FKubcf+Wnw5LFY4JA2AOgEn14AAEPGe0chvTh8XAqVPBYIHB63AUBX+AwDAFjVXMmj3d4xV+CQNgDoFp9kAABzWj15jPy0yeQxY+BwTwoAXeTDDABgOdN6R1kNhv9Crb1ju4FD2gCgu3ykAQBUbTx5pFfqTh6rBA5pA4Cu88EGAFCzkd5RGIkLI39h4eQxMXBIGwD0g483AIDGjV/iURi+ymOxSzzGA4cniQLQGz7kAAACGL/Ko1D2iBkv8RgOHNIGAD3jow4AIJ6Jl3gUyqs8Jl7ikQLHOHUDgB7waQcAkINpySMZ+WlJ2gCgN3zmAQBkaJWiUV7lAQB94pMPAKATyuQhbQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnfbkJz/5wgsvvPnmmzdv3nzHHXf80z/90xve8Ib9999/8GMAAACAyNatW/e+971v2yS33377CSecMPh7AAAAAGFdcMEFKWfceuutZ5555nHHHXfiiSe+5z3vSS8Wjj766MFfBQAAAAjoyCOPTBXj+uuvH7kh5fnPf3760TXXXDN4CQAAACCgt7/97aliPPe5zx28NOSSSy5JP33iE584eAkA+mTN4L8AAMS29957p4P3v//96WDYJZdckg7222+/dAAAvSJwAABkZvfddx8cAQD3EjgAAPLwpS99KR1M/NdSyhe/9a1vpQMAAACAcPbff//bbrtt27ZtxdfDDz988OqK1772tekBHJ/85CcHLwEAAADEdPTRR996662pZXzkIx/ZsGHDeeed9+Uvfzm98vnPf36vvfYa/FUAAACAsPbff/+yaAx717vetWaNu48BAACA8E499dQf/OAHqWjccccdn/70p7/xjW9s2bIlvfJ3f/d3BxxwwOCvAgAAAAT0kpe8JIWMm2+++TnPeU55vcZee+117rnnph/deOONGgcAAAAQ1L777rtp06Zt27YVXw866KDBq0NOO+201Dg+8IEPDF4CAAAACOWlL31p6hdnnXXW4KUx3/72t9Pf2XfffQcvAUBveBIVAEAGDjvssHRw2WWXpYNxn/rUp9JB+ZcBoD8EDgCADOy0007p4Ec/+lE6GPe1r30tHZR/GQD6Q+AAAMhA2TX22GOPdDDuUY96VDq488470wEAAABAICeffHJ6vsaFF144eOm+1qxZc/XVVxd/YcuWLatEEAAAAIDWrF+//tZbb02N4ylPecrg1SFveMMb0k/9KyoAAABAXCeddFJKGFu2bHn1q19d/lMpj3zkIy+44IL0o1tvvfUhD3lIeh0AAAAgot/+7d9OISO5/fbbN23aNPhm27abb775F37hFwZ/FQAAACCsX/iFX/j0pz89SBr32rx583nnnVde0wEAPXT/wX8BAMjH7rvvfvjhh++2225bt279/ve/f/nll2/ZsmXwMwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoBPud7//H4hOUYRN0VMpAAAAAElFTkSuQmCC\" data-image-state=\"image-loaded\"\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 114.308px 8px; transform-origin: 114.308px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eForbidden functions / expressions\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cul style=\"block-size: 81.7333px; counter-reset: list-item 0; font-family: Helvetica, Arial, sans-serif; list-style-type: square; margin-block-end: 20px; margin-block-start: 10px; margin-bottom: 20px; margin-top: 10px; perspective-origin: 392px 40.8667px; transform-origin: 392px 40.8667px; margin-top: 10px; margin-bottom: 20px; \"\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 364px 10.2167px; text-align: left; transform-origin: 364px 10.2167px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 21.4px 8px; transform-origin: 21.4px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003eregexp\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 364px 10.2167px; text-align: left; transform-origin: 364px 10.2167px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 25.6833px 8px; transform-origin: 25.6833px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003eassignin\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 364px 10.2167px; text-align: left; transform-origin: 364px 10.2167px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 25.2833px 8px; transform-origin: 25.2833px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003estr2num\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 364px 10.2167px; text-align: left; transform-origin: 364px 10.2167px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 15.175px 8px; transform-origin: 15.175px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003eecho\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003c/ul\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 28.3917px 8px; transform-origin: 28.3917px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eSee also\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003ca target='_blank' href = \"https://fr.mathworks.com/matlabcentral/cody/groups/57483\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eMesh processing\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003ca target='_blank' href = \"https://fr.mathworks.com/matlabcentral/fileexchange/85173-mesh-generation-toolbox?s_tid=prof_contriblnk\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eMesh generation toolbox\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function F = mesh_the_cube()\r\n  F = 1;\r\nend","test_suite":"%%\r\nF_correct = [1 2 3 4;\r\n             8 7 6 5;\r\n             1 4 8 5;\r\n             2 1 5 6;\r\n             3 2 6 7;\r\n             4 3 7 8];\r\n\r\n% Check every possible solutions\r\nassert(isequal(sortrows(sort(mesh_the_cube(),2)),sortrows(sort(F_correct,2))))\r\n\r\n%% Forbidden functions\r\nfiletext = fileread('mesh_the_cube.m');\r\nillegal = contains(filetext, 'regexp') || contains(filetext, 'str2num') || contains(filetext, 'assignin') || contains(filetext, 'echo')\r\nassert(~illegal);","published":true,"deleted":false,"likes_count":1,"comments_count":4,"created_by":149128,"edited_by":149128,"edited_at":"2025-07-26T07:44:33.000Z","deleted_by":null,"deleted_at":null,"solvers_count":42,"test_suite_updated_at":"2025-07-23T16:15:41.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2025-07-23T10:23:00.000Z","updated_at":"2026-03-31T18:43:29.000Z","published_at":"2025-07-23T10:53:38.000Z","restored_at":null,"restored_by":null,"spam":null,"simulink":false,"admin_reviewed":false,"description_opc":"{\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eProblem statement : mesh the cube with quadranglar / squared faces\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eAn cube / regular hexahedron is a regular polyhedron with 8 vertices and 6 squared / quadrangular faces. It is also one of the five well known platonic solids.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eA quadrangular mesh \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eF\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e (stands for \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003efaces\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e here) is simply a \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eN\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e x 4 matrix of positive integers where each row contains the vertex indices of squared faces, and where \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eN\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e is the number of faces. \u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eYour task here is to mesh this cube. To do so, you will list the squares/rows in a matrix of faces, \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eF. \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003eYou will also be careful to always keep the faces coherently / consistently oriented (all clockwise or all counterclockwise : square \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e[1, 2, 3, 4]\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e and \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e[4, 3, 2, 1]\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e are distinct).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eOn the other hand \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e[1, 2, 3, 4]\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\u003e[2, 3, 4, 1], [3, 4, 1, 2]\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e and \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e[4, 1, 2, 3]\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e are one same unique square.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\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 row order of the faces in the list doesn't matter.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eEdit / update\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFaces orientation not taken into account anymore, because of too many possible cases to check in the tests (!)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eExample\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe first square \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e(Z \u0026gt; 0)\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e here can be [\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e1, 2, 3, 4]\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e if counterclockwise oriented (normals outward).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"378\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"504\\\"/\u003e\u003cw:attr w:name=\\\"verticalAlign\\\" w:val=\\\"middle\\\"/\u003e\u003cw:attr w:name=\\\"altText\\\" w:val=\\\"\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId1\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eForbidden functions / expressions\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:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eregexp\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:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eassignin\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:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003estr2num\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:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eecho\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eSee also\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:hyperlink w:docLocation=\\\"https://fr.mathworks.com/matlabcentral/cody/groups/57483\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eMesh processing\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:hyperlink w:docLocation=\\\"https://fr.mathworks.com/matlabcentral/fileexchange/85173-mesh-generation-toolbox?s_tid=prof_contriblnk\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eMesh generation toolbox\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\",\"relationship\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"target\":\"/media/image1.png\",\"relationshipId\":\"rId1\"}]},{\"partUri\":\"/media/image1.png\",\"contentType\":\"image/png\",\"content\":\"data:image/png;base64,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I44ujcVI2ihIG0AMPvaAto13geBXbRSKdWruOWOEXVCF+nyLijdSKIYjjs6MxUjXKHQ7bbhFBXJjugKtGskE8dNG91i3Va63gcN7KRTDEUc3xqJvaSMROCA3blEBWjJyT0fwG1K6yqKNShRvJO+lUAxHHN0Yi/EbUtyTAoTk8w9onKs2grAFqknfruDwRorGiMTRgbHo+bM2XMEBuXEFB9Cgkas2CupGWyzXqIQ3UjRGJIhiIHIfi9f7R1KA/AgcQCMmpg11oxUdWHYThDdSNEYkiI6ljYK0AWTCByFQs5GuUdA1WmT/04A+3KLijRSQQQki64EY6RqFnqcNt6hAblzBAdGdeuqpl1xyyW233bZ58+bia3H8ohe9aM2aTCavqzZCsUSjEt5I0RQjYlCCyHcgJl614cINIDc+DiGufffd98Mf/vAhhxwy+H7I17/+9eOOO+6qq64afB+QZ21EY//TmG5fweGNFI0RiSPrujFM1yi5ggNyY7pCUOvXr//iF7/4iEc8ojj+2te+9r//9/++7rrr9thjj1NOOeXxj3988eJNN9108MEH33jjjSt/PRJpIyCLsyZ1OHB4I0VjROLIdCykjdUJHJAb0xWCOuuss17+8pcXB+9///uf8YxnbN26Nb1eOPfcc3/jN36jOHjHO97xwhe+ML0YgsdtBGRZ1ryuBg7vpWiMSBw5joW0MQuBA3JjukJEa9eu/cEPfrDbbrv96Ec/2m+//W677bbBD1asWbPm+uuv32effe66665dd911y5Ytgx+0SNqIyZqsFd0LHN5IARmUOLIbi5G0UVA3phE4IDceMgoRHX300bvttltx8Fd/9VcjdaOwdevWyy+/vDjYcccdDz300PRia7b591+jsiCjEt5IARmUOPIai9d7kijQcQIHRHTJJZfstttuT3va01772tcOXrqvtWvXpoMf//jH6aAd0kZY9j9UwhspIIMSR0ZjIW0A/eAzEvKzfv36733ve7vtttvGjRv33HPP4cdzNGc8bRCH/U+7OnOLijdSQAYliLwGYjxtMCO3qEBuXMEBmXngAx940UUXpRtY3vSmN7VQN0buSXHVRijFIsw6jEp4IwVkUILIaCBGLtxw1QbQdT4pIQ+HHXbYvvvue8QRR5x88sl77rln8cpFF1100kknpZ82ZOSqjYK0EYrNTxC5X8HhjRSTcQki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\",\"relationship\":null}],\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"target\":\"/matlab/document.xml\",\"relationshipId\":\"rId1\"}]}"},{"id":60978,"title":"Mesh the octahedron","description":"Problem statement\r\n\r\nAn octahedron is a regular polyhedron with 6 vertices and 8 triangular faces. It is also one of the five well known platonic solids.\r\nA triangulated mesh -or a triangulation- is simply a N x 3 matrix of positive integers where each row contains the vertex indices of a triangle, and where N is the number of triangles. \r\n\r\nYour task here is to mesh this octahedron. To do so, you will list the triangles/rows in a matrix of triangles, T. You will also be careful to always keep the triangles / faces coherently / consistently oriented (all clockwise or all counterclockwise : triangles [1, 2, 3] and [3, 2, 1] are distinct).\r\nOn the other hand [1, 2, 3], [2, 3, 1] and [3, 1, 2] are one same unique triangle.\r\nThe row order of the triangles in the list doesn't matter.\r\n\r\nEdit / update\r\nTriangles orientation not taken into account anymore, because of too many possible cases to check in the tests (!)\r\n\r\nExample\r\nThe first triangle (X \u003e 0, Y \u003e 0, and Z \u003e 0) here can be [1, 2, 5] if counterclockwise oriented (normals are outward oriented).\r\n\r\n\r\n\r\nForbidden functions / expressions\r\nregexp\r\nassignin\r\nstr2num\r\necho\r\n\r\nSee also\r\nMesh processing\r\nMesh generation toolbox","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.4333px; min-height: 0px; white-space: normal; color: rgb(0, 0, 0); font-family: Menlo, Monaco, Consolas, monospace; font-style: normal; font-size: 14px; font-weight: 400; text-decoration: rgb(0, 0, 0); white-space: normal; \"\u003e\u003cdiv style=\"block-size: 1200.23px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 408px 600.117px; transform-origin: 408px 600.117px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 63.0083px 8px; transform-origin: 63.0083px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eProblem statement\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 21px; text-align: left; transform-origin: 385px 21px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 373.817px 8px; transform-origin: 373.817px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eAn octahedron is a regular polyhedron with 6 vertices and 8 triangular faces. It is also one of the five well known platonic solids.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 21px; text-align: left; transform-origin: 385px 21px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 157.542px 8px; transform-origin: 157.542px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eA triangulated mesh -or a triangulation- is simply 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: 5.05833px 8px; transform-origin: 5.05833px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\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: 206.533px 8px; transform-origin: 206.533px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e x 3 matrix of positive integers where each row contains the vertex indices of a triangle, and where \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 5.05833px 8px; transform-origin: 5.05833px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\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: 84.4px 8px; transform-origin: 84.4px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e is the number of triangles. \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 63px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 31.5px; text-align: left; transform-origin: 385px 31.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 327.242px 8px; transform-origin: 327.242px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eYour task here is to mesh this octahedron. To do so, you will list the triangles/rows in a matrix of triangles, \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 7.51667px 8px; transform-origin: 7.51667px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003eT. \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 49.9333px 8px; transform-origin: 49.9333px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eYou will also be careful to always keep the triangles / faces coherently / consistently oriented (all clockwise or all counterclockwise : triangles \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 23.325px 8px; transform-origin: 23.325px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003e[1, 2, 3]\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 15.5583px 8px; transform-origin: 15.5583px 8px; unicode-bidi: normal; \"\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: 23.325px 8px; transform-origin: 23.325px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003e[3, 2, 1]\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 40.0583px 8px; transform-origin: 40.0583px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e are distinct).\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 58.3417px 8px; transform-origin: 58.3417px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eOn the other hand \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 23.325px 8px; transform-origin: 23.325px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003e[1, 2, 3]\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 3.88333px 8px; transform-origin: 3.88333px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e, \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 23.325px 8px; transform-origin: 23.325px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003e[2, 3, 1]\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 15.5583px 8px; transform-origin: 15.5583px 8px; unicode-bidi: normal; \"\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: 23.325px 8px; transform-origin: 23.325px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003e[3, 1, 2]\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 94.5333px 8px; transform-origin: 94.5333px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e are one same unique triangle.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 168.575px 8px; transform-origin: 168.575px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe row order of the triangles in the list doesn't matter.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 41.9833px 8px; transform-origin: 41.9833px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eEdit / update\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 351.75px 8px; transform-origin: 351.75px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eTriangles orientation not taken into account anymore, because of too many possible cases to check in the tests (!)\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 28.7833px 8px; transform-origin: 28.7833px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eExample\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 52.1167px 8px; transform-origin: 52.1167px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe first triangle \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 75.2583px 8px; transform-origin: 75.2583px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003e(X \u0026gt; 0, Y \u0026gt; 0, and Z \u0026gt; 0)\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 42.7833px 8px; transform-origin: 42.7833px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e here can be [\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 21.3833px 8px; transform-origin: 21.3833px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003e1, 2, 5]\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 187.5px 8px; transform-origin: 187.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e if counterclockwise oriented (normals are outward oriented).\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 383.5px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 191.75px; text-align: left; transform-origin: 385px 191.75px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cimg class=\"imageNode\" width=\"504\" height=\"378\" style=\"vertical-align: baseline;width: 504px;height: 378px\" src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABaAAAAQ4CAIAAABwgOwFAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAGNSSURBVHhe7d0N1C1lYdh7zwGBwomVihW0McY21BiJoVRtES9ea1NI8yWGEA4hWj9WmnCkfq2VlRib2Fwt3mXVKi6TSGKvVsDaYFSS0LtMULR6TeJHJQYluqIhfoA1GCSIeMK545l595n3Y+93Zs88M8/H77fO4sy7zxHfPXvveef588wz9wEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAmOxpfgcAGM+v/dqv7d27t/liJ7/5m7/5wQ9+sPkCAAAAIDannnrqod1cfPHFzd8GABjDqv+0AgCwhkc/+tHNFgAAAECiLrvssnqaxuMf//hjllh9AQsAAADAzK655ppDhw7dc889KgYAAACQqr/6q786dOjQhz70oeZrAIDw/HcVAGBMJx5Wbfzpn/5p/QgAwAQEDgBgTI9//OPrjT/4gz+oNx74wAc+4QlPOOaYY+ovAQBCEDgAgDGdeuqp9cZXvvKVyy677NZbb73ttttuuOGGb3zjG3/+53/+4he/+Ljjjqv/AgAAAECkrrrqqsN3UDn01a9+td7Y4uabb/72b//25m8DAIxkT/M7AMAYPvnJT/7jf/yP6+0bbrjhLW95y2233XbssceeffbZz3jGM6qN6vG/+Iu/+Cf/5J985Stfqf8aAAAAQESOPvrogwcP1jM1LrrooubRDf/oH/2jz33uc/Wf/sZv/EbzKAAAAEBUjjnmmB/4gR+48MILzznnnOahzb7v+76vDhwHDx58wAMe0DwKAAAAkJbrr7++bhznnXde8xAAwGDuogIATOrDH/5wvXHyySfXGwAAwwkcAMCkbrrppnrjYQ97WL0BADCcwAEAjOm44457zGMes2J9je/+7u+uN2688cZ6AwBgOIEDABjNG9/4xq9//et/+Id/eMEFFzQPbfPoRz+63vj0pz9dbwAAAABE5IILLqgXEH3f+97XPLTZqaeeWt9H9pZbbmkeAgAAAIjK8ccf/1d/9Vd147jooouaRzfs27fvgx/8YP2nBw4caB4FAAAAiM0zn/nMOmEcPHjwl37pl0488cTqwb179z75yU/+kz/5k/qPrr/++vovAwAAAETqpS99aR0yanfeeefdd9/dfHH46pW6egAAAABE7ZxzzvnIRz7SJI0NX/ziF3/+539+715rnAMA49vT/A4AMLaHPOQhp59++gknnPDNb37zc5/73Ic//OHmDwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6OHSo2QAACGxP8zsAwLjadWOPUw4AICxnGwBAANvnbmgcAEBITjUAgLEtuzJF4wAAgnGeAQCMavW6GxoHABDG3uZ3AIDhdqobe267rdmqrM4fAADrEjgAgJG048ULX9hsHKZxAAChCRwAwBiW1I09//7fb9n4Fo0DABibwAEADLa9brziFYe/aDlwQOMAAMIROACAYZbM3diRxgEABCJwAAAD9KkbNY0DAAhB4AAA1tWxblx+ebOxQeMAAEYncAAAa+lQNzaFjMqBA82GxgEAjE3gAAD66zh3YyWNAwAYkcABAPS0a93YfguVbVep1DQOAGAsAgcA0MciQ7zwhevM3WhdpVLTOACAUQgcAEBn7boxnq1LdQAA9CdwAADd9KwbvbLFkb9sEgcAsBaBAwDoYPjcjSXLcCxoHADAEAIHALDSoUP96sb2FUa32LYMx4LGAQCsTeAAAJZrh4ZR191Y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\" data-image-state=\"image-loaded\"\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 114.308px 8px; transform-origin: 114.308px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eForbidden functions / expressions\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cul style=\"block-size: 81.7333px; counter-reset: list-item 0; font-family: Helvetica, Arial, sans-serif; list-style-type: square; margin-block-end: 20px; margin-block-start: 10px; margin-bottom: 20px; margin-top: 10px; perspective-origin: 392px 40.8667px; transform-origin: 392px 40.8667px; margin-top: 10px; margin-bottom: 20px; \"\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 364px 10.2167px; text-align: left; transform-origin: 364px 10.2167px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 21.4px 8px; transform-origin: 21.4px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003eregexp\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 364px 10.2167px; text-align: left; transform-origin: 364px 10.2167px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 25.6833px 8px; transform-origin: 25.6833px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003eassignin\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 364px 10.2167px; text-align: left; transform-origin: 364px 10.2167px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 25.2833px 8px; transform-origin: 25.2833px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003estr2num\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 364px 10.2167px; text-align: left; transform-origin: 364px 10.2167px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 15.175px 8px; transform-origin: 15.175px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003eecho\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003c/ul\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 28.3917px 8px; transform-origin: 28.3917px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eSee also\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003ca target='_blank' href = \"https://fr.mathworks.com/matlabcentral/cody/groups/57483\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eMesh processing\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003ca target='_blank' href = \"https://fr.mathworks.com/matlabcentral/fileexchange/85173-mesh-generation-toolbox?s_tid=prof_contriblnk\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eMesh generation toolbox\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function T = mesh_the_octahedron()\r\n  T = 1;\r\nend","test_suite":"%%\r\nT_correct = [1 2 5;\r\n             2 3 5;\r\n             3 4 5;\r\n             4 1 5;\r\n             2 1 6;\r\n             3 2 6;\r\n             4 3 6;\r\n             1 4 6];\r\n\r\n% Check every possible solutions\r\nassert(isequal(sortrows(sort(mesh_the_octahedron(),2)),sortrows(sort(T_correct,2))))\r\n\r\n%% Forbidden functions\r\nfiletext = fileread('mesh_the_octahedron.m');\r\nillegal = contains(filetext, 'regexp') || contains(filetext, 'str2num') || contains(filetext, 'assignin') || contains(filetext, 'echo')\r\nassert(~illegal);","published":true,"deleted":false,"likes_count":1,"comments_count":1,"created_by":149128,"edited_by":149128,"edited_at":"2025-07-26T07:44:22.000Z","deleted_by":null,"deleted_at":null,"solvers_count":50,"test_suite_updated_at":"2025-07-23T16:11:50.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2025-07-23T08:24:47.000Z","updated_at":"2026-03-31T18:40:36.000Z","published_at":"2025-07-23T09:23:40.000Z","restored_at":null,"restored_by":null,"spam":null,"simulink":false,"admin_reviewed":false,"description_opc":"{\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eProblem statement\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\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\u003eAn octahedron is a regular polyhedron with 6 vertices and 8 triangular faces. It is also one of the five well known platonic solids.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eA triangulated mesh -or a triangulation- is simply a \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eN\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e x 3 matrix of positive integers where each row contains the vertex indices of a triangle, and where \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eN\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e is the number of triangles. \u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eYour task here is to mesh this octahedron. To do so, you will list the triangles/rows in a matrix of triangles, \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eT. \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003eYou will also be careful to always keep the triangles / faces coherently / consistently oriented (all clockwise or all counterclockwise : triangles \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e[1, 2, 3]\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e and \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e[3, 2, 1]\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e are distinct).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eOn the other hand \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e[1, 2, 3]\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\u003e[2, 3, 1]\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e and \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e[3, 1, 2]\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e are one same unique triangle.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\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 row order of the triangles in the list doesn't matter.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eEdit / update\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eTriangles orientation not taken into account anymore, because of too many possible cases to check in the tests (!)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eExample\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe first triangle \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e(X \u0026gt; 0, Y \u0026gt; 0, and Z \u0026gt; 0)\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e here can be [\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e1, 2, 5]\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e if counterclockwise oriented (normals are outward oriented).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"378\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"504\\\"/\u003e\u003cw:attr w:name=\\\"verticalAlign\\\" w:val=\\\"baseline\\\"/\u003e\u003cw:attr w:name=\\\"altText\\\" w:val=\\\"\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId1\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eForbidden functions / expressions\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:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eregexp\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:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eassignin\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:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003estr2num\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:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eecho\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eSee also\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:hyperlink w:docLocation=\\\"https://fr.mathworks.com/matlabcentral/cody/groups/57483\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eMesh processing\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:hyperlink w:docLocation=\\\"https://fr.mathworks.com/matlabcentral/fileexchange/85173-mesh-generation-toolbox?s_tid=prof_contriblnk\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eMesh generation toolbox\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\",\"relationship\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"target\":\"/media/image1.png\",\"relationshipId\":\"rId1\"}]},{\"partUri\":\"/media/image1.png\",\"contentType\":\"image/png\",\"content\":\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABaAAAAQ4CAIAAABwgOwFAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAGNSSURBVHhe7d0N1C1lYdh7zwGBwomVihW0McY21BiJoVRtES9ea1NI8yWGEA4hWj9WmnCkfq2VlRib2Fwt3mXVKi6TSGKvVsDaYFSS0LtMULR6TeJHJQYluqIhfoA1GCSIeMK545l595n3Y+93Zs88M8/H77fO4sy7zxHfPXvveef588wz9wEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAmOxpfgcAGM+v/dqv7d27t/liJ7/5m7/5wQ9+sPkCAAAAIDannnrqod1cfPHFzd8GABjDqv+0AgCwhkc/+tHNFgAAAECiLrvssnqaxuMf//hjllh9AQsAAADAzK655ppDhw7dc889KgYAAACQqr/6q786dOjQhz70oeZrAIDw/HcVAGBMJx5Wbfzpn/5p/QgAwAQEDgBgTI9//OPrjT/4gz+oNx74wAc+4QlPOOaYY+ovAQBCEDgAgDGdeuqp9cZXvvKVyy677NZbb73ttttuuOGGb3zjG3/+53/+4he/+Ljjjqv/AgAAAECkrrrqqsN3UDn01a9+td7Y4uabb/72b//25m8DAIxkT/M7AMAYPvnJT/7jf/yP6+0bbrjhLW95y2233XbssceeffbZz3jGM6qN6vG/+Iu/+Cf/5J985Stfqf8aAAAAQESOPvrogwcP1jM1LrrooubRDf/oH/2jz33uc/Wf/sZv/EbzKAAAAEBUjjnmmB/4gR+48MILzznnnOahzb7v+76vDhwHDx58wAMe0DwKAAAAkJbrr7++bhznnXde8xAAwGDuogIATOrDH/5wvXHyySfXGwAAwwkcAMCkbrrppnrjYQ97WL0BADCcwAEAjOm44457zGMes2J9je/+7u+uN2688cZ6AwBgOIEDABjNG9/4xq9//et/+Id/eMEFFzQPbfPoRz+63vj0pz9dbwAAAABE5IILLqgXEH3f+97XPLTZqaeeWt9H9pZbbmkeAgAAAIjK8ccf/1d/9Vd147jooouaRzfs27fvgx/8YP2nBw4caB4FAAAAiM0zn/nMOmEcPHjwl37pl0488cTqwb179z75yU/+kz/5k/qPrr/++vovAwAAAETqpS99aR0yanfeeefdd9/dfHH46pW6egAAAABE7ZxzzvnIRz7SJI0NX/ziF3/+539+715rnAMA49vT/A4AMLaHPOQhp59++gknnPDNb37zc5/73Ic//OHmDwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6OHSo2QAACGxP8zsAwLjadWOPUw4AICxnGwBAANvnbmgcAEBITjUAgLEtuzJF4wAAgnGeAQCMavW6GxoHABDG3uZ3AIDhdqobe267rdmqrM4fAADrEjgAgJG048ULX9hsHKZxAAChCRwAwBiW1I09//7fb9n4Fo0DABibwAEADLa9brziFYe/aDlwQOMAAMIROACAYZbM3diRxgEABCJwAAAD9KkbNY0DAAhB4AAA1tWxblx+ebOxQeMAAEYncAAAa+lQNzaFjMqBA82GxgEAjE3gAAD66zh3YyWNAwAYkcABAPS0a93YfguVbVep1DQOAGAsAgcA0MciQ7zwhevM3WhdpVLTOACAUQgcAEBn7boxnq1LdQAA9CdwAADd9KwbvbLFkb9sEgcAsBaBAwDoYPjcjSXLcCxoHADAEAIHALDSoUP96sb2FUa32LYMx4LGAQCsTeAAAJZrh4ZR191Y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\",\"relationship\":null}],\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"target\":\"/matlab/document.xml\",\"relationshipId\":\"rId1\"}]}"},{"id":2375,"title":"Obscured by Earth","description":"Given two points in \u003chttp://en.wikipedia.org/wiki/Earth-centered_inertial ECI\u003e reference frame, check wheather they are in line-of-sight, i.e, they are not obscured by Earth.\r\nNote that the Earth is assumed as a sphere with  6,378,137.0 m radius (equatorial radius according to \u003chttp://en.wikipedia.org/wiki/WGS84 WGS-84\u003e).\r\n\r\nInputs:\r\n\r\n* x1: [x y z]    ECI coordinates of the first reference point\r\n* x2: [x y z]    ECI coordinates of the second reference point\r\n\r\nOutputs:\r\n\r\n* inLOS:    true if the line-of-sight is not obscured by Earth","description_html":"\u003cp\u003eGiven two points in \u003ca href = \"http://en.wikipedia.org/wiki/Earth-centered_inertial\"\u003eECI\u003c/a\u003e reference frame, check wheather they are in line-of-sight, i.e, they are not obscured by Earth.\r\nNote that the Earth is assumed as a sphere with  6,378,137.0 m radius (equatorial radius according to \u003ca href = \"http://en.wikipedia.org/wiki/WGS84\"\u003eWGS-84\u003c/a\u003e).\u003c/p\u003e\u003cp\u003eInputs:\u003c/p\u003e\u003cul\u003e\u003cli\u003ex1: [x y z]    ECI coordinates of the first reference point\u003c/li\u003e\u003cli\u003ex2: [x y z]    ECI coordinates of the second reference point\u003c/li\u003e\u003c/ul\u003e\u003cp\u003eOutputs:\u003c/p\u003e\u003cul\u003e\u003cli\u003einLOS:    true if the line-of-sight is not obscured by Earth\u003c/li\u003e\u003c/ul\u003e","function_template":"function inLOS = in_los(x1, x2)\r\n  inLOS = false;\r\nend","test_suite":"\r\n%%\r\nx1 = [10e6 10e6 10e6];\r\nx2 = x1.*[-1 -1 1];\r\nassert(isequal(in_los(x1, x2), true))\r\n%%\r\nx1 = [10e6 10e6 10e6];\r\nx2 = 2*x1;\r\nassert(isequal(in_los(x1, x2), true))\r\n%%\r\nx1 = [10e6 10e6 10e6];\r\nx2 = -x1;\r\nassert(isequal(in_los(x1, x2), false))\r\n%%\r\nx1 = 2*(6378137+1e-3)/sqrt(3)*[1 1 0]/sqrt(2);\r\nx2 = 2*(6378137+1e-3)/sqrt(3)*[1 0 1]/sqrt(2);\r\nassert(isequal(in_los(x1, x2), true))\r\n%%\r\nx1 = 2*(6378137-1e-3)/sqrt(3)*[1 1 0]/sqrt(2);\r\nx2 = 2*(6378137-1e-3)/sqrt(3)*[1 0 1]/sqrt(2);\r\nassert(isequal(in_los(x1, x2), false))","published":true,"deleted":false,"likes_count":3,"comments_count":1,"created_by":20319,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":19,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2014-06-18T14:29:37.000Z","updated_at":"2025-06-26T20:01:11.000Z","published_at":"2014-06-18T14:30:50.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eGiven two points in\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://en.wikipedia.org/wiki/Earth-centered_inertial\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eECI\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e reference frame, check wheather they are in line-of-sight, i.e, they are not obscured by Earth. Note that the Earth is assumed as a sphere with 6,378,137.0 m radius (equatorial radius according to\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://en.wikipedia.org/wiki/WGS84\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eWGS-84\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\u003eInputs:\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\u003ex1: [x y z] ECI coordinates of the first reference point\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\u003ex2: [x y z] ECI coordinates of the second reference point\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eOutputs:\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\u003einLOS: true if the line-of-sight is not obscured by Earth\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":60987,"title":"Build triangulation from -sorted- edge list","description":"Problem statement\r\nAn edge list is simply a N x 2 matrix of positive integers, in which N is the number of edges and each integer is a vertex index. Like this, an edge is defined by the indices of its two vertices.\r\nA triangulation is simply a M x 3 matrix of positive integers, in which M is the number of triangles and each integer is a vertex index. Like this, a triangle is defined by the indices of its three vertices.\r\nIn this problem the gaol is to rebuild the triangulation from the ordered edge list. \r\n\r\nExample (check the test suite here below for more)\r\nE = [1 2;\r\n     1 3;\r\n     2 3];\r\n=\u003e\r\nT = [1 2 3];\r\n\r\nTips \u0026 clues\r\nSince a triangle always has 3 edges, you could process the edge list by blocks of 3 rows;\r\nTriangles orientation (vertices order in the list) doesn't matter here : [1 2 3] and [1 3 2] are a same unique triangle;\r\nOn the other hand, the order of the triangles in the list should be preserved;\r\nYou could see this as the reciprocal operation to the one of building the edge list (E = nchoosek(T,2) )\r\n\r\nForbidden functions / expressions\r\nregexp\r\nassignin\r\nstr2num\r\necho\r\n\r\nSee also\r\nMesh processing\r\nMesh generation toolbox","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.4333px; min-height: 0px; white-space: normal; color: rgb(0, 0, 0); font-family: Menlo, Monaco, Consolas, monospace; font-style: normal; font-size: 14px; font-weight: 400; text-decoration: rgb(0, 0, 0); white-space: normal; \"\u003e\u003cdiv style=\"block-size: 792.2px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 408px 396.1px; transform-origin: 408px 396.1px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 63.0083px 8px; transform-origin: 63.0083px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eProblem statement\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 21px; text-align: left; transform-origin: 385px 21px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 369.9px 8px; transform-origin: 369.9px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eAn edge list is simply a N x 2 matrix of positive integers, in which N is the number of edges and each integer is a vertex index. Like this, an edge is defined by the indices of its two vertices.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 21px; text-align: left; transform-origin: 385px 21px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 366.017px 8px; transform-origin: 366.017px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eA triangulation is simply a M x 3 matrix of positive integers, in which M is the number of triangles and each integer is a vertex index. Like this, a triangle is defined by the indices of its three vertices.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 269.417px 8px; transform-origin: 269.417px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eIn this problem the gaol is to rebuild the triangulation from the ordered edge list. \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 28.7833px 8px; transform-origin: 28.7833px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eExample\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 130.683px 8px; transform-origin: 130.683px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e (check the test suite here below for more)\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgb(247, 247, 247); block-size: 61.3px; border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; border-end-end-radius: 4px; border-end-start-radius: 4px; border-start-end-radius: 4px; border-start-start-radius: 4px; border-top-left-radius: 4px; border-top-right-radius: 4px; margin-block-end: 10px; margin-block-start: 10px; margin-bottom: 10px; margin-inline-end: 3px; margin-inline-start: 3px; margin-left: 3px; margin-right: 3px; margin-top: 10px; perspective-origin: 405px 30.65px; transform-origin: 405px 30.65px; margin-left: 3px; margin-top: 10px; margin-bottom: 10px; margin-right: 3px; \"\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 405px 10.2167px; text-wrap-mode: nowrap; transform-origin: 405px 10.2167px; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 34.65px 8.5px; tab-size: 4; transform-origin: 34.65px 8.5px; unicode-bidi: normal; white-space-collapse: preserve; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003eE = [1 2;\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 405px 10.2167px; text-wrap-mode: nowrap; transform-origin: 405px 10.2167px; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 34.65px 8.5px; tab-size: 4; transform-origin: 34.65px 8.5px; unicode-bidi: normal; white-space-collapse: preserve; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e     1 3;\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 405px 10.2167px; text-wrap-mode: nowrap; transform-origin: 405px 10.2167px; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 38.5px 8.5px; tab-size: 4; transform-origin: 38.5px 8.5px; unicode-bidi: normal; white-space-collapse: preserve; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e     2 3];\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 10px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 10px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 10px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 8.18333px 8px; transform-origin: 8.18333px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e=\u0026gt;\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgb(247, 247, 247); block-size: 20.4333px; border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; border-end-end-radius: 4px; border-end-start-radius: 4px; border-start-end-radius: 4px; border-start-start-radius: 4px; border-top-left-radius: 4px; border-top-right-radius: 4px; margin-block-end: 10px; margin-block-start: 10px; margin-bottom: 10px; margin-inline-end: 3px; margin-inline-start: 3px; margin-left: 3px; margin-right: 3px; margin-top: 10px; perspective-origin: 405px 10.2167px; transform-origin: 405px 10.2167px; margin-left: 3px; margin-top: 10px; margin-bottom: 10px; margin-right: 3px; \"\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; text-wrap-mode: 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: 46.2px 8.5px; tab-size: 4; transform-origin: 46.2px 8.5px; unicode-bidi: normal; white-space-collapse: preserve; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003eT = [1 2 3];\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 10px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 10px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 10px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 41.0917px 8px; transform-origin: 41.0917px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eTips \u0026amp; clues\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cul style=\"block-size: 81.7333px; counter-reset: list-item 0; font-family: Helvetica, Arial, sans-serif; list-style-type: square; margin-block-end: 20px; margin-block-start: 10px; margin-bottom: 20px; margin-top: 10px; perspective-origin: 392px 40.8667px; transform-origin: 392px 40.8667px; margin-top: 10px; margin-bottom: 20px; \"\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 364px 10.2167px; text-align: left; transform-origin: 364px 10.2167px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 275.008px 8px; transform-origin: 275.008px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eSince a triangle always has 3 edges, you could process the edge list by blocks of 3 rows;\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 364px 10.2167px; text-align: left; transform-origin: 364px 10.2167px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 350.75px 8px; transform-origin: 350.75px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eTriangles orientation (vertices order in the list) doesn't matter here : [1 2 3] and [1 3 2] are a same unique triangle;\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 364px 10.2167px; text-align: left; transform-origin: 364px 10.2167px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 232.992px 8px; transform-origin: 232.992px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eOn the other hand, the order of the triangles in the list should be preserved;\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 364px 10.2167px; text-align: left; transform-origin: 364px 10.2167px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 312.692px 8px; transform-origin: 312.692px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"perspective-origin: 249.483px 8px; transform-origin: 249.483px 8px; \"\u003eYou could see this as the reciprocal operation to the one of building the edge list \u003c/span\u003e\u003cspan style=\"border-block-end-style: solid; border-block-end-width: 1px; border-bottom-style: solid; border-bottom-width: 1px; perspective-origin: 2.33333px 8.5px; transform-origin: 2.33333px 8.5px; \"\u003e(\u003c/span\u003e\u003cspan style=\"perspective-origin: 58.5417px 8px; transform-origin: 58.5417px 8px; \"\u003eE = nchoosek(T,2) \u003c/span\u003e\u003cspan style=\"border-block-end-style: solid; border-block-end-width: 1px; border-bottom-style: solid; border-bottom-width: 1px; perspective-origin: 2.33333px 8.5px; transform-origin: 2.33333px 8.5px; \"\u003e)\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003c/ul\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 114.308px 8px; transform-origin: 114.308px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eForbidden functions / expressions\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cul style=\"block-size: 81.7333px; counter-reset: list-item 0; font-family: Helvetica, Arial, sans-serif; list-style-type: square; margin-block-end: 20px; margin-block-start: 10px; margin-bottom: 20px; margin-top: 10px; perspective-origin: 392px 40.8667px; transform-origin: 392px 40.8667px; margin-top: 10px; margin-bottom: 20px; \"\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 364px 10.2167px; text-align: left; transform-origin: 364px 10.2167px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 21.4px 8px; transform-origin: 21.4px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003eregexp\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 364px 10.2167px; text-align: left; transform-origin: 364px 10.2167px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 25.6833px 8px; transform-origin: 25.6833px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003eassignin\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 364px 10.2167px; text-align: left; transform-origin: 364px 10.2167px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 25.2833px 8px; transform-origin: 25.2833px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003estr2num\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 364px 10.2167px; text-align: left; transform-origin: 364px 10.2167px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 15.175px 8px; transform-origin: 15.175px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003eecho\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003c/ul\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 28.3917px 8px; transform-origin: 28.3917px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eSee also\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003ca target='_blank' href = \"https://fr.mathworks.com/matlabcentral/cody/groups/57483\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eMesh processing\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003ca target='_blank' href = \"https://fr.mathworks.com/matlabcentral/fileexchange/85173-mesh-generation-toolbox?s_tid=prof_contriblnk\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eMesh generation toolbox\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function T = build_triangulation_from_edge_list(E)\r\n\r\n  T = E;\r\n  \r\nend","test_suite":"%% One triangle\r\nE = [1 2;\r\n     1 3;\r\n     2 3];\r\n\r\nT_correct = [1 2 3];\r\nassert(isequal(sort(build_triangulation_from_edge_list(E),2),sort(T_correct,2)))\r\n\r\n\r\n%% Two independant consecutive triangles\r\nE = [1 2;\r\n     1 3;\r\n     2 3;\r\n     4 5;\r\n     4 6;\r\n     5 6];\r\n\r\nT_correct = [1 2 3;\r\n             4 5 6];\r\n\r\nassert(isequal(sort(build_triangulation_from_edge_list(E),2),sort(T_correct,2)))\r\n\r\n\r\n%% Two consecutive linked triangles\r\nE = [1 2;\r\n     1 3;\r\n     2 3;\r\n     3 2;\r\n     3 4;\r\n     2 4];\r\n\r\nT_correct = [1 2 3;\r\n             3 2 4];\r\n\r\nassert(isequal(sort(build_triangulation_from_edge_list(E),2),sort(T_correct,2)))\r\n\r\n\r\n%% Full example #1 : tetrahedron\r\nE = [1 2;\r\n     2 4;\r\n     1 4;\r\n     2 3;\r\n     3 4;\r\n     2 4;\r\n     3 1;\r\n     1 4;\r\n     3 4;\r\n     1 3;\r\n     1 2;\r\n     3 2];\r\n\r\nT_correct = [1 2 4;\r\n             2 3 4;\r\n             3 1 4;\r\n             1 3 2];\r\n\r\nassert(isequal(sort(build_triangulation_from_edge_list(E),2),sort(T_correct,2)))\r\n\r\n\r\n%% Full example #2 : octahedron\r\nE = [1 2;\r\n     1 5;\r\n     2 5;\r\n     2 3;\r\n     2 5;\r\n     3 5;\r\n     3 4;\r\n     3 5;\r\n     4 5;\r\n     4 1;\r\n     4 5;\r\n     1 5;\r\n     1 6;\r\n     1 2;\r\n     6 2;\r\n     2 6;\r\n     2 3;\r\n     6 3;\r\n     3 6;\r\n     3 4;\r\n     6 4;\r\n     4 6;\r\n     4 1;\r\n     6 1];\r\n\r\nT_correct = [1 2 5;\r\n             2 3 5;\r\n             3 4 5;\r\n             4 1 5;\r\n             1 6 2;\r\n             2 6 3;\r\n             3 6 4;\r\n             4 6 1];\r\n\r\nassert(isequal(sort(build_triangulation_from_edge_list(E),2),sort(T_correct,2)))\r\n\r\n\r\n%% Forbidden functions\r\nfiletext = fileread('build_triangulation_from_edge_list.m');\r\nillegal = contains(filetext, 'regexp') || contains(filetext, 'str2num') || contains(filetext, 'assignin') || contains(filetext, 'echo')\r\nassert(~illegal);","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":149128,"edited_by":149128,"edited_at":"2025-08-27T15:26:58.000Z","deleted_by":null,"deleted_at":null,"solvers_count":19,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2025-07-23T20:11:40.000Z","updated_at":"2026-02-15T07:41:39.000Z","published_at":"2025-07-24T08:24:46.000Z","restored_at":null,"restored_by":null,"spam":null,"simulink":false,"admin_reviewed":false,"description_opc":"{\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eProblem statement\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eAn edge list is simply a N x 2 matrix of positive integers, in which N is the number of edges and each integer is a vertex index. Like this, an edge is defined by the indices of its two vertices.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eA triangulation is simply a M x 3 matrix of positive integers, in which M is the number of triangles and each integer is a vertex index. Like this, a triangle is defined by the indices of its three vertices.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eIn this problem the gaol is to rebuild the triangulation from the ordered edge list. \u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eExample\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e (check the test suite here below for more)\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[E = [1 2;\\n     1 3;\\n     2 3];]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e=\u0026gt;\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[T = [1 2 3];]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\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\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eTips \u0026amp; clues\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\u003eSince a triangle always has 3 edges, you could process the edge list by blocks of 3 rows;\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\u003eTriangles orientation (vertices order in the list) doesn't matter here : [1 2 3] and [1 3 2] are a same unique triangle;\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\u003eOn the other hand, the order of the triangles in the list should be preserved;\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\u003eYou could see this as the reciprocal operation to the one of building the edge list (E = nchoosek(T,2) )\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eForbidden functions / expressions\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:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eregexp\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:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eassignin\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:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003estr2num\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:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eecho\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eSee also\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:hyperlink w:docLocation=\\\"https://fr.mathworks.com/matlabcentral/cody/groups/57483\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eMesh processing\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:hyperlink w:docLocation=\\\"https://fr.mathworks.com/matlabcentral/fileexchange/85173-mesh-generation-toolbox?s_tid=prof_contriblnk\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eMesh generation toolbox\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\",\"relationship\":null}],\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"target\":\"/matlab/document.xml\",\"relationshipId\":\"rId1\"}]}"},{"id":43642,"title":"Euclidean distance from a point to a polynomial","description":"A not uncommon problem in the area of computational geometry is to find the closest point to a straight line from a given point, or the distance from a point to a line. As you might expect, there is a simple formula for those things.\r\n\r\nAs an extension, I decided one day to write a tool that would compute the distance from a point to a general polynomial function in the (x,y) plane. That is your problem here:\r\n\r\nGiven a point (x0,y0), and a polynomial in the form y=P(x) where the function P is defined by the coefficients of a polynomial, you need to compute the minimum \u003chttps://en.wikipedia.org/wiki/Euclidean_distance Euclidean distance\u003e to that polynomial. So you need to find and return the minimum distance in the (x,y) plane between the point (x0,y0), and the function y=P(x).\r\n\r\nThe function P will be passed in as the coefficients of a polynomial in standard MATLAB form, thus with the highest order coefficient first in a vector, like that generated by polyfit, and used by polyval. (P might be as simple as a constant function.) The point in question will be passed in as a vector of length 2, thus [x0,y0].\r\n\r\nAs test case for you to check your code, the distance from the point (-2,-5) to the curve y=x^2/2+3*x-5 should be:\r\n\r\n  x0y0 = [-2 -5];\r\n  P = [0.5 3 -5];\r\n  D = distance2polynomial(P,xy)\r\n  D =\r\n          1.89013819497707\r\n\r\n(Be careful plotting these curves in case you want to plot your solution. The command \"axis equal\" is a good idea.)\r\n\r\nThe symbolic TB tells me the distance is 1.8901381949770695260066523338279..., but I'll allow some slop in your solution, since you may have chosen a different algorithm than the one I chose. You should expect to provide at least 13 correct significant digits in the solution.\r\n\r\nDisclaimer: I'm not really sure why anyone needs such a code, which is why I've not posted my solution on the FEX. Anyway, my solution is a pretty one that I thought might make a fun Cody problem, and I wanted to see how others might approach the problem. I expect that my reference solution will score poorly for Cody purposes, since it is carefully coded, complete with error checks, and returns more than just the minimum distance.","description_html":"\u003cp\u003eA not uncommon problem in the area of computational geometry is to find the closest point to a straight line from a given point, or the distance from a point to a line. As you might expect, there is a simple formula for those things.\u003c/p\u003e\u003cp\u003eAs an extension, I decided one day to write a tool that would compute the distance from a point to a general polynomial function in the (x,y) plane. That is your problem here:\u003c/p\u003e\u003cp\u003eGiven a point (x0,y0), and a polynomial in the form y=P(x) where the function P is defined by the coefficients of a polynomial, you need to compute the minimum \u003ca href = \"https://en.wikipedia.org/wiki/Euclidean_distance\"\u003eEuclidean distance\u003c/a\u003e to that polynomial. So you need to find and return the minimum distance in the (x,y) plane between the point (x0,y0), and the function y=P(x).\u003c/p\u003e\u003cp\u003eThe function P will be passed in as the coefficients of a polynomial in standard MATLAB form, thus with the highest order coefficient first in a vector, like that generated by polyfit, and used by polyval. (P might be as simple as a constant function.) The point in question will be passed in as a vector of length 2, thus [x0,y0].\u003c/p\u003e\u003cp\u003eAs test case for you to check your code, the distance from the point (-2,-5) to the curve y=x^2/2+3*x-5 should be:\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003ex0y0 = [-2 -5];\r\nP = [0.5 3 -5];\r\nD = distance2polynomial(P,xy)\r\nD =\r\n        1.89013819497707\r\n\u003c/pre\u003e\u003cp\u003e(Be careful plotting these curves in case you want to plot your solution. The command \"axis equal\" is a good idea.)\u003c/p\u003e\u003cp\u003eThe symbolic TB tells me the distance is 1.8901381949770695260066523338279..., but I'll allow some slop in your solution, since you may have chosen a different algorithm than the one I chose. You should expect to provide at least 13 correct significant digits in the solution.\u003c/p\u003e\u003cp\u003eDisclaimer: I'm not really sure why anyone needs such a code, which is why I've not posted my solution on the FEX. Anyway, my solution is a pretty one that I thought might make a fun Cody problem, and I wanted to see how others might approach the problem. I expect that my reference solution will score poorly for Cody purposes, since it is carefully coded, complete with error checks, and returns more than just the minimum distance.\u003c/p\u003e","function_template":"function D = distance2polynomial(P,x0y0)\r\n  % compute the minimum Euclidean distance between a point and a polynomial\r\n  D = rand;\r\nend\r\n","test_suite":"%%\r\nx0y0 = [-2 5];\r\nP = [0.5 3 -5];\r\ny_correct = 4.3093988461280149175163000679048;\r\ntol = 5e-13;\r\nassert(abs(distance2polynomial(P,x0y0)-y_correct) \u003c tol)\r\n\r\n%%\r\nx0y0 = [pi, pi];\r\nP = [10];\r\ny_correct = 6.8584073464102067615373566167205;\r\ntol = 7e-13;\r\nassert(abs(distance2polynomial(P,x0y0)-y_correct) \u003c tol)\r\n\r\n%%\r\nx0y0 = [0.25,50];\r\nP = [1 2 3 4 5];\r\ny_correct = 1.6470039192886012020234097061626;\r\ntol = 5e-13;\r\nassert(abs(distance2polynomial(P,x0y0)-y_correct) \u003c tol)\r\n\r\n%%\r\nx0y0 = [-3 -3];\r\nP = [-2 1];\r\ny_correct = 4.4721359549995793928183473374626;\r\ntol = 5e-13;\r\nassert(abs(distance2polynomial(P,x0y0)-y_correct) \u003c tol)\r\n\r\n%%\r\nx0y0 = [0 5];\r\nP = [1 0 1];\r\ny_correct = 1.9364916731037084425896326998912;\r\ntol = 2e-13;\r\nassert(abs(distance2polynomial(P,x0y0)-y_correct) \u003c tol)\r\n\r\n%%\r\nx0y0 = [-2 -5];\r\nP = [0.5 3 -5];\r\ny_correct = 1.8901381949770695260066523338279;\r\ntol = 2e-13;\r\n(abs(distance2polynomial(P,x0y0)-y_correct) \u003c tol)\r\n\r\n","published":true,"deleted":false,"likes_count":3,"comments_count":2,"created_by":544,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":34,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":37,"created_at":"2016-10-28T21:00:14.000Z","updated_at":"2026-04-08T11:15:12.000Z","published_at":"2016-10-28T21:08:10.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eA not uncommon problem in the area of computational geometry is to find the closest point to a straight line from a given point, or the distance from a point to a line. As you might expect, there is a simple formula for those things.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eAs an extension, I decided one day to write a tool that would compute the distance from a point to a general polynomial function in the (x,y) plane. That is your problem here:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eGiven a point (x0,y0), and a polynomial in the form y=P(x) where the function P is defined by the coefficients of a polynomial, you need to compute the minimum\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://en.wikipedia.org/wiki/Euclidean_distance\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eEuclidean distance\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e to that polynomial. So you need to find and return the minimum distance in the (x,y) plane between the point (x0,y0), and the function y=P(x).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe function P will be passed in as the coefficients of a polynomial in standard MATLAB form, thus with the highest order coefficient first in a vector, like that generated by polyfit, and used by polyval. (P might be as simple as a constant function.) The point in question will be passed in as a vector of length 2, thus [x0,y0].\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eAs test case for you to check your code, the distance from the point (-2,-5) to the curve y=x^2/2+3*x-5 should be:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[x0y0 = [-2 -5];\\nP = [0.5 3 -5];\\nD = distance2polynomial(P,xy)\\nD =\\n        1.89013819497707]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e(Be careful plotting these curves in case you want to plot your solution. The command \\\"axis equal\\\" is a good idea.)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe symbolic TB tells me the distance is 1.8901381949770695260066523338279..., but I'll allow some slop in your solution, since you may have chosen a different algorithm than the one I chose. You should expect to provide at least 13 correct significant digits in the solution.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eDisclaimer: I'm not really sure why anyone needs such a code, which is why I've not posted my solution on the FEX. Anyway, my solution is a pretty one that I thought might make a fun Cody problem, and I wanted to see how others might approach the problem. I expect that my reference solution will score poorly for Cody purposes, since it is carefully coded, complete with error checks, and returns more than just the minimum distance.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":43648,"title":"Arc length of points interpolation","description":"Given a n by m matrix representing m vectors in n dimensions. Calculate the \u003chttps://en.wikipedia.org/wiki/Arc_length arc length\u003e of the closed loop curve going though these points in the order that they are given. The parametric curve, |c(t)| , between points |p(k)| and |p(k+1)| is defined as,\r\n\r\n|c(t) = p(k-1) * (-t/2+t^2-t^3/2) + p(k) * (1-5/2*t^2+3/2*t^3) + p(k+1) * (t/2+2*t^2-3/2*t^3) + p(k+2) * (-t^2/2+t^3/2)|,\r\n\r\nwhere |t| goes from 0 to 1. These interpolation polynomials can also be found using the constraints |c(0)=p(k)|, |c(1)=p(k+1)|, |c'(0)=(p(k+1)-p(k-1))/2| and |c'(1)=(p(k+2)-p(k))/2|.\r\n\r\nFor example for the points\r\n\r\n  points = [[1; 0] [0; 1] [-1; 0] [0; -1]];\r\n\r\nwould yield to following curve: \r\n\r\n\u003c\u003chttp://i.imgur.com/CIb8jFU.png\u003e\u003e","description_html":"\u003cp\u003eGiven a n by m matrix representing m vectors in n dimensions. Calculate the \u003ca href = \"https://en.wikipedia.org/wiki/Arc_length\"\u003earc length\u003c/a\u003e of the closed loop curve going though these points in the order that they are given. The parametric curve, \u003ctt\u003ec(t)\u003c/tt\u003e , between points \u003ctt\u003ep(k)\u003c/tt\u003e and \u003ctt\u003ep(k+1)\u003c/tt\u003e is defined as,\u003c/p\u003e\u003cp\u003e\u003ctt\u003ec(t) = p(k-1) * (-t/2+t^2-t^3/2) + p(k) * (1-5/2*t^2+3/2*t^3) + p(k+1) * (t/2+2*t^2-3/2*t^3) + p(k+2) * (-t^2/2+t^3/2)\u003c/tt\u003e,\u003c/p\u003e\u003cp\u003ewhere \u003ctt\u003et\u003c/tt\u003e goes from 0 to 1. These interpolation polynomials can also be found using the constraints \u003ctt\u003ec(0)=p(k)\u003c/tt\u003e, \u003ctt\u003ec(1)=p(k+1)\u003c/tt\u003e, \u003ctt\u003ec'(0)=(p(k+1)-p(k-1))/2\u003c/tt\u003e and \u003ctt\u003ec'(1)=(p(k+2)-p(k))/2\u003c/tt\u003e.\u003c/p\u003e\u003cp\u003eFor example for the points\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003epoints = [[1; 0] [0; 1] [-1; 0] [0; -1]];\r\n\u003c/pre\u003e\u003cp\u003ewould yield to following curve:\u003c/p\u003e\u003cimg src = \"http://i.imgur.com/CIb8jFU.png\"\u003e","function_template":"function dist = arcLength(points)\r\n    dist = 1;\r\nend","test_suite":"%%\r\npoints = [[1; 0] [0; 1] [-1; 0] [0; -1]];\r\ndist_correct = 5.945066529883204;\r\nassert(abs(arcLength(points) - dist_correct) \u003c 1e-6)\r\n\r\n%%\r\npoints = eye(2);\r\ndist_correct = 2 * sqrt(2);\r\nassert(abs(arcLength(points) - dist_correct) \u003c 1e-6)\r\n\r\n%%\r\npoints = [cos(2*pi/500*(1:500)); sin(2*pi/500*(1:500))];\r\ndist_correct = 6.283185305221142;\r\nassert(abs(arcLength(points) - dist_correct) \u003c 1e-6)\r\n\r\n%%\r\npoints = [[0 0 0]' [1 0 0]' [1 0 1]' [0 0 1]' [0 1 1]' [1 1 1]' [1 1 0]' [0 1 0]'];\r\ndist_correct = 8.367321074314315;\r\nassert(abs(arcLength(points) - dist_correct) \u003c 1e-6)\r\n\r\n%%\r\npoints = [6 -8 -7 -7 3 5;8 -4 9 -1 -9 5;-7 1 9 8 7 -2;8 9 0 6 8 3;3 9 6 9 3 -6];\r\ndist_correct = 101.32625280165301;\r\nassert(abs(arcLength(points) - dist_correct) \u003c 1e-6)\r\n\r\n%%\r\nw = 0.887321243287836;\r\npoints = [-w  0  w  1 1 1 w 0 -w -1 -1 -1; -1 -1 -1 -w 0 w 1 1  1  w  0 -w];\r\ndist_correct = 8;\r\nassert(abs(arcLength(points) - dist_correct) \u003c 1e-6)","published":true,"deleted":false,"likes_count":0,"comments_count":3,"created_by":40782,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":5,"test_suite_updated_at":"2016-12-14T19:45:19.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2016-10-30T02:02:55.000Z","updated_at":"2016-12-14T19:45:19.000Z","published_at":"2016-10-30T02:03:39.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/media/image1.png\"}],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eGiven a n by m matrix representing m vectors in n dimensions. Calculate the\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://en.wikipedia.org/wiki/Arc_length\\\"\u003e\u003cw:r\u003e\u003cw:t\u003earc length\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e of the closed loop curve going though these points in the order that they are given. The parametric curve,\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ec(t)\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e , between points\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ep(k)\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:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ep(k+1)\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e is defined as,\u003c/w:t\u003e\u003c/w:r\u003e\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:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ec(t) = p(k-1) * (-t/2+t^2-t^3/2) + p(k) * (1-5/2*t^2+3/2*t^3) + p(k+1) * (t/2+2*t^2-3/2*t^3) + p(k+2) * (-t^2/2+t^3/2)\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\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ewhere\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003et\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e goes from 0 to 1. These interpolation polynomials can also be found using the constraints\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ec(0)=p(k)\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:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ec(1)=p(k+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:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ec'(0)=(p(k+1)-p(k-1))/2\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:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ec'(1)=(p(k+2)-p(k))/2\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\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFor example for the points\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[points = [[1; 0] [0; 1] [-1; 0] [0; -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\u003ewould yield to following curve:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId1\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"},{\"partUri\":\"/media/image1.png\",\"contentType\":\"image/png\",\"content\":\"data:image/png;base64,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\"}]}"}],"problem_search":{"errors":[],"problems":[{"id":60980,"title":"Mesh the tetrahedron","description":"Problem statement\r\n\r\nAn tetrahedron is a regular polyhedron with 4 vertices and 4 triangular faces. It is also one of the five well known platonic solids.\r\nA triangulated mesh -or a triangulation- is simply a N x 3 matrix of positive integers where each row contains the vertex indices of a triangle, and where N is the number of triangles. \r\n\r\nYour task here is to mesh this tetrahedron. To do so, you will list the triangles/rows in a matrix of triangles, T. You will also be careful to always keep the triangles / faces coherently / consistently oriented (all clockwise or all counterclockwise : triangles [1, 2, 3] and [3, 2, 1] are distinct).\r\nOn the other hand [1, 2, 3], [2, 3, 1] and [3, 1, 2] are one same unique triangle.\r\nThe row order of the triangles in the list doesn't matter.\r\n       \r\nEdit / update\r\nTriangles orientation not taken into account anymore, because of too many possible cases to check in the tests (!)\r\n\r\nExample\r\nThe first triangle (X \u003e 0 and Y \u003e 0) here can be [1, 2, 4] if counterclockwise oriented (normals outward).\r\n\r\n\r\n\r\nForbidden functions / expressions\r\nregexp\r\nassignin\r\nstr2num\r\necho\r\n\r\nSee also\r\nMesh processing\r\nMesh generation toolbox","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.4333px; min-height: 0px; white-space: normal; color: rgb(0, 0, 0); font-family: Menlo, Monaco, Consolas, monospace; font-style: normal; font-size: 14px; font-weight: 400; text-decoration: rgb(0, 0, 0); white-space: normal; \"\u003e\u003cdiv style=\"block-size: 1194.73px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 408px 597.367px; transform-origin: 408px 597.367px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 63.0083px 8px; transform-origin: 63.0083px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eProblem statement\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 21px; text-align: left; transform-origin: 385px 21px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 374.592px 8px; transform-origin: 374.592px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eAn tetrahedron is a regular polyhedron with 4 vertices and 4 triangular faces. It is also one of the five well known platonic solids.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 21px; text-align: left; transform-origin: 385px 21px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 157.542px 8px; transform-origin: 157.542px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eA triangulated mesh -or a triangulation- is simply 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: 5.05833px 8px; transform-origin: 5.05833px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\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: 206.533px 8px; transform-origin: 206.533px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e x 3 matrix of positive integers where each row contains the vertex indices of a triangle, and where \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 5.05833px 8px; transform-origin: 5.05833px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\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: 84.4px 8px; transform-origin: 84.4px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e is the number of triangles. \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 63px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 31.5px; text-align: left; transform-origin: 385px 31.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 328.017px 8px; transform-origin: 328.017px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eYour task here is to mesh this tetrahedron. To do so, you will list the triangles/rows in a matrix of triangles, \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 7.51667px 8px; transform-origin: 7.51667px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003eT. \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 49.4667px 8px; transform-origin: 49.4667px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eYou will also be careful to always keep the triangles / faces coherently / consistently oriented (all clockwise or all counterclockwise : triangles \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 23.325px 8px; transform-origin: 23.325px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003e[1, 2, 3]\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 15.5583px 8px; transform-origin: 15.5583px 8px; unicode-bidi: normal; \"\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: 23.325px 8px; transform-origin: 23.325px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003e[3, 2, 1]\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 40.0583px 8px; transform-origin: 40.0583px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e are distinct).\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 58.3417px 8px; transform-origin: 58.3417px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eOn the other hand \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 23.325px 8px; transform-origin: 23.325px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003e[1, 2, 3]\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 3.88333px 8px; transform-origin: 3.88333px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e, \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 23.325px 8px; transform-origin: 23.325px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003e[2, 3, 1]\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 15.5583px 8px; transform-origin: 15.5583px 8px; unicode-bidi: normal; \"\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: 23.325px 8px; transform-origin: 23.325px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003e[3, 1, 2]\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 94.5333px 8px; transform-origin: 94.5333px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e are one same unique triangle.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 168.575px 8px; transform-origin: 168.575px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe row order of the triangles in the list doesn't matter.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 13.5917px 8px; transform-origin: 13.5917px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e       \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 41.9833px 8px; transform-origin: 41.9833px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eEdit / update\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 351.75px 8px; transform-origin: 351.75px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eTriangles orientation not taken into account anymore, because of too many possible cases to check in the tests (!)\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 28.7833px 8px; transform-origin: 28.7833px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eExample\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 52.1167px 8px; transform-origin: 52.1167px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe first triangle \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 53.2917px 8px; transform-origin: 53.2917px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003e(X \u0026gt; 0 and Y \u0026gt; 0)\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 42.7833px 8px; transform-origin: 42.7833px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e here can be [\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 21.3833px 8px; transform-origin: 21.3833px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003e1, 2, 4]\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 148.208px 8px; transform-origin: 148.208px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e if counterclockwise oriented (normals outward).\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 378px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 189px; text-align: left; transform-origin: 385px 189px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cimg class=\"imageNode\" width=\"504\" height=\"378\" style=\"vertical-align: middle;width: 504px;height: 378px\" src=\"data:image/png;base64,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\" data-image-state=\"image-loaded\"\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 114.308px 8px; transform-origin: 114.308px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eForbidden functions / expressions\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cul style=\"block-size: 81.7333px; counter-reset: list-item 0; font-family: Helvetica, Arial, sans-serif; list-style-type: square; margin-block-end: 20px; margin-block-start: 10px; margin-bottom: 20px; margin-top: 10px; perspective-origin: 392px 40.8667px; transform-origin: 392px 40.8667px; margin-top: 10px; margin-bottom: 20px; \"\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 364px 10.2167px; text-align: left; transform-origin: 364px 10.2167px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 21.4px 8px; transform-origin: 21.4px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003eregexp\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 364px 10.2167px; text-align: left; transform-origin: 364px 10.2167px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 25.6833px 8px; transform-origin: 25.6833px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003eassignin\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 364px 10.2167px; text-align: left; transform-origin: 364px 10.2167px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 25.2833px 8px; transform-origin: 25.2833px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003estr2num\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 364px 10.2167px; text-align: left; transform-origin: 364px 10.2167px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 15.175px 8px; transform-origin: 15.175px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003eecho\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003c/ul\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 28.3917px 8px; transform-origin: 28.3917px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eSee also\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003ca target='_blank' href = \"https://fr.mathworks.com/matlabcentral/cody/groups/57483\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eMesh processing\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003ca target='_blank' href = \"https://fr.mathworks.com/matlabcentral/fileexchange/85173-mesh-generation-toolbox?s_tid=prof_contriblnk\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eMesh generation toolbox\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function T = mesh_the_tetrahedron()\r\n  T = 1;\r\nend","test_suite":"%%\r\nT_correct = [1 2 4;\r\n             2 3 4;\r\n             3 1 4;\r\n             1 3 2];\r\n\r\n% Check every possible solutions\r\nassert(isequal(sortrows(sort(mesh_the_tetrahedron(),2)),sortrows(sort(T_correct,2))))\r\n\r\n%% Forbidden functions\r\nfiletext = fileread('mesh_the_tetrahedron.m');\r\nillegal = contains(filetext, 'regexp') || contains(filetext, 'str2num') || contains(filetext, 'assignin') || contains(filetext, 'echo')\r\nassert(~illegal);","published":true,"deleted":false,"likes_count":1,"comments_count":1,"created_by":149128,"edited_by":149128,"edited_at":"2025-07-26T07:43:58.000Z","deleted_by":null,"deleted_at":null,"solvers_count":40,"test_suite_updated_at":"2025-07-23T16:17:50.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2025-07-23T11:03:01.000Z","updated_at":"2026-04-07T07:21:51.000Z","published_at":"2025-07-23T11:11:01.000Z","restored_at":null,"restored_by":null,"spam":null,"simulink":false,"admin_reviewed":false,"description_opc":"{\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eProblem statement\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\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\u003eAn tetrahedron is a regular polyhedron with 4 vertices and 4 triangular faces. It is also one of the five well known platonic solids.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eA triangulated mesh -or a triangulation- is simply a \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eN\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e x 3 matrix of positive integers where each row contains the vertex indices of a triangle, and where \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eN\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e is the number of triangles. \u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eYour task here is to mesh this tetrahedron. To do so, you will list the triangles/rows in a matrix of triangles, \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eT. \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003eYou will also be careful to always keep the triangles / faces coherently / consistently oriented (all clockwise or all counterclockwise : triangles \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e[1, 2, 3]\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e and \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e[3, 2, 1]\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e are distinct).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eOn the other hand \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e[1, 2, 3]\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\u003e[2, 3, 1]\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e and \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e[3, 1, 2]\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e are one same unique triangle.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\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 row order of the triangles in the list doesn't matter.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e       \u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eEdit / update\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eTriangles orientation not taken into account anymore, because of too many possible cases to check in the tests (!)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eExample\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe first triangle \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e(X \u0026gt; 0 and Y \u0026gt; 0)\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e here can be [\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e1, 2, 4]\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e if counterclockwise oriented (normals outward).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"378\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"504\\\"/\u003e\u003cw:attr w:name=\\\"verticalAlign\\\" w:val=\\\"middle\\\"/\u003e\u003cw:attr w:name=\\\"altText\\\" w:val=\\\"\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId1\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eForbidden functions / expressions\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:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eregexp\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:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eassignin\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:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003estr2num\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:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eecho\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eSee also\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:hyperlink w:docLocation=\\\"https://fr.mathworks.com/matlabcentral/cody/groups/57483\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eMesh processing\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:hyperlink w:docLocation=\\\"https://fr.mathworks.com/matlabcentral/fileexchange/85173-mesh-generation-toolbox?s_tid=prof_contriblnk\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eMesh generation toolbox\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\",\"relationship\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"target\":\"/media/image1.png\",\"relationshipId\":\"rId1\"}]},{\"partUri\":\"/media/image1.png\",\"contentType\":\"image/png\",\"content\":\"data:image/png;base64,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\",\"relationship\":null}],\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"target\":\"/matlab/document.xml\",\"relationshipId\":\"rId1\"}]}"},{"id":60981,"title":"Mesh the pentagon (with the minimum number of triangles)","description":"Problem statement\r\n\r\nAn pentagon is a regular polygon with 5 vertices and 5 edges. Here below is an example of the vertex set V, corresponding to the XYZ coordinates column vectors of a pentagon included in the unit circle.\r\n\r\nV = [1           0            0;\r\n     cos(2*pi/5) sin(2*pi/5)  0;\r\n     cos(4*pi/5) sin(4*pi/5)  0;\r\n     cos(4*pi/5) sin(-4*pi/5) 0;\r\n     cos(2*pi/5) sin(-2*pi/5) 0];\r\n\r\nA triangulated mesh T (stands for triangles here) -or a triangulation- is simply a N x 3 matrix of positive integers where each row contains the vertex indices of a triangle, and where N is the number of triangles. \r\n\r\nYour task here is to mesh this pentagon with the minimum possible number of triangles. To do so, you will list the pentagons/rows in a matrix of faces, F. The row order of the triangles in the list doesn't matter.\r\n\r\nExample\r\nThe first triangle here can be [1, 2, 3] if counterclockwise oriented.\r\n\r\n\r\n\r\n\r\nTip\r\nBeware to avoid self intersecting triangles.\r\n\r\nForbidden functions / expressions\r\nregexp\r\nassignin\r\nstr2num\r\necho\r\n\r\nSee also\r\nMesh processing\r\nMesh generation toolbox","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.4333px; min-height: 0px; white-space: normal; color: rgb(0, 0, 0); font-family: Menlo, Monaco, Consolas, monospace; font-style: normal; font-size: 14px; font-weight: 400; text-decoration: rgb(0, 0, 0); white-space: normal; \"\u003e\u003cdiv style=\"block-size: 1278.4px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 408px 639.2px; transform-origin: 408px 639.2px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 63.0083px 8px; transform-origin: 63.0083px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eProblem statement\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 21px; text-align: left; transform-origin: 385px 21px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 327.525px 8px; transform-origin: 327.525px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eAn pentagon is a regular polygon with 5 vertices and 5 edges. Here below is an example of the vertex set \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 6.09167px 8px; transform-origin: 6.09167px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003eV,\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 48.2417px 8px; transform-origin: 48.2417px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e corresponding to the XYZ coordinates column vectors of a pentagon included in the unit circle.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgb(247, 247, 247); block-size: 102.167px; border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; border-end-end-radius: 4px; border-end-start-radius: 4px; border-start-end-radius: 4px; border-start-start-radius: 4px; border-top-left-radius: 4px; border-top-right-radius: 4px; margin-block-end: 10px; margin-block-start: 10px; margin-bottom: 10px; margin-inline-end: 3px; margin-inline-start: 3px; margin-left: 3px; margin-right: 3px; margin-top: 10px; perspective-origin: 405px 51.0833px; transform-origin: 405px 51.0833px; margin-left: 3px; margin-top: 10px; margin-bottom: 10px; margin-right: 3px; \"\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 405px 10.2167px; text-wrap-mode: nowrap; transform-origin: 405px 10.2167px; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 123.2px 8.5px; tab-size: 4; transform-origin: 123.2px 8.5px; unicode-bidi: normal; white-space-collapse: preserve; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003eV = [1           0            0;\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 405px 10.2167px; text-wrap-mode: nowrap; transform-origin: 405px 10.2167px; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 123.2px 8.5px; tab-size: 4; transform-origin: 123.2px 8.5px; unicode-bidi: normal; white-space-collapse: preserve; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e     cos(2*pi/5) sin(2*pi/5)  0;\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 405px 10.2167px; text-wrap-mode: nowrap; transform-origin: 405px 10.2167px; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 123.2px 8.5px; tab-size: 4; transform-origin: 123.2px 8.5px; unicode-bidi: normal; white-space-collapse: preserve; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e     cos(4*pi/5) sin(4*pi/5)  0;\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 405px 10.2167px; text-wrap-mode: nowrap; transform-origin: 405px 10.2167px; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 123.2px 8.5px; tab-size: 4; transform-origin: 123.2px 8.5px; unicode-bidi: normal; white-space-collapse: preserve; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e     cos(4*pi/5) sin(-4*pi/5) 0;\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 405px 10.2167px; text-wrap-mode: nowrap; transform-origin: 405px 10.2167px; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 127.05px 8.5px; tab-size: 4; transform-origin: 127.05px 8.5px; unicode-bidi: normal; white-space-collapse: preserve; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e     cos(2*pi/5) sin(-2*pi/5) 0];\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 10px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 10px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 10px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 21px; text-align: left; transform-origin: 385px 21px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 64.1833px 8px; transform-origin: 64.1833px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eA triangulated mesh \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 4.275px 8px; transform-origin: 4.275px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003eT\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 176.983px 8px; transform-origin: 176.983px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e (stands for triangles here) -or a triangulation- is simply 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: 5.05833px 8px; transform-origin: 5.05833px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\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: 132.633px 8px; transform-origin: 132.633px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e x 3 matrix of positive integers where each row contains the vertex indices of a triangle, and where \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 5.05833px 8px; transform-origin: 5.05833px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\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: 84.4px 8px; transform-origin: 84.4px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e is the number of triangles. \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 21px; text-align: left; transform-origin: 385px 21px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 384.442px 8px; transform-origin: 384.442px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eYour task here is to mesh this pentagon with the minimum possible number of triangles. To do so, you will list the pentagons/rows in a matrix of faces, \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 7.25833px 8px; transform-origin: 7.25833px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003eF. \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 168.575px 8px; transform-origin: 168.575px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe row order of the triangles in the list doesn't matter.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 28.7833px 8px; transform-origin: 28.7833px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eExample\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 92.9583px 8px; transform-origin: 92.9583px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe first triangle here can be [\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 21.3833px 8px; transform-origin: 21.3833px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003e1, 2, 3]\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 89.8583px 8px; transform-origin: 89.8583px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e if counterclockwise oriented.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 339.5px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 169.75px; text-align: left; transform-origin: 385px 169.75px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cimg class=\"imageNode\" width=\"445\" height=\"334\" style=\"vertical-align: baseline;width: 445px;height: 334px\" src=\"data:image/png;base64,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X/hC8ZIpiFuA+u2v3BahC9ADs5JkzZw585VXXjnssMNee+21o48+evv27e1vjBoaGnrhhReOOuqoN998c/bs2Xv27Gl/g/HELUCzHOcC9MNP3yFZS5cubSVu6+H2228/IHFb3n777bVr17YeDjnkkJNPPrl4yRituC1+HaAVt8UvAOqxf+R2+2tHADr4G0FSNnv27I997GPPPvvsM888037VYc2aNWeffXbr4cQTT3zssceKlzi5BQiUE12A3piSZGpkZOSll1467LDDtm3bNnfu3M4ruzma5HBA3AIEwgVdgN7YWCZHhx9++C233FLsM//gBz/IN3GLheQJE7fYSZa4AOEwkwF64y8CychHPvKRBQsWnHrqqRdccMHcuXNbb1qtu2LFiuK7GXFyCxAve8sAUzEfycj27dvf+c53tr846KCf//znF110UfuLHIhbgDQIXYBJGY7kYmhoaPfu3du2bZsxY8aRRx5ZvPzXv/513nnnPfjgg8WXaRK3AIlxQRdgUiYjGWmFbnEFd8GCBd/4xjdWrVrVen7jjTdOOeWU9evXj/6RhIhbgIQ5zgXozmQkX9dcc81XvvKV1sM//vGPJUuWFC+jJ24BMiF0AbowFsnX8PDwli1bjjjiiNbzMcccs2nTpuJ9lMQtQG7sLQN0YSaStTVr1px99tmth0996lN333138TIm3eJW2QLkwHEuwET8e7kka3h4ePHixcuWLZs/f3771Ti7du0qHmbOnFk8xKEVt8WvA7TitvgFQA72D/xJNnoA8qNySda111778MMP33HHHUuXLm2/Gufoo48uHrZu3Vo8BE3cAnAAoQswjv0WkrV8+fLbb7+99XD//feffvrpxctOxx577DPPPDNjxoxXX331Xe96V/Hjl0PU7T9cZC0ALS7oAoxlFJKsmTNnbtq06aijjmo9n3POObfeemvxvjB79uw//elPp556auv5O9/5zuWXX168D4i4BaBHLugCdDAKSdm55557yy23tB7efPPNK6644rrrrtu+ffvQ0NDSpUu///3vf+hDH2p96/HHHz/llFN27tw5+r/RtEn2zcQtAJMQugD7mIMk7rLLLlu9enXx/NZbb73++uuzZs065JBDijePPvroxz/+8c2bNxdfNkbcAjA4oQswyhAkfaeddtoPf/jDxYsXt78etWXLlh//+MdXX3317t27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\" data-image-state=\"image-loaded\"\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 10.3667px 8px; transform-origin: 10.3667px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eTip\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 131.092px 8px; transform-origin: 131.092px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eBeware to avoid self intersecting triangles.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 114.308px 8px; transform-origin: 114.308px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eForbidden functions / expressions\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cul style=\"block-size: 81.7333px; counter-reset: list-item 0; font-family: Helvetica, Arial, sans-serif; list-style-type: square; margin-block-end: 20px; margin-block-start: 10px; margin-bottom: 20px; margin-top: 10px; perspective-origin: 392px 40.8667px; transform-origin: 392px 40.8667px; margin-top: 10px; margin-bottom: 20px; \"\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 364px 10.2167px; text-align: left; transform-origin: 364px 10.2167px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 21.4px 8px; transform-origin: 21.4px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003eregexp\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 364px 10.2167px; text-align: left; transform-origin: 364px 10.2167px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 25.6833px 8px; transform-origin: 25.6833px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003eassignin\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 364px 10.2167px; text-align: left; transform-origin: 364px 10.2167px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 25.2833px 8px; transform-origin: 25.2833px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003estr2num\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 364px 10.2167px; text-align: left; transform-origin: 364px 10.2167px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 15.175px 8px; transform-origin: 15.175px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003eecho\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003c/ul\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 28.3917px 8px; transform-origin: 28.3917px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eSee also\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003ca target='_blank' href = \"https://fr.mathworks.com/matlabcentral/cody/groups/57483\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eMesh processing\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003ca target='_blank' href = \"https://fr.mathworks.com/matlabcentral/fileexchange/85173-mesh-generation-toolbox?s_tid=prof_contriblnk\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eMesh generation toolbox\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function T = mesh_the_pentagon()\r\n  T = 1;\r\nend","test_suite":"%%\r\nT_correct1 = [1 2 3;\r\n              1 3 4;\r\n              1 4 5];\r\n\r\nT_correct2 = [2 3 4;\r\n              2 4 5;\r\n              2 5 1];\r\n\r\nT_correct3 = [3 4 5;\r\n              3 5 1;\r\n              3 1 2];\r\n\r\nT_correct4 = [3 4 5;\r\n              3 5 1;\r\n              3 1 2];\r\n\r\nT_correct5 = [5 1 2;\r\n              5 2 3;\r\n              5 3 4];\r\n\r\n% Check every possible solutions\r\nassert(isequal(sortrows(sort(mesh_the_pentagon(),2)),sortrows(sort(T_correct1,2)))...\r\n     | isequal(sortrows(sort(mesh_the_pentagon(),2)),sortrows(sort(T_correct2,2)))...\r\n     | isequal(sortrows(sort(mesh_the_pentagon(),2)),sortrows(sort(T_correct3,2)))...\r\n     | isequal(sortrows(sort(mesh_the_pentagon(),2)),sortrows(sort(T_correct4,2)))...\r\n     | isequal(sortrows(sort(mesh_the_pentagon(),2)),sortrows(sort(T_correct5,2))))\r\n\r\n%% Forbidden functions\r\nfiletext = fileread('mesh_the_pentagon.m');\r\nillegal = contains(filetext, 'regexp') || contains(filetext, 'str2num') || contains(filetext, 'assignin') || contains(filetext, 'echo')\r\nassert(~illegal);","published":true,"deleted":false,"likes_count":1,"comments_count":6,"created_by":149128,"edited_by":149128,"edited_at":"2025-08-13T05:29:08.000Z","deleted_by":null,"deleted_at":null,"solvers_count":31,"test_suite_updated_at":"2025-08-13T05:29:08.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2025-07-23T12:59:46.000Z","updated_at":"2026-02-10T17:07:57.000Z","published_at":"2025-07-23T15:54:36.000Z","restored_at":null,"restored_by":null,"spam":null,"simulink":false,"admin_reviewed":false,"description_opc":"{\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eProblem statement\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\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\u003eAn pentagon is a regular polygon with 5 vertices and 5 edges. Here below is an example of the vertex set \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eV,\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e corresponding to the XYZ coordinates column vectors of a pentagon included in the unit circle.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[V = [1           0            0;\\n     cos(2*pi/5) sin(2*pi/5)  0;\\n     cos(4*pi/5) sin(4*pi/5)  0;\\n     cos(4*pi/5) sin(-4*pi/5) 0;\\n     cos(2*pi/5) sin(-2*pi/5) 0];]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eA triangulated mesh \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eT\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e (stands for triangles here) -or a triangulation- is simply a \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eN\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e x 3 matrix of positive integers where each row contains the vertex indices of a triangle, and where \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eN\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e is the number of triangles. \u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eYour task here is to mesh this pentagon with the minimum possible number of triangles. To do so, you will list the pentagons/rows in a matrix of faces, \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eF. \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003eThe row order of the triangles in the list doesn't matter.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eExample\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe first triangle here can be [\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e1, 2, 3]\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e if counterclockwise oriented.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"334\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"445\\\"/\u003e\u003cw:attr w:name=\\\"verticalAlign\\\" w:val=\\\"baseline\\\"/\u003e\u003cw:attr w:name=\\\"altText\\\" w:val=\\\"\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId1\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eTip\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eBeware to avoid self intersecting triangles.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eForbidden functions / expressions\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:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eregexp\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:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eassignin\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:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003estr2num\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:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eecho\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eSee also\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:hyperlink w:docLocation=\\\"https://fr.mathworks.com/matlabcentral/cody/groups/57483\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eMesh processing\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:hyperlink w:docLocation=\\\"https://fr.mathworks.com/matlabcentral/fileexchange/85173-mesh-generation-toolbox?s_tid=prof_contriblnk\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eMesh generation toolbox\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\",\"relationship\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"target\":\"/media/image1.png\",\"relationshipId\":\"rId1\"}]},{\"partUri\":\"/media/image1.png\",\"contentType\":\"image/png\",\"content\":\"data:image/png;base64,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X/hC8ZIpiFuA+u2v3BahC9ADs5JkzZw585VXXjnssMNee+21o48+evv27e1vjBoaGnrhhReOOuqoN998c/bs2Xv27Gl/g/HELUCzHOcC9MNP3yFZS5cubSVu6+H2228/IHFb3n777bVr17YeDjnkkJNPPrl4yRituC1+HaAVt8UvAOqxf+R2+2tHADr4G0FSNnv27I997GPPPvvsM888037VYc2aNWeffXbr4cQTT3zssceKlzi5BQiUE12A3piSZGpkZOSll1467LDDtm3bNnfu3M4ruzma5HBA3AIEwgVdgN7YWCZHhx9++C233FLsM//gBz/IN3GLheQJE7fYSZa4AOEwkwF64y8CychHPvKRBQsWnHrqqRdccMHcuXNbb1qtu2LFiuK7GXFyCxAve8sAUzEfycj27dvf+c53tr846KCf//znF110UfuLHIhbgDQIXYBJGY7kYmhoaPfu3du2bZsxY8aRRx5ZvPzXv/513nnnPfjgg8WXaRK3AIlxQRdgUiYjGWmFbnEFd8GCBd/4xjdWrVrVen7jjTdOOeWU9evXj/6RhIhbgIQ5zgXozmQkX9dcc81XvvKV1sM//vGPJUuWFC+jJ24BMiF0AbowFsnX8PDwli1bjjjiiNbzMcccs2nTpuJ9lMQtQG7sLQN0YSaStTVr1px99tmth0996lN333138TIm3eJW2QLkwHEuwET8e7kka3h4ePHixcuWLZs/f3771Ti7du0qHmbOnFk8xKEVt8WvA7TitvgFQA72D/xJNnoA8qNySda111778MMP33HHHUuXLm2/Gufoo48uHrZu3Vo8BE3cAnAAoQswjv0WkrV8+fLbb7+99XD//feffvrpxctOxx577DPPPDNjxoxXX331Xe96V/Hjl0PU7T9cZC0ALS7oAoxlFJKsmTNnbtq06aijjmo9n3POObfeemvxvjB79uw//elPp556auv5O9/5zuWXX168D4i4BaBHLugCdDAKSdm55557yy23tB7efPPNK6644rrrrtu+ffvQ0NDSpUu///3vf+hDH2p96/HHHz/llFN27tw5+r/RtEn2zcQtAJMQugD7mIMk7rLLLlu9enXx/NZbb73++uuzZs065JBDijePPvroxz/+8c2bNxdfNkbcAjA4oQswyhAkfaeddtoPf/jDxYsXt78etWXLlh//+MdXX3317t27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\",\"relationship\":null}],\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"target\":\"/matlab/document.xml\",\"relationshipId\":\"rId1\"}]}"},{"id":43007,"title":"Euclidean inter-point distance matrix","description":"The Euclidean distance between two points in a p-dimensional space is a really common thing to compute in the field of computational geometry. In fact, it is pretty easy to do. norm(u-v) would seem to do the trick, for vectors u and v.\r\n\r\nBut what if you have a large number of points between which you want to compute ALL of those distances between every pair of points? In this problem, given an n by p array A, where each row of the matrix will be viewed as containing the coordinates of one p-dimensional point, you need to compute the n by n inter-point distance matrix.\r\n\r\nThus, D(i,J) will be the Euclidean distance between the i'th and j'th rows of A. Of course, D will be a symmetric matrix, with zeros on the diagonal.\r\n\r\nSo you can test your code, here is an example:\r\n\r\n  A = [1 1\r\n       5 2\r\n       2 2\r\n       4 5]\r\n\r\n  format short g\r\n  D = interDist(A)\r\n  D =\r\n         0       4.1231       1.4142            5\r\n    4.1231            0            3       3.1623\r\n    1.4142            3            0       3.6056\r\n         5       3.1623       3.6056            0\r\n\r\nThus, thinking of the points [1 1] and [5 2] as the coordinates of two points in the (x,y) plane, the Euclidean distance between them in that plane is 4.1231...\r\n\r\nAs you can see, the matrix is symmetric, with zeros on the main diagonal. That must always happen, since the distance between any point and itself must be zero.","description_html":"\u003cp\u003eThe Euclidean distance between two points in a p-dimensional space is a really common thing to compute in the field of computational geometry. In fact, it is pretty easy to do. norm(u-v) would seem to do the trick, for vectors u and v.\u003c/p\u003e\u003cp\u003eBut what if you have a large number of points between which you want to compute ALL of those distances between every pair of points? In this problem, given an n by p array A, where each row of the matrix will be viewed as containing the coordinates of one p-dimensional point, you need to compute the n by n inter-point distance matrix.\u003c/p\u003e\u003cp\u003eThus, D(i,J) will be the Euclidean distance between the i'th and j'th rows of A. Of course, D will be a symmetric matrix, with zeros on the diagonal.\u003c/p\u003e\u003cp\u003eSo you can test your code, here is an example:\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003eA = [1 1\r\n     5 2\r\n     2 2\r\n     4 5]\r\n\u003c/pre\u003e\u003cpre class=\"language-matlab\"\u003eformat short g\r\nD = interDist(A)\r\nD =\r\n       0       4.1231       1.4142            5\r\n  4.1231            0            3       3.1623\r\n  1.4142            3            0       3.6056\r\n       5       3.1623       3.6056            0\r\n\u003c/pre\u003e\u003cp\u003eThus, thinking of the points [1 1] and [5 2] as the coordinates of two points in the (x,y) plane, the Euclidean distance between them in that plane is 4.1231...\u003c/p\u003e\u003cp\u003eAs you can see, the matrix is symmetric, with zeros on the main diagonal. That must always happen, since the distance between any point and itself must be zero.\u003c/p\u003e","function_template":"function D = interDist(A)\r\n  % compute the interpoint distance matrix between rows of A\r\n  D = A;\r\nend\r\n\r\n","test_suite":"%%\r\nA = eye(3);\r\ny_correct = (1-A)*sqrt(2);\r\ntol = 10*eps;\r\nassert(norm(interDist(A)-y_correct) \u003c tol)\r\n\r\n%%\r\nA = (1:4)';\r\ny_correct = [     0     1     2     3;...\r\n     1     0     1     2;...\r\n     2     1     0     1;...\r\n     3     2     1     0];\r\ntol = 10*eps;\r\nassert(norm(interDist(A)-y_correct) \u003c tol)\r\n\r\n\r\n\r\n\r\n%%\r\nA = magic(3);\r\ny_correct = [0       6.48074069840786 9.79795897113271; ...\r\n  6.48074069840786                0 6.48074069840786; ...\r\n  9.79795897113271 6.48074069840786                0];\r\ntol = 1000*eps;\r\nassert(norm(interDist(A)-y_correct) \u003c tol)\r\n\r\n%%\r\nA = reshape((1:20).^2,4,5);\r\ntol = 1e-12;\r\ny_correct = [0 49.4469412603045 102.761860629321 160.015624237135; ...\r\n   49.4469412603045 0 53.3385414123783 110.634533487515; ...\r\n   102.761860629321 53.3385414123783 0 57.3149195236284; ...\r\n   160.015624237135 110.634533487515 57.3149195236284 0];\r\nassert(norm(interDist(A)-y_correct) \u003c tol)\r\n\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":544,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":28,"test_suite_updated_at":"2016-10-02T16:43:44.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2016-10-02T13:56:26.000Z","updated_at":"2026-04-02T13:14:06.000Z","published_at":"2016-10-02T16:43:44.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe Euclidean distance between two points in a p-dimensional space is a really common thing to compute in the field of computational geometry. In fact, it is pretty easy to do. norm(u-v) would seem to do the trick, for vectors u and v.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eBut what if you have a large number of points between which you want to compute ALL of those distances between every pair of points? In this problem, given an n by p array A, where each row of the matrix will be viewed as containing the coordinates of one p-dimensional point, you need to compute the n by n inter-point distance matrix.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThus, D(i,J) will be the Euclidean distance between the i'th and j'th rows of A. Of course, D will be a symmetric matrix, with zeros on the diagonal.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eSo you can test your code, here is an example:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[A = [1 1\\n     5 2\\n     2 2\\n     4 5]\\n\\nformat short g\\nD = interDist(A)\\nD =\\n       0       4.1231       1.4142            5\\n  4.1231            0            3       3.1623\\n  1.4142            3            0       3.6056\\n       5       3.1623       3.6056            0]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThus, thinking of the points [1 1] and [5 2] as the coordinates of two points in the (x,y) plane, the Euclidean distance between them in that plane is 4.1231...\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eAs you can see, the matrix is symmetric, with zeros on the main diagonal. That must always happen, since the distance between any point and itself must be zero.\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":60979,"title":"Mesh the cube","description":"Problem statement : mesh the cube with quadranglar / squared faces\r\n\r\nAn cube / regular hexahedron is a regular polyhedron with 8 vertices and 6 squared / quadrangular faces. It is also one of the five well known platonic solids.\r\nA quadrangular mesh F (stands for faces here) is simply a N x 4 matrix of positive integers where each row contains the vertex indices of squared faces, and where N is the number of faces. \r\n\r\nYour task here is to mesh this cube. To do so, you will list the squares/rows in a matrix of faces, F. You will also be careful to always keep the faces coherently / consistently oriented (all clockwise or all counterclockwise : square [1, 2, 3, 4] and [4, 3, 2, 1] are distinct).\r\nOn the other hand [1, 2, 3, 4], [2, 3, 4, 1], [3, 4, 1, 2] and [4, 1, 2, 3] are one same unique square.\r\nThe row order of the faces in the list doesn't matter.\r\n\r\nEdit / update\r\nFaces orientation not taken into account anymore, because of too many possible cases to check in the tests (!)\r\n\r\nExample\r\nThe first square (Z \u003e 0) here can be [1, 2, 3, 4] if counterclockwise oriented (normals outward).\r\n\r\n\r\n\r\nForbidden functions / expressions\r\nregexp\r\nassignin\r\nstr2num\r\necho\r\n\r\nSee also\r\nMesh processing\r\nMesh generation toolbox","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.4333px; min-height: 0px; white-space: normal; color: rgb(0, 0, 0); font-family: Menlo, Monaco, Consolas, monospace; font-style: normal; font-size: 14px; font-weight: 400; text-decoration: rgb(0, 0, 0); white-space: normal; \"\u003e\u003cdiv style=\"block-size: 1194.73px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 408px 597.367px; transform-origin: 408px 597.367px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 229.433px 8px; transform-origin: 229.433px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eProblem statement : mesh the cube with quadranglar / squared faces\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 21px; text-align: left; transform-origin: 385px 21px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 376.933px 8px; transform-origin: 376.933px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eAn cube / regular hexahedron is a regular polyhedron with 8 vertices and 6 squared / quadrangular faces. It is also one of the five well known platonic solids.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 21px; text-align: left; transform-origin: 385px 21px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 68.8583px 8px; transform-origin: 68.8583px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eA quadrangular mesh \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 4.275px 8px; transform-origin: 4.275px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003eF\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 36.9417px 8px; transform-origin: 36.9417px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e (stands for \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 16.725px 8px; transform-origin: 16.725px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003efaces\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 54.8417px 8px; transform-origin: 54.8417px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e here) is simply 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: 5.05833px 8px; transform-origin: 5.05833px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\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: 185.533px 8px; transform-origin: 185.533px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e x 4 matrix of positive integers where each row contains the vertex indices of squared faces, and where \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 5.05833px 8px; transform-origin: 5.05833px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\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: 74.6667px 8px; transform-origin: 74.6667px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e is the number of faces. \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 63px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 31.5px; text-align: left; transform-origin: 385px 31.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 296.108px 8px; transform-origin: 296.108px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eYour task here is to mesh this cube. To do so, you will list the squares/rows in a matrix of faces, \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 7.25833px 8px; transform-origin: 7.25833px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003eF. \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 80.6583px 8px; transform-origin: 80.6583px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eYou will also be careful to always keep the faces coherently / consistently oriented (all clockwise or all counterclockwise : square \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 31.1px 8px; transform-origin: 31.1px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003e[1, 2, 3, 4]\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 15.5583px 8px; transform-origin: 15.5583px 8px; unicode-bidi: normal; \"\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: 17.4917px 8px; transform-origin: 17.4917px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003e[4, 3, 2, 1]\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 40.0583px 8px; transform-origin: 40.0583px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e are distinct).\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 58.3417px 8px; transform-origin: 58.3417px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eOn the other hand \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 31.1px 8px; transform-origin: 31.1px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003e[1, 2, 3, 4]\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 3.88333px 8px; transform-origin: 3.88333px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e, \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 66.0833px 8px; transform-origin: 66.0833px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003e[2, 3, 4, 1], [3, 4, 1, 2]\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 15.5583px 8px; transform-origin: 15.5583px 8px; unicode-bidi: normal; \"\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: 31.1px 8px; transform-origin: 31.1px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003e[4, 1, 2, 3]\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 92.975px 8px; transform-origin: 92.975px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e are one same unique square.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 158.842px 8px; transform-origin: 158.842px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe row order of the faces in the list doesn't matter.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 41.9833px 8px; transform-origin: 41.9833px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eEdit / update\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 342.275px 8px; transform-origin: 342.275px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eFaces orientation not taken into account anymore, because of too many possible cases to check in the tests (!)\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 28.7833px 8px; transform-origin: 28.7833px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eExample\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 50.5583px 8px; transform-origin: 50.5583px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe first square \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 20.8083px 8px; transform-origin: 20.8083px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003e(Z \u0026gt; 0)\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 42.7833px 8px; transform-origin: 42.7833px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e here can be [\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 29.1583px 8px; transform-origin: 29.1583px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003e1, 2, 3, 4]\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 148.208px 8px; transform-origin: 148.208px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e if counterclockwise oriented (normals outward).\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 378px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 189px; text-align: left; transform-origin: 385px 189px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cimg class=\"imageNode\" width=\"504\" height=\"378\" style=\"vertical-align: middle;width: 504px;height: 378px\" src=\"data:image/png;base64,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I44ujcVI2ihIG0AMPvaAto13geBXbRSKdWruOWOEXVCF+nyLijdSKIYjjs6MxUjXKHQ7bbhFBXJjugKtGskE8dNG91i3Va63gcN7KRTDEUc3xqJvaSMROCA3blEBWjJyT0fwG1K6yqKNShRvJO+lUAxHHN0Yi/EbUtyTAoTk8w9onKs2grAFqknfruDwRorGiMTRgbHo+bM2XMEBuXEFB9Cgkas2CupGWyzXqIQ3UjRGJIhiIHIfi9f7R1KA/AgcQCMmpg11oxUdWHYThDdSNEYkiI6ljYK0AWTCByFQs5GuUdA1WmT/04A+3KLijRSQQQki64EY6RqFnqcNt6hAblzBAdGdeuqpl1xyyW233bZ58+bia3H8ohe9aM2aTCavqzZCsUSjEt5I0RQjYlCCyHcgJl614cINIDc+DiGufffd98Mf/vAhhxwy+H7I17/+9eOOO+6qq64afB+QZ21EY//TmG5fweGNFI0RiSPrujFM1yi5ggNyY7pCUOvXr//iF7/4iEc8ojj+2te+9r//9/++7rrr9thjj1NOOeXxj3988eJNN9108MEH33jjjSt/PRJpIyCLsyZ1OHB4I0VjROLIdCykjdUJHJAb0xWCOuuss17+8pcXB+9///uf8YxnbN26Nb1eOPfcc3/jN36jOHjHO97xwhe+ML0YgsdtBGRZ1ryuBg7vpWiMSBw5joW0MQuBA3JjukJEa9eu/cEPfrDbbrv96Ec/2m+//W677bbBD1asWbPm+uuv32effe66665dd911y5Ytgx+0SNqIyZqsFd0LHN5IARmUOLIbi5G0UVA3phE4IDceMgoRHX300bvttltx8Fd/9VcjdaOwdevWyy+/vDjYcccdDz300PRia7b591+jsiCjEt5IARmUOPIai9d7kijQcQIHRHTJJZfstttuT3va01772tcOXrqvtWvXpoMf//jH6aAd0kZY9j9UwhspIIMSR0ZjIW0A/eAzEvKzfv36733ve7vtttvGjRv33HPP4cdzNGc8bRCH/U+7OnOLijdSQAYliLwGYjxtMCO3qEBuXMEBmXngAx940UUXpRtY3vSmN7VQN0buSXHVRijFIsw6jEp4IwVkUILIaCBGLtxw1QbQdT4pIQ+HHXbYvvvue8QRR5x88sl77rln8cpFF1100kknpZ82ZOSqjYK0EYrNTxC5X8HhjRSTcQkil4EYuWqjIG0swBUckBvTFfJw2223PeABDxh8c88H7tte/OIXD75pgLQRn+VXHFkHDm+kgAxKHFmMhbRRIYEDcmO6QgbWrFmzefPmjRs37rDDDrvvvnt68Zvf/OZzn/vcz3/+8+nbukgbWbD2CiXfwOGNFJBBiSP+WEgblRM4IDeewQEZ2Lp167p16/baa6+f/Mmf3G+//d7xjncULz7iEY/45Cc/edBBB6W/U4uRuuFxGwEVqy4LLyrhjRSQQYkj+FiMPGuj4HEbQC8JHJCH8mGiN9xwwwtf+MJzzjmnON5ll13OO++89HrFtnmSaA5sfqhE8UbyXgrIoMQRv24MkzaAHvPZCVlat27dTTfd9KAHPag4fvCDH3zttdem1yvgnpRc2PyEldctKt5IMRmXOCKPxXjaoFpuUYHcuIIDsrR58+ZLL700HT/60Y9OB8sauWqj4MKNsCy2qIQ3UkzGJY6wYzHxnhSA3hM4IKJ169YdcsghxxxzzN577z14acydd96ZDtauXZsOFidt5MXmh0p4I8VkXIIoBiLmWExMG+oGwAqBAyJ6y1ve8o//+I/vf//7jz766MFLY/bbb790cMstt6SDKv3O79znD0GEXXCTZDRA3kgxGZcgYg6EtAGwPT5HIaLjjjvur/7qr4qDyy677KijjkovDnv4wx/+jW98Y4cddvjhD3/4Ez/xE+UjSBc0/tyN1bm4oxV2PsGVA3T88YODmM/g8EYKy9AEEbZuDNM1muEZHJAb0xUiWrt27bXXXrvPPvsUx8985jPf+973pteTXXfd9WMf+9gRRxxRHL/uda975StfmV5fXBk4yo1ZYaWwzEryqJvVVXDDAxQ5cHgjxWRc4gg4FtJGiwQOyI3pCkGdeOKJF110UXFw1113nXbaaX/6p3962223rVmz5uijj/7DP/zDn/3Zny1+9JWvfOVxj3vcpk2bVv5fLGFi4BgxV+8oSB4VsrQKbmSAwgYOb6SYjEsc0cZC2midwAG5MV0hrpe//OVnnXVWOr777rvvuOOOnXfeeccdd0yvXHnllU996lNvvPHG9O1SZgkc41zi0QzrquDGByhm4PBGism4xBFqLEbSRkHdaIXAAbkxXSG0I4888pxzzjnkkEMG36+46aabNmzYcPbZZ2/evHnw0pIWCxzjJI9qWVEFN22AAgYO76WYjEscccZC2ghF4IDcmK6QgQMOOOCQQw7Zaaedtm7d+q//+q//8A//MPhBVaoKHCP0jmVYTgW3ygCFChzeSGEZmjiCjIW0EZDAAbkxXYHaAsc4yWNG1lLBrT5AcQKHN1JYhiaOIGPhcRsxCRyQG9MVaDBwjPDg0okspILb7gAFCRzeSGEZmjgijIW0EZnAAbkxXYH2Ase4nl/iYQkV3yxjFCFweC+FZWiCiDAQ0kZ8AgfkxnQFIgWOcf1JHtZPwc0+QO0GDm+kyIxOEK0PhMdt5ELggNyYrkDswDGiq73D4im4uQaoxcDhjRSZ0Qmi3YGQNvIicEBuTFcgq8AxrgPJw8opuHkHqK3A4Y0UlqGJo8WxkDZyJHBAbkxXIPPAMSK7B5daNgW3wAC1Eji8kcIyNHG0OBYet5EpgQNyY7oC3Qoc48Je4mHBFNzCA9R84PBeCsvQxNHWWEgbWRM4IDemK9D1wDEuQvKwWgpumQFqMnB4I0VmdOJoZSykjQ4QOCA3pivQv8AxovneYakU3JID1Fjg8EaKzOjE0fxYeNxGZwgckBvTFeh94BhXa/KwTgpu+QFqJnB4I0VmdOJoeCykjY4ROCA3pisgcGxPhQ8utUgKrpIBaiBweCNFZnTiaHIspI1OEjggN6YrIHDMb4FLPCyPgqtwgOoOHN5LkRmdIBoeCI/b6CqBA3JjugICRxXmSh5vfvPggCCqXbzWFzgssoMzQEE0ORDSRrcJHJAb0xUQOGqgd2Sk8pVrTYHDCjs4AxREYwPhnpQ+EDggN6YrIHA0QvKIqY5lax2Bw/I6MqMTRzNjIW30h8ABuTFdAYGjDfM+uFTyqENNa9bKA4e1dWRGJ44GxkLa6I+0NHr72+/5appDPkxXQOCIwSUeTap1tVpt4LCwjszoxFH3WEgbPVGuiBKBA3JjugICR1SSR03qXqpWFTgsqYMzQHE0XDekje4Z6RolgQNyY7oCAkcm9I5KNLBOrSRwWE8HZ4DiqHUspI1um9Y1SgIH5MZ0BQSObEke82pmkbp84LCYDs4AxVHfWLgnpdu2mzYSgQNyY7oCAkeHSB7TNLk8XTJwWEkHZ4DiqGkspI0Om7FrlAQOyI3pCggc3aV3JA2vTRcOHNbQ8RmjIKQN5jJv1ygJHJAb0xUQOPqkh8mj+YXpYoHDAjo4AxRHM3VD2uiAhbtGSeCA3JiugMDRY3P1jkJ2yaOVVekCgcPqOTgDFEcdYyFtdMzyXaMkcEBuTFdA4GBIly7xaGtJOm/gsHQOzgDFUflYSBtdUmHXKAkckBvTFRA4WFWOyaPdxehcgcO6OTgDFEe1Y+FxG51RR9coCRyQG9MVEDiYR/ze0fpKdMbAYcUcnAEKpcLhkDa6odauURI4IDemKyBwsJxQySPCMjTNo+L/J29968r3k1guB2eAQqlqOKSNDmima5QEDsiN6QoIHFSqxQeXBlmDFvMo/f9kWuCwVg7OAIVS1XB43EbuGk4bicABuTFdAYGDmjVziUecBegznjE4mBg4LJSDM0ChVDIc0ka+WokawwQOyI3pCggcNK7a5BFt6blK4LBKDs4AxSFt9FbrUWOYwAG5MV0BgYO2LdM7Aq47JwYO6+PgDFAoyw+Hx21kJ1TXKAkckBvTFRA4iGeu5HHOOYODIMYDh8VxcAYolCWHQ9rISMyoMUzggNyYroDAQXjzPri03eQxEjisjIMzQKEsMxzSRhbiR41hAgfkxnQFBA4yFPkSj+HAYVkcnAEKpcK6IW2EklfUGCZwQG5MV0DgoBPiJI8ycGzYMDggJpuWUBYeDmkjrHy7RknggNyYroDAQRe12DsEjvhsV6JZbESkjYA6EDWGCRyQG9MVEDjoh8aSh8ARnL1KNAuMiMdthNKxqDFM4IDcmK6AwEEv1ffgUoEjMhuVaOYdEWkjiA5HjWECB+TGdAUEDlhR1SUeAkdYdinRzDUi0kYEPekaJYEDcmO6AgIHTLFY8hA4ArI/iWbeEfG4jRb1LWoMEzggN6YrIHDAbObqHddeK3BEYXMSzVwjIm20os9RY5jAAbkxXQGBAxY1V/J4+csHBzTJziSa2UfEPSkNEzXGCRyQG9MVEDigIvM+uFTyqJttSTQzjoi00RhRY3UCB+TGdAUEDqhUOY82bLjfFVcMjmehd1TLniSaWUZE2miGrjEjgQNyY7oCAgdUajhwjJM8GmA3EtB2B0XaqJuosQCBA3JjugICB1Rq9cAxQu+onK1IQPPWDWmjKqLGkgQOyI3pCggcUKm5Asc4yWMZ9iEBrT4o0kblRI0KCRyQG9MVEDigCuU8esYzBgdV/TOxkseMbEICWmVQ3JNSLV2jDgIH5MZ0BQQOWML4pqLywDFC75jIDiSgaYMibVRF1KibwAG5MV0BgQPmtPqmou7AMa7nycPeIyBpoz6iRpMEDsiN6QoIHDCbGfcVzQeOEXP1jkLWycPGI6AZ64a0MTtRoy0CB+TGdAUEDphugX1F64FjXFcv8bDrCGjioEgbi9E1WidwQG5MV0DggDHL7CsCBo5xHUgethwBjQ+KtDEvUSMUgQNyY7oCAgesqGpfkUXgGJFX77DZiGlkXDxuY3aiRlgCB+TGdAUEDvqt8q1FjoFjXNjkYacR0/C4SBuzEDWyIHBAbkxXQOCgf2rdWnQjcIwI8uBS24yYynGRNlYnamRH4IDcmK6AwEE/NLa16GTgGNf8JR72GDFNqxvSRknXyJfAAbkxXQGBg05rfmvRk8AxrtbkYYMRUxoXaWOcqNENAgfkxnQFBA46p92tRW8Dx4iqeoetRVjF0Egbw0SN7hE4IDemKyBw0BVBdhcCxzQLJA/7ipjG00ahn3VD1Og2gQNyY7oCAgc5C7i7EDhmNO+DS3/v9wYHtOusswYHpR6mDV2jJwQOyI3pCggcZCjy7kLgWNhcyUPvaF7P04ao0UMCB+TGdAUEDjKRy+5C4KiQ5BHHSN3oSdoQNXpO4IDcmK6AwEFgOe4uBI766B2t6FvaEDUoCRyQG9MVEDiIJ+sNhsDRJMmjVr1KG7oG4wQOyI3pCggcxNCZ3YXA0SIPLq1KTx63IWqwOoEDcmO6AgIHrereBkPgCMUlHvPqfNoQNZidwAG5MV0BgYPGdXuDIXAEJ3lM0+G0IWqwGIEDcmO6AgIHTenJHkPgyIvekXTycRu6BksSOCA3pisgcFCnHm4wBI7c9S15dCxtiBpUSOCA3JiugMBB1Xq+wRA4OqbDDy7tzD0pogY1ETggN6YrIHBQEXuMRODovA5c4tGBtOGEQwMEDsiN6QoIHCzBHmOcwNFDGSWPrNOGEw4NEzggN6YrIHAwP9uMVQgcxOwd+aYNJxzaInBAbkxXQOBgNvYYMxI4GNd68sjuSaJOOEQgcEBuTFdA4GBVthnzEjiYRWPJI6O04WxDNAIH5MZ0BQQOxthmLEPgYAF19I4s7klxtiEygQNyY7oCAgcrbDOqInBQiWWSR/y04YRDFgQOyI3pCggc/WabUTmBgzrM1TuGxUkbzjZkR+CA3JiugMDRP7YZtRI4aMZ2k0eEtOFsQ9YEDsiN6QoIHL1hp9EMgYO2lMmj3bThVENnCByQmzWD/wLQScVOo/wDdNvjHz84aIVTDQBtEzgAushOA2hAeapxtgEgAIEDoCvsNIAGONUAEJXAAZAzOw2gAU41AORA4ADIkJ0G0ACnGgCyInAAZKLcadhsAPVxqgEgWwIHQGx2GkDdyvOMUw0AORM4AOKx2QDq5jwDQOcIHABh2GwAtSpPMs4zAHSRwAHQKvsNoG5OMgD0g8AB0Lhys2G/AdTEeQaA/hE4AJpiswE0w3kGgF4SOADqVEYN+w0AAKiTwAFQA1EDmMevHnvsbR//ePFnjwc9aPASADAngQOgImXU0DWAeRz44Ae/+aUvfcCuuxZ/Bi8BAPMTOACWI2oAS1izZs1FZ5yxy047Db4HABYlcADMr4waugawnFe/4AU/d+CBg28AgCUIHAAzEzWASh1+8MG//7znFQf/dvvt6RUAYGECB8CqyqihawCVWr/LLu9+9auLg49eccXffO5z6UUAYGECB8AYUQOo3x+/7GUP3nvvmzZuPPV1rxu8BAAsQeAAuJeoATTlhCc96Vee+tTi4MVnn33jrbemFwGAZQgcQL+VUUPXAJqy7x57nPfylxcHf/7Rj37gssvSiwDAkgQOoJdEDaA9f/kHf7D7Ax7wrzfc8BtvfvPgJQBgaQIH0Ce6BtC23z7ppCcdckhx8CtnnHH7j3+cXgQAlidwAD2gawAxHPTwh5/1a79WHJz9l395+Ze+lF4EACohcADdpWsAkazbcceLzjxzx7Vrv/Ltb//+eecNXgUAKiJwAJ2jawAhveHXf/1RD3vYnXfd9axXvWrL3XcPXgUAKiJwAF2hawCBHX3oof/jmc8sDs78sz/71nXXrdtxx+E/O6wZLMnKV9bc+woAMKP7D/4L9FkZBY4/fnCQEUWDaJ7xjMHBhg2DA7jf/d7+e7/3gl/+5cE3M3jay17211dcMfhmdun/yQtfuPINsJy3v/2er/e3Y4Js+D8OAHlyvQYAADBEjwSyuoJD0SA+V3AwyUn/+T8ffvDBg2/GPPlxj3vEAQcUB+/40IfuvOuu4uBPLr74n6++euWH83AFB1TIFRyQG9MVyCFw6BpkROBgfheeccazjj66ONjzqU+95d/+Lb24CIEDKiRwQG7cogIEts19KAAAwEwEDiAeXQMAAJiTwAGEoWsAAACLEjiAtukaAADA0gQOoCW6BsC9TnrVq+7/+McXf5Z6wigA9JvAATRL1wAAAGogcACN0DUAAIA6CRxAnXQNAACgEQIHUANdAwAAaJbAAVRH1wAAAFoicABL0zUAAIC2CRzAonQNAAAgDIEDmJOuAQAAxCNwALPRNQAAgMAEDmBVugYAAJADgQOYRNcAAACyInAAQ3QNAAAgTwIHAAAAkD2BAwAAAMiewAEAAABkT+AAAAAAsidwAAAAANkTOAAAAIDsCRwAAABA9gQOAAAAIHsCBwAAAJA9gQMAAADInsABAAAAZE/gAAAAALIncAAAAADZEzgAAADua9u2wQGQD4EDAABgxbZtgz9AhgQOAACg33QN6ASBAwAA6CVdA7pF4AAAAPpE14COEjgAAIAe0DWg6wQOAACgu3QN6A2BAwAA6BxdA/pH4AAAADpE14C+EjgAAID8uWQDek/gAAAAsqVrAPcSOAAAgNzoGsAYgQMAAMiErgFMJ3AAAACx6RrADAQOAAAgJF0DmIfAAQAARKJrAAsROAAAgAB0DWA5AgcAANAqXQOogsABAAC0wSUbQKUEDgAAoEG6BlAPgQMAAKifrgHUTOAAAABqo2sATRE4AACAqukaQOMEDgAAoCK6BtAegQMAAFiOrgEEIHAAAAAL0TWASAQOAABgHroGEJLAAQAAzEbXAAITOAAAgFW5ZAPIgcABAABMomsAWRE4AACAIboGkCeBAwAA0DWA7AkcAADQY7oG0BUCBwAA9I+uAXSOwAEAAL2hawDdJXAAAEDX6RpADwgcAADQUboG0CcCBwAAdEgZNXQNoGcEDgAAyJyoASBwAABAlkQNgPsSOAAAIBOiBsB0AgcAAMQmagDMQOAAAIB4yqihawDMRuAAAIAYRA2AJQgcAADQHlEDoCICBwAANE7UAKiawAEAAI0oo4auAVADgQMAAGojagA0ReAAAIBKiRoAbRA4AACgCqIGQKsEDgAAWFQZNXQNgLYJHAAAMA9RAyAkgQMAALZH1AAIT+AAAIBJRA2ArAgcAAAwRNQAyJPAAQBA75VRQ9cAyJbAAQBAL4kaAN0icAAA0BuiBkB3CRwAAHSdqAHQAwIHAABdVEYNXQOgHwQOAAC6QtQA6DGBAwCAnIkaAKwQOAAAyJCoAcB9CRwAAGSijBq6BgBjBA4AAAITNQCYjcABAEAwogYA8xM4AACIQdQAYAkCBwAA7Smjhq4BwHIEDgAAmiVqAFADgQMAgPqJGgDUTOAAAKAeogYADRI4AAColKgBQBsEDgAAllZGDV0DgJYIHAAALETUACASgQMAgJmJGgBEJXAAALA9ogYA4QkcAABMUkYNXQOAHAgcAADcS9QAIFsCBwBAv4kaAHSCwAEA0EuiBgDdInAAAPRGGTV0DQA6R+AAAOg0UQOAfhA4AAA6R9QAoH8EDgCAbhE1AOglgQMAAADInsABAAAAZE/gAAAAALIncAAAAADZEzgAAACA7AkcAAAAQPYEDgAAACB7AgcAAACQPYEDAAAAyJ7AAQAAAGRP4AAAAACyJ3AAAAAA2RM4AAAAgOwJHAAAAED2BA4AAAAgewIHAAAAkD2BAwAAAMiewAEAAABkT+AAAAAAsidwAAAAANkTOAAAAIDsCRwAAABA9gQOAAAAIHsCBwAAAJA9gQMAAADInsABAAAAZE/gAAAAALIncAAAAADZEzgAAACA7AkcAAAAQPYEDgAAACB7AgcAAACQPYEDAAAAyJ7AAQAAAGRP4AAAAACyJ3AAAAAA2RM4AAAAgOwJHAAAAED2BA4AAAAgewIHAAAAkD2BAwAAAMiewAEAAABkT+AAAAAAsidwAAAAANkTOAAAAIDsCRwAAAD3tW3b4ADIh8ABAACwYtu2wR8gQwIHAADQe7oG5E/gAAAA+solG9AhAgcAANAzugZ0kcABAAD0g64BnSZwAAAAnaZrQD8IHAAAQBfpGtAzAgcAANAhugb0lcABAADkT9eA3hM4AACAbOkawL0EDgAAIDe6BjBG4AAAAPKhawBTCBwAAEB4LtkAtkfgAAAAotI1gJkJHAAAQDC6BjA/gQMAAIhB1wCWIHAAAACt0jWAKggcAABAG3QNoFICBwAA0CBdA6iHwAEAANRP1wBqJnAAAAB10jWARggcAABADVyyATRL4AAAAKqjawAtETgAAICl6RpA2wQOAABgUboGEIbAAQAAzEnXAOIROAAAgNnoGkBgAgcAALAqXQPIgcABAABMomsAWRE4AACA+9I1gAwJHAAAwAqXbAA5EzgAAKDfdA2gEwQOAADoJV0D6BaBAwCqY58AxKdrAB0lcADAcsqtgt0CEJkzFdB1AgcALMRWAciCkxXQGwIHAMys3CfYKgDBOVkB/SNwAMCqyk2CfQIQn/MV0GMCBwBMYpMAZMQpC0DgAIB/V+4QbBKAXDhlAdxL4ACg90QNIDtOXABjBA4AeqncG9geABlx4gKYTuAAoE/sDYAcOXcBzEDgAKDryo2BvQGQF+cugHkIHAB0lI0BkCmnL4CFCBwAdEi5K7AxALLj9AWwHIEDgPzZFQD5cgYDqIjAAUC27AqAfDmDAVRN4AAgN3YFQNacwQDqIXAAkAldA8iakxhAzQQOAGKzJQCy5iQG0BSBA4CQbAmArDmJATRO4AAgElsCIGtOYgDtETgACMCWAMiakxhAAAIHAO2xJQCy5iQGEInAAUDjbAmArDmJAYQkcADQFFsCIGtOYgCxCRwA1MyWAMhXeQZzEgMIT+AAoB62BECmytOXMxhAVgQOACplVwDkqDx3OX0BZEvgAKAKNgZAjpy7ADpE4ABgCfYGQHbKE5dzF0C3CBwAzM/eAMhLedZy4gLoLoEDgJnZHgAZKU9ZzloA/SBwALA9dghALsrzlVMWQP8IHABMYZMA5ML5CgCBA4BR9glAFsqTlfMVACsEDgBW2CcA8ZVnKicrAMYIHAD9ZqsABFeeppypAFiVwAHQS3YL8azfddffPumkT27YcMcnP7n5sstu+/jHP3D22Sc86UmDH0PfOE0BMCeBA6BPbBiiOvIxj/mXiy5602/8xhMe+9hddtppx7VrH7Drrv/1yCPf85rXfOKtb12/666DvwfdVp6jnKYAmJ/AAdADNgyxHX7wwR8755z99tyzOP7oFVc8+/TTj3/FK/7g/PNv2rixeOVJhxxy0RlnrPxF6KLyBOUcBcByBA6ATrNnCG/XnXd+96tfvctOOxXHz3vNa57+spdd+Ld/e/GnPvXq888/+LnP/X/f/W7x+tMe//gnH3bYyl+HTiiLhhMUANUROAC6yM4hHy857rgH7713cXD2X/7lu/76r9OLyY233vpbf/RH6fj5T3taOoCMOTUBUCeBA6BDbB4y9KL/+l+Lr9//wQ/+4Pzz0yvDPvJ3f3fTxo2f+dKX7ti0afAS5KU8Lzk1AVAzgQMgfzYP2XrkQx7yiAMOKA4u+L//d9Odd6YXh23dunXvpz3tyF/7tVNf97rBSxBfeVJyXgKgQQIHQLbsH/L3cwcemA4+9cUvpgPIVXlGclICoCUCB0BubCE65LBHPSodXHXNNcXXh+yzz6tf8IKP/OEfXv+hD11yzjlv+c3ffORDHpL+AgTljARAGAIHQCbsIrpo75/8yXTwreuue+kzn/nN97znVaec8rTHP36/Pff8L4cd9j+e+cyvX3jhmS96Ufo7EEV5OnJGAiASgQMgNruITttt553TwW+eeOIf/eZv7rh27Tevvfaij3+8+FMcpB/9/vOet+F3ficdQ2vKc5HTEQBRCRwAIdlI9MOaNYMP4rNe8pIf33nnr5xxxoEnnnjSq15V/CkOim/v2rKl+OmvH3/80w8/PP1NaE55InIuAiAHAgdAJPYSfbXDmjUnn3nmX1xyyeD7FcW3v/mWt6TjVz7veekA6lWehZyIAMiNwAEQgO1E733ua19776WXDr4Z8icXX3zdTTcVBz//qEc9cLfd0otQPWchAPIncAC0x46i9zZt3pwOPn3llelg3Ge+/OV08Pif/dl0ANUoT0HOQgB0gsAB0Dg7Cu618bbb0sG/fOc76WDc7XfckQ52XrcuHcDiyvOPUxAAnSNwADTFpoIxV3z1q+ngofvskw7GlQ8iLS/3gPmUJx/nHwA6TeAAqJl9BdNd+Y1vpINDHvnIdDBu3z32SAflX4aZOPkA0DMCB0A9bC2YwT994xv/77vfLQ6e8vM///D9908vDtt3zz2ffNhhxcFXvv3tG2+9Nb0I2+HkA0AvCRwAldI1mNMfvec9xdcd1qw5/3/9r5132im9WDrvd3+3+FFx8LYPfjC9AgDARAIHQBV0DRZ17nve85kvfak4eMJjH3vFeecd+ZjHpNd/5mEPu+Scc37piCOK4y9cddWfXHxxeh0AgIkEDoAl6BpU4Zdf/vIrvvKV4uDnDjzwsj/5k02f/vTtn/jE1y644L+s3Jzy/7773V/63d/dunXryt8FAGAygQNgfroGldp4221H/tqv/f7b3vb9H/yg+HanHXfcbZddioM777rrnIsu+v9OOeWG739/5S8CADDV/Qf/Bfqs3Kgfd9zggIkUDWZxwgmDgw0bBgfzOOxRj9p/r712WLPmh3fc8fF/+Ictd989+AHM4oor7vl66qkr3wDLOf/8e77e344JsuEKDoDtcb0GDfr817528ac+9d5LL73kc59TNwAAZidwAEyhawAAQD4EDoD70jUAACBDAgfACl0DAAByJnAA/aZrAABAJwgcQC/pGgAA0C0CB9AnugYAAHSUwAH0gK4BAABdJ3AA3aVrAABAbwgcQOfoGgAA0D8CB9AVugYAAPSYwAFkTtcgrP/+3wcHAADU7/6D/wJ9VtaB444bHMSnaBDTCScMDqbZsGFwAHW44op7vp566so3wHLOP/+er/e3Y4JsmK5AVoFD1yCsaWnj1a8eHJx++j3HxddhegfVEjigQgIH5MZ0BXIIHLoGkY2kjQ9/eHBQ+qVfGhwUyt5RkjyokMABFRI4IDemKxA4cOgaBDd+1cZ43Rg33DsKw5d4jNM7mIvAARUSOCA3pisQL3DoGsS3WNqYZuIlHumWlnQwTPJgFQIHVEjggNyYrkCYwKFrkIVq08Y005LHRJIHJYEDKiRwQG5MV6DtwKFrkJHtPm6jJqv0juJbl3hQEjigQgIH5MZ0BVoKHLoGeWkrbUwjeTCRwAEVEjggN6Yr0Gzg0DXITjP3pCxp2oNLk/F7WySPrhI4oEICB+TGdAUaCRy6BjnKIm2MKBfiT3/64KCQesd45ijpHZ0hcECFBA7IjekK1Bk4dA0ylXXamGY8eRRO92+1dIvAARUSOCA3pitQQ+DQNchXjmmjsMD6e7h3FIaTxzi9IxcCB1RI4IDcmK5AdYFD1yB30Z4kOqOqFt8jl3iUpcMlHhkROKBCAgfkxnQFlg4cugYdkGnaKNS38p7rEo+C5BGBwAEVEjggN6YrsGjg0DXohkzvSUkaXnZPfIpHySUeEQgcUCGBA3JjugJzBg5dg86QNpY3cpVHYfjelhGSRwMEDqiQwAG5MV2B2QKHrkGXZJ02CmFX29Puaklc4tEAgQMqJHBAbkxXYNXAoWvQPfk+biPJa6k98a4Wl3jUR+CACgkckBvTFZgUOHQNOin3tFHIfZ098ZaWQkoe47e3SB7zEjigQgIH5MZ0BYZyxrHHDg6gY6SNsKbd1TLxKg+9Y7sEDqiQwAG5MV0BgYNOy/1xG0mvltcT72opSB6zEDigQgIH5MZ0BQQOOqobaaPQ87X1Kpd4uKVlnMABFRI4IDemKyBw0DmdSRsFC+tx0y7xSHqePAQOqJDAAbkxXQGBg27pwOM2SlbVs5jrKR6FbicPgQMqJHBAbkxXQOCgK6QNkmnJI+n2JR4CByyvXBe98533fHVChnyYroDAQf66lDYKFtOVm3hXy8SneBSyTh4CByysXA6VBA7IjekKCBzkrEuP20ispBsw8RKPVDqGj5O8eofAAfMa7xolgQNyY7oCAgd56l7aKFhGt2X15DFylUfk5CFwwIxW6RolgQNyY7oCAge56WTaKFhDx7H6UzwKYZOHwAGrm6VrlAQOyI3pCggcZKVjj9tIrJ7jG08eI41jWIu9Q+CAaeZKG4nAAbkxXQGBg0x0Mm0ULJ0zNfHBpaW2LvEQOGDEAl2jJHBAbkxXQOAgvK6mjYJ1c2dMu6vl9JV/qyUdlOrrHQIHJMt0jZLAAbkxXQGBg8C6+riNxKK520aSx7DxO1yqSh4CBz1XSdcoCRyQG9MVEDgISdqgeybe1ZJKR1XJQ+Cgn6rtGiWBA3JjugICB8F0O20UrJVJpt3VkizWOwQOeqWmrlESOCA3pisgcBBJhx+3kVgos4rxu1rSlR2pfcySPAQO+qDurlESOCA3pisgcBBD59NGwSqZuax+iUdhPHkIHHRYY12jJHBAbkxXQOCgbZ2/JyWxRGZ505JHWTqe/ex7vl555T1fq3pwKbSr+a5REjggN6YrIHDQHmkDljSSPFLgOOaYlW8WfZAHRNBi1ygJHJAb0xUQOGhDT9JGwcqYJr373fd8TVdwFEYu8UhP9CjpHcQUIW0kAgfkxnQFBA6a1Z+0UbAspmEpcJx55so3K7Z7V8swyYMWxekaJYEDcmO6AgIHDerDk0RL1sQ0bzxwjFild6Rjd7XQsIBdoyRwQG5MV0DgoBHSBjRgu4Fj3Fz/VoveQVUid42SwAG5MV0BgYOa9eqelIKlMC1aIHCMm5g8UuYojl3iwTKy6BolgQNyY7oCAge16VvaKFgH065KAseIkd5RGLnKwyUebFdeXaMkcEBuTFdA4KAGPUwbBYtgWldH4Bg3MXmc7ikejMm0a5QEDsiN6QoIHFStV4/bKFkBE0EzgWPE6re0lMclyaPzcu8aJYEDcmO6AgIH1ZE2oF2tBI5x0x5cOvEqD72jMzrTNUoCB+TGdAUEDqrQz7RRsPAllCCBY9y05JG4xCN33UsbicABuTFdAYGD5fTzcRuJVS/RhA0cI8af4jHs1ff9t1r0jrC62jVKAgfkxnQFBA4W1ee0UbDkJaBcAse41S/xKEgecXS+a5QEDsiN6QoIHMxP2oCY8g0cIyZe4pGu7Bh/ikdB8mhAf7pGSeCA3JiugMDBnHr7uI3ESpfIOhM4xk1LHiWXeNSkh12jJHBAbkxXQOBgZj1PGwXLXILrcOAYN/GulpQ50rUewySPefW5a5QEDsiN6QoIHMxA2ihY4xJfrwLHiNWf4qF3zEjXGCZwQG5MV0DgYFU9f9xGyQKXLPQ5cIwbv6slXdlRtg93tZR0jYkEDsiN6QoIHEwhbSSWtmRE4FjFxN4xrIdXeegaqxM4IDemKyBwMEbaKFnXkheBYy7THlw6UjqSjvUOaWMWAgfkxnQFBA7uy+M2Sha1ZEfgWNK05FHK/a4WXWMuAgfkxnQFBA7uJW0Ms6IlRwJHtabd1ZIyx8i1HpF7h66xGIEDcmO6AgIH0sZ9WcuSL4GjbiPJo7y4I2by0DWWJHBAbkxXQODoN4/bGGEhS9YEjuZNvMrj9Hv/rZbh3lFoJnnoGlUROCA3pisgcPSVtDHOKpbcCRytm3aJR6m+Szx0jcoJHJAb0xUQOPpH2pjIEpYOEDgCmvbg0olXeSyQPHSN+ggckBvTFRA4esbjNiayfqUbBI74JvaOQnmtx4x3tegaDRA4IDemKyBw9Ia0MZGVK10icORo4lM8Cql0pGs9Sm996+CABggckBvTFRA4esA9KdNYttIxAkc3jD/Io4wdieTRDIEDcmO6AgJHp0kbq7BmpXsEjk6a6ykeekeFBA7IjekKCBwdJW2szoKVThI4emL8Eo8RkkclBA7IjekKCBydI22szlKVDhM4+mnag0uTP/iD+/SOQrX/PG2HCRyQG9MVEDi6xZNEV2edSrcJHCRPf/q/f7gXVr/EQ++YRuCA3JiugMDRFdLGdlmk0nkCB9M87WmDgyQ9wiMdFFziMZHAAbkxXQGBI3/uSZmFFSp9IHAwo5HekQxf6OESj4LAAbkxXQGBI2fSxowsT+kJgYOFTbvEIx0Xepg8BA7IjekKCBx5kjZmZGFKrwgcVGX8Eo9p13cknUweAgfkxnQFBI4MedzGjKxK6RuBg/pMvKulNHzFR6EbvUPggNyYroDAkRVpY3aWpPSQwEGTxu9qGZF78hA4IDemKyBwZELamIv1KP0kcNCiiXe1jN/MkmTROwQOyI3pCggc4XncxlysROkzgYNQcr/EQ+CA3JiugMARmLQxL8tQek7gILLVL/FI+SNU8hA4IDemKyBwhCRtLMAaFAQO8jIxeRRS5hi5w6X53iFwQG5MV0DgiMfjNhZgAQoFgYPcTbyr5fTTBwfpuFR38hA4IDemKyBwRCJtLMbqExKBg46ZdldL2TsKZfKovHcIHJAb0xUQOGKQNhZj3QnDBA46b5UHeZSXe5SWTB4CB+TGdAUEjrZ53MbCLDphhMBB30x7isewhZOHwAG5MV0BgaM90sYyrDhhnMABq1ziMXJcWL13CByQG9MVEDjaIG0syXITJhI4YNz4g0uHb2kpTEseAgfkxnQFBI7GedzGMiw0YRUCB2zXtLtaTh/7t1oe+9h7vvrcgXyYroDA0SBpY0lWmbA6gQMWMDF5fPCDg2MfPZAP0xUQOBohbSzPEhO2S+CA5Z122uAg8ekD+Vgz+C8ANTnhBHWjAtaXEMq2bYM/0CWnnaZuQNYEDoDaTEwb6sYCrC8hgjJqlF3D3KQzJqYN73DIjcABUANpoyrWl9Cu8aiRmJt0hrQBHSJwAFRN2qiK9SW0YlrUKJmbdIO0AZ0jcABUZ+TCDWljGZaY0LDVo0bJ3KQbpA3oIoEDoAoT70lhYVaZ0Iwyamy3ayTmJh0wcuGGtAEdInAALGdi2lA3FmahCXWbN2ok5iYdMPGeFKBDBA6ARUkblbPQhJosFjVK5ia5m5g2vLGhcwQOgPlJG3Ww0ITKLRM1SuYmWZM2oE8EDoA5SRt1sNaEClXSNRJzk6xJG9AzAgfAzEYu3JA2qmK5CTGZm+Rr5MINaQP6wTwHVv5vfcmxxw4OGDFy1UZB2qiE5SZU693vvufrGWesfLMEc5N8jV+1UYPzzjtvzZrV/k/F73znOz/72c8OvgGa4tMLEDhWJW3Uxw4KKldJ4DA3ydRI2ijU82Y+8MAD/+Vf/mXwzRS/8iu/8hd/8ReDb4CmuEUFYIqRG1IK7kmpkB0UxGRukqORG1IKxTu5tjfzox/96MEREIzAATCJtFErOyiIydwkO82mjeSQQw5JB0ccccROU1xwwQXp7wBNEjgA7mvkwg1po1r1rzuBRZib5KjxtJEceOCBxde77rrrs5/97OYptm7dmv4y0CSBA+Be0kbdbJ8gJnOT7IxcuNFU2kie8IQnFF+vvPJKFQOiETgApjxug2rZQUFM5iZ5aTVtFHZfURz88z//c3oFiEPgAPptYtpQNypnBwUxmZtkZCRtFNp4Ax9++OHp4NJLL00He+2115FHHrlu3br0LdAigQPoK2mjMXZQEJO5SS4mpo2W3sDpARyFW2655ayzzrrxxhtvuummyy677M4777z66qtPO+20nXfeOf0FoHk+2ID73W/btsHBsccODjrPDSnNsH2Chr373fd8PeOMlW+mMzfJxUjXKLT97r3wwguf9axnFQf/9m//9qAHPSi9OOyb3/zmL/7iL1577bWD74EG+XgDehY4pI3G2EFB82YJHOYmuQhwQ8q4q6666j/+x/+Yji+77LILLrjgpptu2mmnnY466qhTTjmlOChe/853vvPYxz72lltuSX8NaIxPOKA3gUPaaJIdFLRiu4HD3OyS9PHdyTENmTYKa9eu3bRp0w477FAc/7f/9t8uuOCC9HryUz/1U5/4xCce/OAHF8fvfOc7Tz311PQ60BgfckAPAsdI2iioG7Wyg4K2rB44zM1uKD+1C90b06hpI1m3bt3RRx/9oAc9aOPGjZdccsng1SGPecxjrrzyyuLg7rvv3nvvvV3EAQ3zOQd0OnBIGw2zfYJ2rRI4TM/cDXeNpGNjGu9xG4v55Cc/+YQnPKE4OP744y+++OL0ItAM/4oK0FEn+EdSGmf7BGGZnvnatm3wZ0SXxvS0QP9IyvK+8IUvpIN99tknHQCNETiALpI2mmf7BGGZnjma1jWSzoxpt9JG8vWvfz0dPPShD00HQGMEDqBbRi7ckDaaYfsEYZmeeVm9axTy3///uzzTxs4773zooYfuscceg+/H/PRP/3Q6+MpXvpIOgMYIHEBXSBttsX2CmLq0E+687XaNpDMDOnLhRj7v1T/7sz/78Y9//Pd///cnnnji4KUxj370o9PBt771rXQANEbgAPI3kjYK0kYzbJ8gLHMzCzN2jaQbYzrxnpR8lP9yykknnZQORhx44IFPfOITi4Prrrvus5/9bHoRaIzAAeRsYtpQN5ph+wRhmZ7xzd41kg6M6cS0kdv/rg9/+MMbN24sDo444ojnPOc56cXS+vXr3/Wud+2www7F8dlnn51eBJokcAB5kjbaZfsEsIC5Ltko5X7K7UTaSO64447/+T//Zzp+17vedfrpp+++++7F8Zo1a44++ujPfe5zP//zP198+6lPfWrDhg0rfwtolBUqsLLeSo49dnAQnBtS2qVuQFjvfvc9X888c+Ubwpi3aAzL+pQ70jUKnfgEee1rX/uKV7xi8M397vejH/1o7dq1O+20U/r2M5/5zC//8i+nCz2AhrmCA8jKyIUbrtpoWLb/NzfoBdMzmsWu1xjWpbrRoU+QV77ylU996lOvvPLK9O1uu+2W6sb3vve9V7ziFUcddZS6AW3xQQhkcgXHyFUbBWmjYfZOEFmaoRdccM9XV3C0a5miMSzfs+542uio/fff/+d+7ud22223u+6665prrvnCF74w+AHQEqtVIHzgkDYiUDcgsnKGChwtqqprJJmedTt6TwqQC7eoAIGN3JBScE9KKyxPITIztF3blr4PZVyOY3pad54kCuRL4ABCkjbisDyFyMzQttTRNZLsxlTaAMIQOIB4pI0grFAhODO0efV1jUKOZ11pA4hE4AAiGblwQ9pokRUqRGYb2bBau0aS3YCOXLjhPQkEIHAAMUy8J4W2WKRCZGZok+ruGkleYyptAFEJHEDbJqYNdaNF1qkQmRnajAYu2ShlNKYjaaPgDQlEInAA7ZE2oinWqZaqEJkZWrcmu0aSy5hOTBvekEAwAgfQEmkjGutUCM4krU/zXSPJYkylDSAfAgfQuJELN6SNCCxVITiTtA5tdY0kl7oxTNoAYhM4gAZJGzFZrUJwJmm12u0aSfwxHblwQ9oAciBwAI0YSRsFaSMIC1YIziStSoSukQQfU2kDyJbAAdRsYtpQNyKwZoX4TNLlxekaSeQxHUkbBe9AICsCB1AbaSMya1aIzzxdRrSukYQd04lpwzsQyI3AAdRD2ojMmhXiM08XFrBrFML2AmkD6BCBA6jayIUb0kY0lq0QnO3lYmJespGEHVBpA+gWgQOojrQRnJUrxGeSzity10hijunIhRs+IIBOEDiAKoykjYK0EY2VK8Rnns4uftdIAo6ptAF0l8ABLGdi2lA3orF4hfjM01nk0jWSaGM6kjYK3nVAtwgcwKKkjVxYv0J85unq8uoaSagxnZg2vOuAzhE4gIVIG7mwfoX4zNNpcuwaSZwxlTaAPhE4gDmNXLghbURmCQvxmafj8u0aSai6MUzaALpO4ABmJm3kxSoW4jNPh+XeNZIgYzpy4Ya0AfSDwAHMYCRtFKSN4CxkIT7ztNSBrpFEGNOJ96QA9IPAAaxqYtpQN4KzloX4zNNCNy7ZKLU+phPThnca0CcCBzCFtJEpa1mIr+fztGNdo9B6R5A2AFYIHMAk0kamLGchuD5vO7vXNZJ2B1TaABgicAD3NXLhhrSRCytaiK+fk7SrXSNpd0ylDYD7EjiAIeMXbpAFK1qIr2/ztNtdI2lxTEcu3JA2AFY4FQIry9ARJ500OCA+i1qIr7F5esEF93w988yVb9rQ7aIxrK1z78hVGwWfAgD3ckIE7rXKqlTvCMu6FuJrcp62FTj60zWSVs690gbA9jgtAvdKy9Px1dLEZavkEYGlLcTX8DxtOHD0rWskzZ97pQ2A2Tg5AlOUy9bhVdS0taze0TyrW4iv+XnaTODoZ9dIWq8bTv4A0zlFAjOTPOKwwIX4Wpmn9QWOPkeNUsNjKm0AzMmJEljUxN5RkDzqZo0L8bU1T6sNHKLGsCbHVNoAWIjTJVCd8eSRXim+HV8l6x2LscyF+Fqcp5UEDl1jXGNj6nEbAEtwxgTqNJ48CtOWzpLHdlnmQnCtT9KFA4eoMY20AZAP502gQRN7RzK+ttY7hlnmQnwR5ulcgUPU2K5mxlTaAKiIsyfQqpHkkb4tjicuu3ubPKx0Ib4g83S7gUPUmF0zY+pxGwDVcQ4Fgikbx7BpK/I+JA+LXYgvzjydFjh0jXk1MKbSBkDVnEmB2MpF+SzJo3u9w3oX4gs1T4cDh6ixsLrHVNoAqIfzKWTjqKOOOuWUUwbfbM+55577hS98YfBNxwwnj3RcHozLOnlY8kJ80eZpChxnnLHyDQupdUw9bgOgTk6pkI1TTz31He94x+Cb7Tn22GM/8IEPDL7ptuHeMSz35GHJC/EFnKcCx5LqG1NpA6B+awb/BbrllltuGRx1XrFATH9K27b9+5UdI38KF154nz8xpf+vApGZp91T05iedtqEe1K8fwBq4NwK2VizZs3atWsH30zyx3/8xy94wQuKg9e85jWnjf9fivps5GqOtKwMe4mHVS/EF3aeuoJjYTWN6XjaAKA2TrLQEc9//vPf+c53Fgcf/ehHn/70p6cXmaxMG+MLzfHq0XDvsPaF+CLPU4FjMXWMqbQB0DinWuiCn/qpn/ryl7+8yy673HTTTQcddNDNN988+AEzmpg8mr/Ew/IX4gs+TwWOBVQ+ptIGQEuccKELLr/88iOOOKI4eNaznvV//s//SS+yuJG0sd3qUUnysAKG4LKYpALHXOpOGwXndoAGOedC9sp/XeVjH/vYU57ylPQiFZt4iUehkt5h+Qvx5TJPBY7ZVTum0gZAAM68kLf169d/85vf3Geffe6+++6DDjroqquuGvyAuk1MHhN7R2GV5GEFDPFlNE8FjhlVOKbSBkAY/plYyNtv/dZv7bPPPsXB2972NnWjUcX6Nf1Jtt37b9MWyh+VP532b9OWfwEIyzztngrHdPxxG94wAO1xCoaMrV+//rvf/e4DHvCAu+6662EPe9j1118/+AERTLzEIxm/0OPZzx4cAKFkt1l1Bcd2VTWmniQKEI9zMWTsZS972Rvf+Mbi4G1ve9uLX/zi9CJBDUeNch08XjpKkge0Lsctq8CxukrG1D0pAFE5HUPGrr766oc+9KHFwU//9E+7PyU/LvGAyDLdsgocq1h+TKUNgNiclCFXT3ziEy+99NLi4DOf+cyRRx6ZXiRvE5PHtKs8JA+oT767VoFjmiXHVNoAyIGHjEKunn3v/vbP//zP0wHZK5bL6U+ybezBpcPe/e77/AGqMjLX6IBlxvS00yY8bsObBCAkZ2fI1c0337znnnvefffde+2118aNGwev0m3DV3OUy+vixeJ4/EIPl3jAAnLfuLqCY9wyYzqeNgAIzGkasnTooYf+/d//fXFw6aWX/uIv/mJ6kd6Z2DtKkgfMqwPbV4FjxMJjKm0AZMgtKpClo446Kh38zd/8TTqgj4oFd/kn2bZyV0v6U75YHrirBaYZnkd0w8JjOvGeFABy4HwNWXrf+953/PHHFwf/6T/9p8svvzy9CBOU13GML9DLH5Vc4kE/dWn76gqOZOG0MULaAMiKszZk6YYbbthnn33uvvvudevWbd26dfAqbNdw1BheuI/HjoLeQR90bAcrcBQWGFNpA6ATnLshP+vWrbvzzjuLg+uuu+6AAw5IL8KChi/xSMflst4lHnRe9zaxAsfydUPaAMiWMzjk5+CDD/7Sl75UHHzwgx885phj0otQjZGoMRw7imPJgy7p5D6254Fj3jGVNgC6xUNGIT//4T/8h3Twwx/+MB1AZYr1/fCfwraVR5amg/GfenApmUpvYLpkrjE97b5PEi3PaQDkzKkcgDmNXMeRdgXjF3ckLvEgoA5vZXt7BcfsY+pxGwDd5YQOwHKG08b4PmEkfOgdtK7bu9l+Bo4Zx1TaAOg6p3UAqjYteUy8ykPyoEmd39D2MHDMMqbSBkA/OLkDUL9VrvIYrx6SBzXpw562b4FjgbohbQB0l1M8AI0biRrlfqN4vTge+aneQSV6sq3tVeDY7phKGwA940QPQAATL/EYv7gjkTyYS6+2tT0JHNIGAJM43QMQz3jaSPsTyYN59W1n24fAsfqYetwGQI854wOQg4mXeCTj1UPvIOnhzrbzgWOVMZU2AHrPeR+API0nj/RKcSx5UOjn5rbbgWPamEobAKxw9gegE1a5xKMwkjz0js7r7f62w4FjxrohbQD0mM8AADpqJGqkbc/4xR2J5NElfd7idjVwTBxTaQOA+/JJAEA/jF/iMS12JJJHpnq+y+1k4BgfU2kDgEl8HgDQV+OBY5XwoXdkwUa3e4FjZEw9bgOA6XwkAMC9xq/yKI1XD8kjGhvdQscCx/CYShsAbI8PBgCYYuKlHMWeqng9fR2md7TLXjfpUuAox1TaAGA2Ph4AYGarXOJRkDzaYrtb6kzgmFY3jDUA0/mQAIBFjV/ikXZf468nkkflbHdHdCBwSBsALMpHBQBUZ1rySFziUS073nG5B440pu5JAWAhPi0AoE4Tk0fxYvo6QvKYnR3vRFkHjmJMpQ0AluAzAwAaNBw1RnZuesfsbHqnyTdwvOpVg4OSUQZgTj45AKBVI10jberSi8XxyE8lj4J97ypyDBzSBgAV8fkBAJFM7B0lV3nY+q4uu8AxUjeMLwBL8CkCALENR41i+1d8mzaB47Gj0O3eYfe7XRkFDmkDgKr5LAGA3ExLHslI+OhM8rABnkUWgcM9KQDUw8cJAGRu4qUcZfjoRu+wAZ5R8MAhbQBQJx8qANA5w1Gj3ECmF3NMHvbAswsbOKQNAOrnowUAum6kaIw0juDJwzZ4LjEDh8dtANAIHzAA0D/jyWNYkN5hG7yAaIFD2gCgQT5mAICxu1rKb9OOtPnkYSe8mDiBQ9oAoHE+bACAMe1e4mEzvLAIgcPjNgBoic8bAGAGEy/xSAflt6VlkofN8DLaDRzSBgCt8qkDACxkWvJIFkse9sNLaitwSBsABOCzBwCowkjRKJPHRBN7hy3x8loJHB63AUAMPoEAgHqMXOIxYiR/POc5gwOW0XDgkDYAiMTnEADQiIkXdKQLPdLGWPJYXmOBQ9oAIB6fRgBAS0aKxsgmWe9YQAOBw+M2AIjKBxIAEMZw1Jh4WccwyWNcrYFD2gAgNh9LAEBU0+pGua8e/gt6R6GmwCFtAJADH04AQD5GkkexzU6vTLzco4fJo47A4XEbAGTCRxQAkK3x3lEa+VHS+eRRbeCQNgDIig8qAKBDJl7iMfx1WPd6R1WBQ9oAIEM+rgCAThuOGuMb9Y4lj+UDh8dtAJAtn1gAQJ+MFI20ey9fHLnKI7vesUzgkDYAyJzPLQCg38aTR/FKubcf+Wnw5LFY4JA2AOgEn14AAEPGe0chvTh8XAqVPBYIHB63AUBX+AwDAFjVXMmj3d4xV+CQNgDoFp9kAABzWj15jPy0yeQxY+BwTwoAXeTDDABgOdN6R1kNhv9Crb1ju4FD2gCgu3ykAQBUbTx5pFfqTh6rBA5pA4Cu88EGAFCzkd5RGIkLI39h4eQxMXBIGwD0g483AIDGjV/iURi+ymOxSzzGA4cniQLQGz7kAAACGL/Ko1D2iBkv8RgOHNIGAD3jow4AIJ6Jl3gUyqs8Jl7ikQLHOHUDgB7waQcAkINpySMZ+WlJ2gCgN3zmAQBkaJWiUV7lAQB94pMPAKATyuQhbQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnfbkJz/5wgsvvPnmmzdv3nzHHXf80z/90xve8Ib9999/8GMAAACAyNatW/e+971v2yS33377CSecMPh7AAAAAGFdcMEFKWfceuutZ5555nHHHXfiiSe+5z3vSS8Wjj766MFfBQAAAAjoyCOPTBXj+uuvH7kh5fnPf3760TXXXDN4CQAAACCgt7/97aliPPe5zx28NOSSSy5JP33iE584eAkA+mTN4L8AAMS29957p4P3v//96WDYJZdckg7222+/dAAAvSJwAABkZvfddx8cAQD3EjgAAPLwpS99KR1M/NdSyhe/9a1vpQMAAACAcPbff//bbrtt27ZtxdfDDz988OqK1772tekBHJ/85CcHLwEAAADEdPTRR996662pZXzkIx/ZsGHDeeed9+Uvfzm98vnPf36vvfYa/FUAAACAsPbff/+yaAx717vetWaNu48BAACA8E499dQf/OAHqWjccccdn/70p7/xjW9s2bIlvfJ3f/d3BxxwwOCvAgAAAAT0kpe8JIWMm2+++TnPeU55vcZee+117rnnph/deOONGgcAAAAQ1L777rtp06Zt27YVXw866KDBq0NOO+201Dg+8IEPDF4CAAAACOWlL31p6hdnnXXW4KUx3/72t9Pf2XfffQcvAUBveBIVAEAGDjvssHRw2WWXpYNxn/rUp9JB+ZcBoD8EDgCADOy0007p4Ec/+lE6GPe1r30tHZR/GQD6Q+AAAMhA2TX22GOPdDDuUY96VDq488470wEAAABAICeffHJ6vsaFF144eOm+1qxZc/XVVxd/YcuWLatEEAAAAIDWrF+//tZbb02N4ylPecrg1SFveMMb0k/9KyoAAABAXCeddFJKGFu2bHn1q19d/lMpj3zkIy+44IL0o1tvvfUhD3lIeh0AAAAgot/+7d9OISO5/fbbN23aNPhm27abb775F37hFwZ/FQAAACCsX/iFX/j0pz89SBr32rx583nnnVde0wEAPXT/wX8BAMjH7rvvfvjhh++2225bt279/ve/f/nll2/ZsmXwMwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoBPud7//H4hOUYRN0VMpAAAAAElFTkSuQmCC\" data-image-state=\"image-loaded\"\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 114.308px 8px; transform-origin: 114.308px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eForbidden functions / expressions\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cul style=\"block-size: 81.7333px; counter-reset: list-item 0; font-family: Helvetica, Arial, sans-serif; list-style-type: square; margin-block-end: 20px; margin-block-start: 10px; margin-bottom: 20px; margin-top: 10px; perspective-origin: 392px 40.8667px; transform-origin: 392px 40.8667px; margin-top: 10px; margin-bottom: 20px; \"\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 364px 10.2167px; text-align: left; transform-origin: 364px 10.2167px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 21.4px 8px; transform-origin: 21.4px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003eregexp\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 364px 10.2167px; text-align: left; transform-origin: 364px 10.2167px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 25.6833px 8px; transform-origin: 25.6833px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003eassignin\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 364px 10.2167px; text-align: left; transform-origin: 364px 10.2167px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 25.2833px 8px; transform-origin: 25.2833px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003estr2num\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 364px 10.2167px; text-align: left; transform-origin: 364px 10.2167px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 15.175px 8px; transform-origin: 15.175px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003eecho\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003c/ul\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 28.3917px 8px; transform-origin: 28.3917px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eSee also\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003ca target='_blank' href = \"https://fr.mathworks.com/matlabcentral/cody/groups/57483\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eMesh processing\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003ca target='_blank' href = \"https://fr.mathworks.com/matlabcentral/fileexchange/85173-mesh-generation-toolbox?s_tid=prof_contriblnk\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eMesh generation toolbox\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function F = mesh_the_cube()\r\n  F = 1;\r\nend","test_suite":"%%\r\nF_correct = [1 2 3 4;\r\n             8 7 6 5;\r\n             1 4 8 5;\r\n             2 1 5 6;\r\n             3 2 6 7;\r\n             4 3 7 8];\r\n\r\n% Check every possible solutions\r\nassert(isequal(sortrows(sort(mesh_the_cube(),2)),sortrows(sort(F_correct,2))))\r\n\r\n%% Forbidden functions\r\nfiletext = fileread('mesh_the_cube.m');\r\nillegal = contains(filetext, 'regexp') || contains(filetext, 'str2num') || contains(filetext, 'assignin') || contains(filetext, 'echo')\r\nassert(~illegal);","published":true,"deleted":false,"likes_count":1,"comments_count":4,"created_by":149128,"edited_by":149128,"edited_at":"2025-07-26T07:44:33.000Z","deleted_by":null,"deleted_at":null,"solvers_count":42,"test_suite_updated_at":"2025-07-23T16:15:41.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2025-07-23T10:23:00.000Z","updated_at":"2026-03-31T18:43:29.000Z","published_at":"2025-07-23T10:53:38.000Z","restored_at":null,"restored_by":null,"spam":null,"simulink":false,"admin_reviewed":false,"description_opc":"{\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eProblem statement : mesh the cube with quadranglar / squared faces\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eAn cube / regular hexahedron is a regular polyhedron with 8 vertices and 6 squared / quadrangular faces. It is also one of the five well known platonic solids.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eA quadrangular mesh \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eF\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e (stands for \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003efaces\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e here) is simply a \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eN\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e x 4 matrix of positive integers where each row contains the vertex indices of squared faces, and where \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eN\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e is the number of faces. \u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eYour task here is to mesh this cube. To do so, you will list the squares/rows in a matrix of faces, \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eF. \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003eYou will also be careful to always keep the faces coherently / consistently oriented (all clockwise or all counterclockwise : square \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e[1, 2, 3, 4]\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e and \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e[4, 3, 2, 1]\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e are distinct).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eOn the other hand \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e[1, 2, 3, 4]\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\u003e[2, 3, 4, 1], [3, 4, 1, 2]\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e and \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e[4, 1, 2, 3]\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e are one same unique square.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\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 row order of the faces in the list doesn't matter.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eEdit / update\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFaces orientation not taken into account anymore, because of too many possible cases to check in the tests (!)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eExample\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe first square \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e(Z \u0026gt; 0)\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e here can be [\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e1, 2, 3, 4]\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e if counterclockwise oriented (normals outward).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"378\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"504\\\"/\u003e\u003cw:attr w:name=\\\"verticalAlign\\\" w:val=\\\"middle\\\"/\u003e\u003cw:attr w:name=\\\"altText\\\" w:val=\\\"\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId1\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eForbidden functions / expressions\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:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eregexp\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:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eassignin\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:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003estr2num\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:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eecho\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eSee also\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:hyperlink w:docLocation=\\\"https://fr.mathworks.com/matlabcentral/cody/groups/57483\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eMesh processing\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:hyperlink w:docLocation=\\\"https://fr.mathworks.com/matlabcentral/fileexchange/85173-mesh-generation-toolbox?s_tid=prof_contriblnk\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eMesh generation toolbox\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\",\"relationship\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"target\":\"/media/image1.png\",\"relationshipId\":\"rId1\"}]},{\"partUri\":\"/media/image1.png\",\"contentType\":\"image/png\",\"content\":\"data:image/png;base64,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I44ujcVI2ihIG0AMPvaAto13geBXbRSKdWruOWOEXVCF+nyLijdSKIYjjs6MxUjXKHQ7bbhFBXJjugKtGskE8dNG91i3Va63gcN7KRTDEUc3xqJvaSMROCA3blEBWjJyT0fwG1K6yqKNShRvJO+lUAxHHN0Yi/EbUtyTAoTk8w9onKs2grAFqknfruDwRorGiMTRgbHo+bM2XMEBuXEFB9Cgkas2CupGWyzXqIQ3UjRGJIhiIHIfi9f7R1KA/AgcQCMmpg11oxUdWHYThDdSNEYkiI6ljYK0AWTCByFQs5GuUdA1WmT/04A+3KLijRSQQQki64EY6RqFnqcNt6hAblzBAdGdeuqpl1xyyW233bZ58+bia3H8ohe9aM2aTCavqzZCsUSjEt5I0RQjYlCCyHcgJl614cINIDc+DiGufffd98Mf/vAhhxwy+H7I17/+9eOOO+6qq64afB+QZ21EY//TmG5fweGNFI0RiSPrujFM1yi5ggNyY7pCUOvXr//iF7/4iEc8ojj+2te+9r//9/++7rrr9thjj1NOOeXxj3988eJNN9108MEH33jjjSt/PRJpIyCLsyZ1OHB4I0VjROLIdCykjdUJHJAb0xWCOuuss17+8pcXB+9///uf8YxnbN26Nb1eOPfcc3/jN36jOHjHO97xwhe+ML0YgsdtBGRZ1ryuBg7vpWiMSBw5joW0MQuBA3JjukJEa9eu/cEPfrDbbrv96Ec/2m+//W677bbBD1asWbPm+uuv32effe66665dd911y5Ytgx+0SNqIyZqsFd0LHN5IARmUOLIbi5G0UVA3phE4IDceMgoRHX300bvttltx8Fd/9VcjdaOwdevWyy+/vDjYcccdDz300PRia7b591+jsiCjEt5IARmUOPIai9d7kijQcQIHRHTJJZfstttuT3va01772tcOXrqvtWvXpoMf//jH6aAd0kZY9j9UwhspIIMSR0ZjIW0A/eAzEvKzfv36733ve7vtttvGjRv33HPP4cdzNGc8bRCH/U+7OnOLijdSQAYliLwGYjxtMCO3qEBuXMEBmXngAx940UUXpRtY3vSmN7VQN0buSXHVRijFIsw6jEp4IwVkUILIaCBGLtxw1QbQdT4pIQ+HHXbYvvvue8QRR5x88sl77rln8cpFF1100kknpZ82ZOSqjYK0EYrNTxC5X8HhjRSTcQki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\",\"relationship\":null}],\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"target\":\"/matlab/document.xml\",\"relationshipId\":\"rId1\"}]}"},{"id":60978,"title":"Mesh the octahedron","description":"Problem statement\r\n\r\nAn octahedron is a regular polyhedron with 6 vertices and 8 triangular faces. It is also one of the five well known platonic solids.\r\nA triangulated mesh -or a triangulation- is simply a N x 3 matrix of positive integers where each row contains the vertex indices of a triangle, and where N is the number of triangles. \r\n\r\nYour task here is to mesh this octahedron. To do so, you will list the triangles/rows in a matrix of triangles, T. You will also be careful to always keep the triangles / faces coherently / consistently oriented (all clockwise or all counterclockwise : triangles [1, 2, 3] and [3, 2, 1] are distinct).\r\nOn the other hand [1, 2, 3], [2, 3, 1] and [3, 1, 2] are one same unique triangle.\r\nThe row order of the triangles in the list doesn't matter.\r\n\r\nEdit / update\r\nTriangles orientation not taken into account anymore, because of too many possible cases to check in the tests (!)\r\n\r\nExample\r\nThe first triangle (X \u003e 0, Y \u003e 0, and Z \u003e 0) here can be [1, 2, 5] if counterclockwise oriented (normals are outward oriented).\r\n\r\n\r\n\r\nForbidden functions / expressions\r\nregexp\r\nassignin\r\nstr2num\r\necho\r\n\r\nSee also\r\nMesh processing\r\nMesh generation toolbox","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.4333px; min-height: 0px; white-space: normal; color: rgb(0, 0, 0); font-family: Menlo, Monaco, Consolas, monospace; font-style: normal; font-size: 14px; font-weight: 400; text-decoration: rgb(0, 0, 0); white-space: normal; \"\u003e\u003cdiv style=\"block-size: 1200.23px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 408px 600.117px; transform-origin: 408px 600.117px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 63.0083px 8px; transform-origin: 63.0083px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eProblem statement\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 21px; text-align: left; transform-origin: 385px 21px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 373.817px 8px; transform-origin: 373.817px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eAn octahedron is a regular polyhedron with 6 vertices and 8 triangular faces. It is also one of the five well known platonic solids.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 21px; text-align: left; transform-origin: 385px 21px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 157.542px 8px; transform-origin: 157.542px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eA triangulated mesh -or a triangulation- is simply 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: 5.05833px 8px; transform-origin: 5.05833px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\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: 206.533px 8px; transform-origin: 206.533px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e x 3 matrix of positive integers where each row contains the vertex indices of a triangle, and where \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 5.05833px 8px; transform-origin: 5.05833px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\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: 84.4px 8px; transform-origin: 84.4px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e is the number of triangles. \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 63px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 31.5px; text-align: left; transform-origin: 385px 31.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 327.242px 8px; transform-origin: 327.242px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eYour task here is to mesh this octahedron. To do so, you will list the triangles/rows in a matrix of triangles, \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 7.51667px 8px; transform-origin: 7.51667px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003eT. \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 49.9333px 8px; transform-origin: 49.9333px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eYou will also be careful to always keep the triangles / faces coherently / consistently oriented (all clockwise or all counterclockwise : triangles \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 23.325px 8px; transform-origin: 23.325px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003e[1, 2, 3]\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 15.5583px 8px; transform-origin: 15.5583px 8px; unicode-bidi: normal; \"\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: 23.325px 8px; transform-origin: 23.325px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003e[3, 2, 1]\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 40.0583px 8px; transform-origin: 40.0583px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e are distinct).\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 58.3417px 8px; transform-origin: 58.3417px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eOn the other hand \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 23.325px 8px; transform-origin: 23.325px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003e[1, 2, 3]\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 3.88333px 8px; transform-origin: 3.88333px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e, \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 23.325px 8px; transform-origin: 23.325px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003e[2, 3, 1]\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 15.5583px 8px; transform-origin: 15.5583px 8px; unicode-bidi: normal; \"\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: 23.325px 8px; transform-origin: 23.325px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003e[3, 1, 2]\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 94.5333px 8px; transform-origin: 94.5333px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e are one same unique triangle.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 168.575px 8px; transform-origin: 168.575px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe row order of the triangles in the list doesn't matter.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 41.9833px 8px; transform-origin: 41.9833px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eEdit / update\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 351.75px 8px; transform-origin: 351.75px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eTriangles orientation not taken into account anymore, because of too many possible cases to check in the tests (!)\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 28.7833px 8px; transform-origin: 28.7833px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eExample\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 52.1167px 8px; transform-origin: 52.1167px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe first triangle \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 75.2583px 8px; transform-origin: 75.2583px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003e(X \u0026gt; 0, Y \u0026gt; 0, and Z \u0026gt; 0)\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 42.7833px 8px; transform-origin: 42.7833px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e here can be [\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 21.3833px 8px; transform-origin: 21.3833px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003e1, 2, 5]\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 187.5px 8px; transform-origin: 187.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e if counterclockwise oriented (normals are outward oriented).\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 383.5px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 191.75px; text-align: left; transform-origin: 385px 191.75px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cimg class=\"imageNode\" width=\"504\" height=\"378\" style=\"vertical-align: baseline;width: 504px;height: 378px\" src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABaAAAAQ4CAIAAABwgOwFAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAGNSSURBVHhe7d0N1C1lYdh7zwGBwomVihW0McY21BiJoVRtES9ea1NI8yWGEA4hWj9WmnCkfq2VlRib2Fwt3mXVKi6TSGKvVsDaYFSS0LtMULR6TeJHJQYluqIhfoA1GCSIeMK545l595n3Y+93Zs88M8/H77fO4sy7zxHfPXvveef588wz9wEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAmOxpfgcAGM+v/dqv7d27t/liJ7/5m7/5wQ9+sPkCAAAAIDannnrqod1cfPHFzd8GABjDqv+0AgCwhkc/+tHNFgAAAECiLrvssnqaxuMf//hjllh9AQsAAADAzK655ppDhw7dc889KgYAAACQqr/6q786dOjQhz70oeZrAIDw/HcVAGBMJx5Wbfzpn/5p/QgAwAQEDgBgTI9//OPrjT/4gz+oNx74wAc+4QlPOOaYY+ovAQBCEDgAgDGdeuqp9cZXvvKVyy677NZbb73ttttuuOGGb3zjG3/+53/+4he/+Ljjjqv/AgAAAECkrrrqqsN3UDn01a9+td7Y4uabb/72b//25m8DAIxkT/M7AMAYPvnJT/7jf/yP6+0bbrjhLW95y2233XbssceeffbZz3jGM6qN6vG/+Iu/+Cf/5J985Stfqf8aAAAAQESOPvrogwcP1jM1LrrooubRDf/oH/2jz33uc/Wf/sZv/EbzKAAAAEBUjjnmmB/4gR+48MILzznnnOahzb7v+76vDhwHDx58wAMe0DwKAAAAkJbrr7++bhznnXde8xAAwGDuogIATOrDH/5wvXHyySfXGwAAwwkcAMCkbrrppnrjYQ97WL0BADCcwAEAjOm44457zGMes2J9je/+7u+uN2688cZ6AwBgOIEDABjNG9/4xq9//et/+Id/eMEFFzQPbfPoRz+63vj0pz9dbwAAAABE5IILLqgXEH3f+97XPLTZqaeeWt9H9pZbbmkeAgAAAIjK8ccf/1d/9Vd147jooouaRzfs27fvgx/8YP2nBw4caB4FAAAAiM0zn/nMOmEcPHjwl37pl0488cTqwb179z75yU/+kz/5k/qPrr/++vovAwAAAETqpS99aR0yanfeeefdd9/dfHH46pW6egAAAABE7ZxzzvnIRz7SJI0NX/ziF3/+539+715rnAMA49vT/A4AMLaHPOQhp59++gknnPDNb37zc5/73Ic//OHmDwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6OHSo2QAACGxP8zsAwLjadWOPUw4AICxnGwBAANvnbmgcAEBITjUAgLEtuzJF4wAAgnGeAQCMavW6GxoHABDG3uZ3AIDhdqobe267rdmqrM4fAADrEjgAgJG048ULX9hsHKZxAAChCRwAwBiW1I09//7fb9n4Fo0DABibwAEADLa9brziFYe/aDlwQOMAAMIROACAYZbM3diRxgEABCJwAAAD9KkbNY0DAAhB4AAA1tWxblx+ebOxQeMAAEYncAAAa+lQNzaFjMqBA82GxgEAjE3gAAD66zh3YyWNAwAYkcABAPS0a93YfguVbVep1DQOAGAsAgcA0MciQ7zwhevM3WhdpVLTOACAUQgcAEBn7boxnq1LdQAA9CdwAADd9KwbvbLFkb9sEgcAsBaBAwDoYPjcjSXLcCxoHADAEAIHALDSoUP96sb2FUa32LYMx4LGAQCsTeAAAJZrh4ZR191YRuMAANYjcAAAS4xeN3a7SqWmcQAAaxA4AICdDKsbRyLFjpZfpbKVxgEAdCNwAADbjD53o6dNfUTjAAA6EDgAgM2G1I1dVxjtTOMAAHoROACAltBzN7otw1HTOACA7gQOAGBD6LrR1m0ZDo0DAOhI4AAADpuybvShcQAAXQgcAMDIdWNTkhiDxgEA7ErgAIDijVU3Oq4wuliGo/vNYjUOAGA3AgcAlK0dC17wgmYjShoHALCCwAEABUunbtQ0DgBgGYEDAEo1Y93oc7PYLTQOAGBHAgcAFClY3dgUIHbVZxmOBY0DANhO4ACA8oSoGx1XGB2JxgEAbCFwAEBhgs3dmJjGAQC0CRwAUJJ46saAZTgW+l0OAwBkTeAAgGLEOXdjrWU4Fo40DpM4AKBsAgcAlGGSujHLlAqNAwCoCBwAUIA4526McZVKTeMAAAQOAMjdBHVj4C1Uhl2lUtM4AKBwAgcAZC3OuRthaBwAUDKBAwDytRjnv+AF2deNmsYBAMUSOAAgU+26MYkjcaG78Zbh2IHGAQAlETgAIEeT142hxliGo7aps2gcAFAMgQMAsjNx3Ri4wmgAGgcAFEjgAICMVIP55OZuhLlKReMAgNIIHACQi/YwPsUlRce7SqWmcQBAUQQOAMjC3HVjnRVGw9M4AKAcAgcApC/1uRshaRwAUAiBAwASN2/dGGWF0aA3i9U4AKAMAgcApCyzuRtjL8OxoHEAQPYEDgBIVmZ1I7A9L35xs1XROAAgOwIHAKQps7oR+CqVendpHACQMYEDABIUrm6sNewf8xYqwa5SqWkcAJArgQMAUhOubvQ1ygqjE9gcMjQOAMiSwAEASYmnbqRM4wCA/AgcAJCOvOtG6GU4NtvUOACA9AkcAJCIcuZujLsMx/IJGkcah0kcAJA+gQMAUhBx3RhzhdHJaRwAkA2BAwCiF2fdSGKF0Q7ZQuMAgDwIHAAQt4jnboxvsQxH4JvFbqFxAEAGBA4AiFhRdWN0fWqFxgEAqRM4ACBW6sa09tx6a7OlcQBAggQOAIhSInVj/BVGp71Z7Cbt/2uNAwBSI3AAQHzirxsTrDA6cBmOtQrFkQtVKhoHACRF4ACAyCQydyNXGgcAJErgAICYqBujGBYmNA4ASJHAAQDRUDdqi7Uwzj672ZicxgEAyRE4ACAOi1H0C16QSt0Yf4XRLU47rdmYg8YBAGkROAAgAu26wUDjxQiNAwASInAAwNySqxsT3EJlxpvFbqZxAEAqBA4AmJW5G6v1vVlsgAahcQBAEgQOAJhJNVRWNxKhcQBA/AQOAJhDe5CcZt0IvsJoZDQOAIicwAEAk0u/bkxhjWU4AncHjQMAYiZwAMC0Uq8bE6wwusUllzQbEdA4ACBaAgcATMjcjXCmyg2bGgcAEA2BAwCmom70Fc3NYrc40jhM4gCAaAgcADAJdWM99X6L6SqVmsYBALEROAAgvOzqRnS3UJmjMmgcABAVgQMAAsupbky/wmjcNA4AiIfAAQAhZTd3Y2qve12zscKscUHjAIBICBwAEIy6MaL4luFY0DgAIAYCBwCEoW5MI7amoHEAwEwEDgAIIOu6MfUKo12uUpnbkUkcFY0DAOYgcADA2HKtG7OvMBrxVSoVjQMA5iVwAMCoMqgbCQ3OI/tWNQ4AmJHAAQDjyaBuMIzGAQBzETgAYCTqRjg7LsMRaz7QOABgFgIHAIyhmLox9QqjW8S9DMeCxgEA0xM4AGCwEurG7CuMpkbjAICJCRwAMEwxczfikkIy0DgAYEoCBwAMoG5MZrEMRyJXqdQ0DgCYjMABAOtSN+aSVCnQOABgGgIHAKylyLox8wqjydI4AGACAgcA9LcYo77gBeZuTGfHm8UmQuMAgNAEDgDoqV03ChHbLVQOHGg2kqJxAEBQAgcA9FFg3WA8mxoHADAqgQMAOlM3GOxI4zCJAwBGJXAAQAfVWLT4uhHFCqOXX95sPPGJzUaCNA4ACEHgAIDdtEeh5m5E4lGPajbSpHEAwOgEDgBYSd2IZ4XRvFqAxgEA4xI4AGC59sjz+c9vNpjX4iqV9GkcADAigQMAllA3orI9AaR5s9ilNA4AGEbgAICdqBubRbHCaI72vPjFe269tflC4wCAAQQOANhG3YhN3iP/9kU3GgcArEvgAIDN1I22eFYYbctoGY7akcU4KhoHAKxF4ACAFnUjLRktw6FxAMBAAgcAbFA34lTMaF/jAIAhBA4AOEzdSEt2V6nUNA4AWJvAAQDqxi7mvIXKroP8zG4Wq3EAwLoEDgCKp24sE+cKowXQOABgDQIHAGVTN4iSxgEAfQkcABRM3Yjc6oF9pstwLGgcANCLwAFAqdSNbGS3DMeCxgEA3QkcABRJ3ehsthVGjecP0zgAoCOBA4DyqBtdJLHCaO5XqdQ0DgDoQuAAoDDqRpbyvUqltqlxAAA7ETgAKIm6kQrzFLY50jjsHADYicABQDHUje4MoaOkcQDACgIHAGVQN9YyzwqjvUbvZSzDsaBxAMAyAgcABVA3+vpP/6nZSEjuy3AsaBwAsCOBA4DcLQaBz3++ukEeNA4A2E7gACBr7bpBEtYYsRd2lUpN4wCALQQOAPKlbpSmmKtUttI4AEDgACBbIepGYcPIGVYYNVDv48gkjopdB0DxBA4AslON9ELUDYiPxgEACwIHAHlpj/HUjfXMdQuVIePzIpfhqGkcAFATOADIiLpBkctwaBwAUBE4AMiFuhGJ6oVY7xdbdkifX3t+8Rebf0mlegQAyiNwAJCF9ohO3RjDDCuMFm5wldA4ACicwAFA+tQNKotlOIq9WazGAUDZBA4AEqdujGuuFUYLN16M0DgAKJbAAUDK1A3YRuMAoEwCBwDJUjfYouCbxW6hcQBQIIEDgDSpG6yQ1jIcYQKExgFAaQQOABKkbgTmFip50DgAKIrAAUBq1I1wrDA6vcDdYVPjAICsCRwAJEXdYDXLcGxzpHGYxAFA1gQOANKhbtBdEstwTFUcNA4ASiBwAJAIdQMG0DgAyJ7AAUAK1I0JJb/CqKtUltA4AMibwAFA9NSNaeS3wmjkV6nMURk0DgAyJnAAEDd1A0alcQCQK4EDgIipG+QqkrigcQCQEYEDgFipG6zNMhwrHZnEUdE4AMiFwAFAlNSNmSS/wugWSdwsdg4aBwD5ETgAiI+6Mb38VhiNWRxBQeMAIDMCBwCRUTcYhatUOtA4AMiJwAFATBZDrOc/X91gHLFdpRJZR9A4AMiGwAFANNp1A5iKxgFAHgQOAOKgbkQgtxVG6UzjACADAgcAEVA3CCHCZTgibgcaBwCpEzgAmFU1jlI3Zpf9LVTcLLYbjQOApAkcAMynPYJSN8heCslA4wAgXQIHADNRN5iAm8X2p3EAkCiBA4A5qBvxyXyFUVep9KFxAJAigQOAySVdNwz2WE9q7xyNA4DkCBwATCvpupGl7FcYZV2bGgcARE/gAGBC6gbTi2EZjmRnQBxpHCZxABA9gQOAqagbzMsyHGvROABIhcABwCTUjbhlvsLovNLvAhoHAEkQOAAIT92AxGkcAMRP4AAgMHUjZoWsMLpYhsNVKgNoHABETuAAICR1g8Ll1QL2fOlLzZbGAUB8BA4AglE3IDPtW9JoHABERuAAIAx1g6jMcrPYHBPAkQtVKhoHADEROAAIQN1ISlm3ULEMx2AaBwBxEjgAGJu6kYpCVhglAI0DgAgJHACMSt2AWu7Dfo0DgNgIHACMR90gZotlOM4+u9lgGI0DgKgIHACMRN0gFaed1myEU8xoX+MAIB4CBwBjUDeSVdYKowSgcQAQCYEDgMHUjRSVucLoLDeLLYDGAUAMBA4AhlE3SFHQm8UWOcLXOACYncABwADqBrBB4wBgXgIHAOtaDGCe97xv/YKKYW3Ze0DjAGBGAgcAa2nXDZJV4gqjluEITOMAYC4CBwD9qRupK3OF0S2CLsNRtk2NAwCmInAA0JO6wTL+c709sOFI47BPAJiKwAFAH+oGGXCVyiQ0DgAmJnAA0E01RFE3WCHFQey4V6kYxm+jcQAwJYEDgA7agxN1IxclrjDK5DQOACYjcACwG3UDdmX0vpzGAcA0BA4AVlI38hPiFirJDVwtwzEtjQOACQgcACynbpA9N4udnsYBQBgCBwBLqBt0ZLxqD3RwZBJHxR4DIACBA4CdqBu5s8Koq1Smp3EAEJTAAcA26gbdZTBMHXiVioF6HxoHAOEIHABspm7kLcQKo9CHxgFAIAIHAC3qRheGZDCMxgFACAIHABvUDfpKfWg6fBkOg/N1aRwAjE7gAOAwdYOSuVnsHDQOAMYlcACgbhSnuYVK9boP/FU4e2C4F72o2ajYnwAMI3AAFK89qFA38maFUaJSH3w0DgBGInAAlE3dKJaRZG2xDIerVOawp/5N4wBgDAIHQMHGrRuGJRTFG36gLTtQ4wBgMIEDoFTj1g3SYgBJNJpJHBWNA4BhBA6AIqkbBWtWGGVhjZvFGn4HonEAMIDAAVAedaNMVhjdlWU4JrM5XhyZxFFpNw4A6EPgACiMuoH/ME7kFo3DexWAPgQOgJKoGzCcUfdAO+3ATZM4KhoHAP0JHADFUDdgmcUyHGef3WwwO40DgJ4EDoAyLEYIz3ueulGyPS9+cbPFjk47rdlYxmA7mK2TOCoaBwB9CBwABWjXDcpkhVEi0TdVaBwAdCZwAORO3YAuutws1hg7sB0mcVS++MVmw/4HYCWBAyBr6gb05Wax4axXKNrtSeMAYDmBAyBf6gaQmp0ncSwuVKloHAAsIXAA5KgaAKgbbGOF0UGMq+elcQCwG4EDIDvtU391A7rrsgwHa+tcJXaexFHROABYSeAAyIu6wXZuodLX9mU4DKcjoXEAsJzAAZARdQOIU88YsXQSR0XjAGAJgQMgF+oGDOcqlSRoHADsROAAyIK6wW6sMNpP+yoVQ+g5rJrEUdE4ANhG4ABIn7oBxCxQgNA4ANhM4ABInLrBalYYHcjIOWYaBwAtAgdAytQNGJ1lOMY1oDvscpVKTeMAYIPAAZAsdQOC2n6zWOKkcQBwmMABkCZ1gz6sMLomo+WBBu/ATpM4KhoHAAIHQJLUDQjKVSopajcOAIokcACkRt2gOyuMDvSc5zQbzKfrJI7KonGYxAFQJIEDICnqBpCKWSqDxgFQMIEDIB3qRjyMnWBCPSZxVDQOgFIJHACJUDdgSq99bbPBeuaNCxoHQJEEDoAUqBsM4BYqg1iGIw79JnFUNA6A8ggcANFTN1iPFUbXZkicB40DoDACB0Dc1A2Yi6tU1hYmKPSexNGmcQAUQOAAiJi6AdPbPhJ2lUq6FpM4KhoHQO4EDoBYpVg3jB+AkMeBdSZxaBwAxRA4AKKUYt0gSlYYBY0DoBACB0B8Fuffz3ueusGarDC6ni2jX8twxGfNlTg0DoACCBwAkWnXDSASBw40G6wWczvQOAByJ3AAxETdgBktG/QaDEdm/dupaBwAWRM4AKKhbgBJSyIZaBwA+RI4AOKgbhCAFUZHsFiGw1UqMVl/EkdF4wDIlMABMLfq9FrdgNkZ6A6U1g7UOAByJHAAzKp9Yq1uMBa3UIFdaRwA2RE4AOajbkAkVo9vL7+82SAmg65SqWkcAHkROABmom5AcizDsUy6dUDjAMiIwAEwB3WD8KwwSvZGmMRR0TgAciFwAExO3YCoGNMOlMEObDcOAJIlcABMS90gNCuMhrBYhuOJT2w2iMM4kzgqi8YheAEkS+AAmJC6AbHpO5p91KOaDfKjcQAkTuAAmIq6AeQnghYw2iSOisYBkDKBA2AS6gbTssJoJ70GsW4WWwiNAyBZAgdAeOoG5MTNYheiSQBjTuKoaBwAaRI4AAJTN5iSFUZhXBoHQDoEDoCQ1A2IloFrXkJN4qh4qwAkQuAACEbdgMxYhqMt+2G/xgGQGoEDIIz22fBzn9tsAJEYOF61DEeURp7EUdE4AJIicAAEoG4wK7dQIbhyRvsaB0A6BA6AsakbzMUKoxNwlUrcxp/EUdE4ABIhcACMSt2A+I0yRnWVSlE0DoAUCBwA41E3gBLEPcIPMomjonEARE/gABiJugFJMDRlbRoHQNwEDoAxqBsFinV4Y4XR4ApfhiOFgX2oSRwVjQMgYgIHwGDqBjGwwuj0LMNRJo0DIFYCB8Aw6kbJqle/+y9i4IUYKJ0dGHASR0XjAIiSwAEwwOK89rnPVTegIG4Wi8YBEB+BA2Bd7boBxC/EKNRVKiXTOAAiI3AArEXdIEpWGCWg1MbwYa9SqbUbBwBzEzgA+lM3VvCfMWdhhVGYy6JxOPoBzE3gAOijOn9VNyBFow8+S1uGI83R+xSTOCoaB0AcBA6AztpnruoGULMMBxWNAyACAgdAN+oGpMuYs2ATTeKoaBwAcxM4ADpQN0iBFUYJxYi9I40DYFYCB8Bu1A1IWrih5mIZDlepxG26SRwVjQNgPgIHwEpj1Q1nuoTjFioE5fC1NrsOYFoCB8ByY9UNAGY19SSOL36x2dY4ACYkcAAsoW4wLuOcWYTe7aXdLJaO2m8Mn32AqQgcADtRN0iNFUZnlusyHBkNziedxFFZLMZR0TgAJiFwAGyjbkAejCqZl8YBMC2BA2AzdYO0WGGUcLIbk089iaPyC7/QbFQ0DoDABA6AFnUD6Gux2sLZZzcbUKt/pmgcAFMROAA2qBuQk+lHkqed1mwQsRkmcVQ0DoBJCBwAh6kbAG3G4QNt2YEaB0B4AgeAukHy3EJlq4kHkG4Wm5R5JnFUNA6AwAQOoHjqBumywmhssrlZrOF3IBoHQEgCB1A2dQOgPMEncayIFxoHQDACB1AwdQOyZNA4kB0YmsYBEIbAAZRK3QBGZBkOFro0C40DIACBAyiSukFGrDC6yexjxWyW4cjdbEuNLrQbBwBjEDiA8qgb5MEKo4RgNsGUFo3DbgcYg8ABFEbdAAJxlUpqgkzi6JsqNA6A8QgcQEnUDchbJEPEdK9SMcaehcYBMBKBAyjG4sTxuc9VNwCojDyJY+1CoXEAjEHgAMrQrhuQESuMHmFkSNI0DoDBBA6gAOoG+bHCaJySXoaj1HH1/LdTWfjCF5oNjQNgLQIHkDt1A0oQ24DQzWILNPxN2A5kGgdAfwIHkK/q7FDdAOii7OF0RJM4FheqVDQOgJ4EDiBT7fNCdQOYjJvFlmnEGKFxAKxL4ABypG5QBiuMNuIcBLpKJSkRTeKoaBwAaxE4gOyoGwC9GEIPFGIHahwA/QkcQF7UDUrgFiptxn6MJK5JHBWNA6AngQPIiLoRCSfiFC6tZTh8YGOmcQD0IXAAuVA3gNhYhiM160ziCN0dNA6AzgQOIAvqBuWxwui3GO9RAo0DoBuBA0ifugHEJpWrVIyWt+k3iWOyHahxAHQgcACJUzcojRVGF5IY5rlKhbFoHAC7ETiAlKVVN5yPAgHs3bPnaaef/rYLL7ztF37hGy95ydd/+Zc/+8IXXvnjP/6Ehz2s+RvLOCgtEd3tVBY0DoCVBA4gWWnVDYAAHv73/t7/es5z3vjUpz71e77npOOPv+9RRx179NEPvf/9f+J7v/e9z3rWb+3fv++YY5q/yuhmSQwaB8By8RZqgFUSrRt7ijnqlvNMexlltxy+RMUKo2kM7errU4Ktx/Ggffs+euDAyfv2Vduf+t//+79+7GM33XbbfY866p899KHPOuOMEw6njXd/5jPf/8Y3Hv7rmxkbr9Rp78y4D1/2smbDwRagxQwOIEGJ1g0wpCxTsGU4Xvov/2VdN37rE5847TWveel73nPNn/7pW2+88Xm/8zuP/M//+bO331790ZP/4T985hlnHP7r9LB7Npj347yYx+GoAtAicACpUTcomRVGawZ197nP/Y499mmnn15t/OUdd1z8trcdvPfe+vHaLX/91xdcfXW9/ezHPKbeICsaB8A2AgeQFHUD4LAnPfzhR+391oncb33iE3cfPFg/2PZHn//8F772tWrjjAc/uH7kCEPiDhK49kPjANhM4ADSoW4AaVmsvnH22c3GeG6/++533HTTR7/4xf/vL/6ieWibv/jqV6t/HrV379GHUwijiScoaBwALX7aAYlQN4BaigO5005rNsbz3j//86e85S1nvO51b73xxuahzY7eu7eeu/GNgwc3XcBiJNxZGgt4ahwAGwQOIAXqBrS4hQpdPOuf/tP7HnVUtXHdn/1Z/QjjiLAjaBwAhwkcQPTUDahZYbSS3Pgt2D1iV3vgCSf88r/4F/X26z/0oXqDNaR3F1aNAyiYwAHETd0A8hDsZrHbHXPUUW+78MK/f8IJ1fY7brrp//30p+vHv8XoN1eLSRwVrzJQKoEDiJi6AbQZtnVw9N69b7/oov/jYQ+rtj97++3Pevvb68dZ26ZJHDG/CTUOoHgCBxArdQOgp33HHHPd059+7qmnVttf+NrXzr7iiq/cdVf9R99i0Js9jQMom8ABRGlxWvbc56ob0GaF0fRMtQzHg/bte++zn/2khz+82v7s7bf/81/91Vv++q/rP2KgZhJHEslA4wAKJnAA8WnXDaBmhdEMhmohl+E448EP/uiBA6efckq1/eEvfOFx6kbJNA6gVAIHEBl1A6CnH/3u777h2c8+ed++avt3PvWp//OKK778N39T/9ERBrrD7ElrB2ocQJEEDiAm6gawo9RHaCGvUnnmGWdcc9FFf+e+9622X/WBD/zQm9985z331H9E0TQOoDwCBxCH6txrcfr17/5dswGQmbGvUnna6ae/4SlPqbd/9p3vfMHv/m69vZXx7Rg23U4lCRoHUBiBA4hA+6xL3YDlrDBK29nf+Z1vfOpT6+3z3vKWX/3DP6y3GV+6dUDjAEoicABzUzdgV4WvMGpUtpNjjjrq/9moGwfe9a7fvummepug0pvEUdE4gGIkeZQG8rGsbuzJ9OiU6/Parpxn2td6e2YjcBQ6gyObIVl9fcpI63G88Kyz/u9zzqk2/vbee9/5yU/WDy5z0VvfevfBg80X9LX5HZjq2/FlL2s2Kg7RQKYc3YD5LKsbFYEjdc6elxE4+srpPzgvFuAYo3HceOml3/P3/37zxW7u95KXWHl0fdvehBoHQJxcogLMZEXdAGA3jzjppGaLqOzZs/VXPFyrAuROuwXmsGvdiOqMcES5Pq/tynmmfa23Zw7P4HB9Sg5GvUqlE+PYgXbagav26fbPeGwvwWIehwM1kB0zOIDJ7Vo3AGq5Ds7HvlnsUupGGD3CQIQvwWIeh7cHkB2BA5iWugF9FX4LFZhRrglA4wAyJXAAE1I3gO4MvYhYp0kcMb+HNQ4gRwIHMBV1oyjOmGFHVt8gHhoHkB2BA5iEugHDFLrCaMYmW4aDte027M9hiU6NA8iLwAGEp24AfRluDWQHzi6Vl+ALX2g2vGeA9AkcQGDqBgxhhdH8THmVCmvrNtrPYRJH+w2pcQCJEziAkNQNYA2FjLJcpZKxtN7DiwtVKhoHkDKBAwhG3QCYhTHqhHKYxFHROIAsCBxAGOrGjpw1wq58TJjdwDdhou9hjQNIn8ABBNA+MVI3YDC3UMnNYtWDs89uNkZkaDq5TCZxVDQOIHH5HJCBWIxSN/bke3TK+KltUc4z7av7ntlYYbSswJHfsKrLWhsjrjxqXDrQWjvwyP+m+oCn/hK87GXNRsWRHEiKYxYwqlHqRiXjM6pyThadFi/Tfc8UGDjSHRmOtWLo8NIhcAy07g7Mar9rHECaHLCA8YxVNyoCRwacEy8jcKwQ/+B8lJDxu797nx/4gWZ7mRtvvM9739tsd6duDDRgB+a26zUOIEGOVsBIRqwbFYEjA06IlxE4lolncD5WxVjhcOA49Fu/VX9V2fPUpzZb23Wf1iFwDDRsB2ocAPNyqALGMG7dqAgcGXA2vEzPwGH6RkAThIwdbUzfaAeOhfVLh7oxnMCxhcYBJMVxChhscTo4StqoCRwZcCq8TMc94/qUscxVMVZYGTgWepcOgWOgMXagxgEwIwcpYJgQdaMicGTAefAyAseOho8tRwkZv/d7zcZCiGrQLXC0dYodAsdAAscyGgeQCEcoYIBAdaMicGTASfAyAseOOo4tA1WMZQIlg20LcHS3qnS89rXNBmsY77XWOADm4vAErCtc3agIHBlwBryMwLHd9rHlc57zrX8OHHN2DxnLxBc4FpSOkQkcu1o0Dod3IFYOT0B/7bPAEHWjInBkwBnwMn0CR+Z1Y9fpGF3GnMMrxgohAkf/61N2tTR2VN9/9zuwFE7g6ELjAOLm2AT0NEHdqAgcGXD6u0yXPZPZ9I21rytpH3CChowdhagblQCBY2Fr6Wg/BaVjhbFf6zBvnThoHEDEHJiAPqapGxWBIwPOfZfJOHAMXyBj3JuVDJRg4Fj4VulY9v0rHdsJHL1oHECsHJWAziarGxWBIwNOfJdJPXCMssxnVCFjmZQDx8Ke885rtnYkdlTCvNAaB8D0HJKAbqasGxWBIwPOepdJJXBkNh2jr0B1ozLGCqM9tN5ve57ylGZru5JLh8CxHo0DiI/jEdDBxHWjkvHZUjkngk55l+myZyZbYXSU6RiL1THCRYHpBXou007faGx7yykdmwR732ocABNzMAJ2M33dqGR8qlTOWaDz3WW67JnRA8fwkLHrGp851Y1K1oFjYVXpqJQQO0K+bwsKHBXHfCACjkTASrPUjUrG50nlnAI62V1m1z2z9vUp407H6CunwBHuuUQWONoKndYR+H2rcQBMyWEIWG6uulHJ+CSpnPM/Z7rL7Lpndg0cg0PGnlbFGG0AJnB0EXHgWCiodIR/02b0qVhO4wCi4RgELDFj3ahkfIZUzsmf09xldt0zi8Bx6631xtraIWOZcQZg6kZHE68wWlv3w5j/BSyTvG8z+mwsp3EAcXAAAnYyb92oZHx6VM6Zn3PcZbbsme3TMb7zO6t/dK8bXSrGaiMMwASOLmaZvlEb/HnMc1qHwDEijQOIgKMPsM3sdaOS8blROad9TnDbnvOcZqOLJYFjeMhYZoQBmMDRRcqBYyGf0jHhmzajj8dKGgcwN4ceYLMY6kZF4MhAmWe326dj9N0Ph+tGZe9/+S/1xgSGjr7UjY6yCBwLq0rHjTfe573vbbajJXCEoHEAs3LcAVoiqRuVjM+Kyjnhy/iZ9lrjc8l+2PPudzdbmx169rPrDYFjHgLHWtKb1jH5mzajD8luNA5gPg46wIZ46kYl41Oics72Mnimw29W8vu/32x1JnDMLHzgmKFuVKb6PCZTOgSOoDQOYCaOOMBhUdWNisCRgVSe6eCKUVkjZCxTB44p60Zl0NBL3ehoxukbtWk/klGXjpnetBl9VDrQOIA5ONwAm0/1YqgbFYEjD1E92TmmY6xhlsBRWX/oJXB0VFjgaIsudggc09A4gMk51kDxIqwbFYEjD9M/2cimY/Q1y/UptTWHXupGdwUHjoVYSsd879uMPjDdaBzAtBxooGxx1o2KwJGHcE82kekYfQkccxI4JjRn6Zj1TZvRB6YzjQOYkKMMFCzaulEROPIw8MkmPh1jDQLHnCYJHLPVjUqsB5+pY8fcb9qMPjOdaRzAVBxioFQx142KwJGHjk820+kYa0gscKgbvcweOCpxH3+mKB0RvGkz+tj0sWgcAgcQkkMMFCnyulEROPLQfrKXXNJs1NbaD9mEjGXmWmG01nvcJXB0N/v1KbVEjj8BS0ccb9qMPjl9aBxAeI4vUJ7460Yl77OfvJ9dx+kYy3fCnj/4g2Zri5yG0zuZcfpGrff+FTi6EzjWsqp0VNaIHQLHvDQOIDAHFyjM4twu2rRREzgiN3x1jD17loaMZQSOwPrtX3WjF4FjsBGmdUTzps38WLZC9RL8x//YbGscQACOLFCSxbld5HWjInBEYpRlPpeFjF77Iafh9BICx2wmeC4xLMBRyeLQun7piOlNm/8RbbvF/tc4gGAcVqAYixOL+OtGReCYUtCKsYLAsVlKgSOzl2OCpxNJ4KhkdHTtdwFLZG/a/I9o27VfAo0DCMMxBcqwOKtIom5UBI4Q5goZywgcm827wmilxy7O6eWY4LlEcn1KLdOj6+7TOuJ70+Z/UNui/RJUP48e8pBmW+MAxuOAArlrn0+kUjcqAsfaxqgYe7dVjCAn4t33Q07D6SVmn75R67qjc3pFJnguAseEVpWO17622YhD/se1tu0ftMUkjorGAYzE0QSylmjdqAgcuxolZFx/fbO1sGSwF+REXOBoSSlw5PRyTPNcBI457HIBSxyxI/9D28KOnzWNAxibQwnkq30ykVbdqAgctUAVY4Ul470gZ+ECR4vAMY9pnks8C3BUihxGLo0d1RtgjXvNjif/Q1ttxQdN4wBG5TgCmWqfTCRXNyqlBY5LLmk2Kus+934hY5klp6FBzsI7PtNphqBzEzjmMc1ziSpwVAoeRm4qHVte/ZlKRxkHuJXPUuMAxuMgAjlqn0mkWDcqWZ7idJyOsfK5j1Mxlll+DhrkFFzgaJl9hdHa7vs6p5djmucS1fUpNWPIah885Smr3gATxo4yDnC7PUuNAxiJIwhkp30akWjdqCR9fjPwupLDzz1syFhm+TlokFNwgaMlksBR2WV35/RyTPNcBI7o7fnRH222tpukdGR+jOv4QdM4gDE4fEBe2qcR6daNSvwnN+FWx5jxuS8/DQ1y/t3lmeY0nF4ukutTarvs8ZxekWmei8CRjrlKR+aHue4fNI0DGMyxAzLSPodIum5U4jmzGSVkvOc9zdbCihO+uZ77ynPQIOffAseGZAJHTi/HZM9F4EjQqtJRCRA7sj3S9f2gaRzAMA4ckIv2OUTqdaMy8WlNoIqxzOoTPoGjbbJR6KwEjhlM9lxiW2G0ZujY2TTTOrI90q3xQdM4gAEcNSAL7ROIDOpGJdA5zcQhY5nVJ3wCx8JkQ9C5xbMAR2XpTs/p5ZjsuUQ4faNm3Nhf6NKR5/Fuvc+axgGsyyED1vHMZz7z/PPPP/PMM4877ri77777Ax/4wDXXXHPFFVfce++9zd+YUvvsIY+6URlyQhNJxVhh9QnfLCdzHc5Bxz/5Fjg2CBxTm+y5CBw5ClQ6MjzeDfmgaRzAWhwvoJ9TTjnlXe961xlnnNF83XLTTTedd955n/zkJ5uvp9E+e7j00nxOAro8kfhDxo52PeGb5UXscBo6/sn36mc62RB0blFdn1Lbedfn9IpM9lwEjtyNGztyO+oN/KBpHEB/DhbQw759+z7ykY9813d9V7X9iU984ld/9Vf/8i//8gEPeMAznvGMM888s3rwtttu+97v/d5bb7318F8Pr33qcOml3/pnNmcAiydyySXNxoCnNkPFWGHXE75ZXsQOp6Hjn3mvfqaTDUHnlkbgyOnlmPK5CBzFGKV0ZHXUG+WDpnEAPTlSQA+XXXbZz/3cz1Ubb3/723/sx36sfUHKa17zmuc85znVxhVXXPHsjeFKWO1Th7puVNL98b/rdIwOTy2ukLHMrud807+I3U5Dxz/zXv1MpxyFzkrgmNqUzyXOFUZrhothDCwd+XzSxvqgLRqHdyzQgSMFdHX00Ud/9atfPeGEE/7mb/7mwQ9+8B133NH8wWF79+79/Oc/f/LJJ3/zm988/vjjDx482PxBIO3zhkXdqET+43/IRSUbTy2NirFMlxO+6V/Ebqeh4592r3imUw5B5xbVAhy1HfZ+Tq/IZM8l2ukbNcPFwFaVjsqS2JHPJ23ED5rGAXTmMAFdnXPOOb/3e79XbbzpTW962tOeVj/Y9t/+2387//zzq40zzzzzgx/8YP1gEO2ThnbdqETys3+U1THe+95mKyddTvgEjspkQ9AITBk4gu/W+F+4Kb9DgYMNvaZ15HD4G/2DpnEA3ThGQA/HH3/8E5/4xE9/+tM333xz81DLNddc85SnPKXaOP300z/2sY/VD46vfdKwpW5UpvzBr2Ksocs538Rnb51PQ8c/5xY4qic67fUpwXdr/C/clN+hwME2XUpHDoe/EB80jQPowAECxrFv374vfelLJ5xwwu23337SSSeFul9s+4xhe92ohPipL2SMpeMJn8Ax5RB0blkFjiReuCm/SYGD5VaUjm+9RzuvSxqjcJ8yjQPYjaMDjOB+97vflVde+a//9b+utn/xF3/xpS99af34yNpnDDvWjcraP/JVjAl0POeb8rytz2no+GesAkf1XAWOKU38Hca8wmjNKHFGrZ2/50d+pNnacOSdmmLpCPpB0ziAlRwaYH2Pe9zjTjnllLPOOutpT3vaSSedVD1y9dVXX3jhhfWfjqx9urCsblR2/XkvZMyo4znflCdtfU5Dxz9jXfZMJx6FzmriwFEJuHPjf+Em/g4FDlbYaecvSscO79RUSscEnzKNA1jOcQHWd8cdd3zbt31b88V97vPrv/7rP/3TP918Ma726cKKulGrft6rGBHqfs435RlbzzPRkc9bd3ymEw9B5zblCqO1UPs3/hdu4u8w8utTasaHM1q58/f8yI+ser/GHDsm+KAtAkfFexjYzEEB1rR379577rnn9ttvP+qoo0488cT6wT/7sz+7+OKLP/ShD9VfjqN9rrClbhw4MPxHu5Axke7nfJOdrvU/DR35vHXHZzrxKHRW00/fqITav/G/cBN/hwIHq3Xf+dsuYDkiwtIxzQdN4wCWcESA9e3du7deTPSUU075D//hPzzrWc+qtr/+9a8/9rGP/ZM/+ZPDf2WYLWcJO926pePPdRVjft3P+SY7V+t/GjryeeuOz3TiUeisBI5JTfwdChystsbOj790TPkp0ziAnTgcwGhe+cpXPu95z6s2PvCBDzz+8Y+vHxykfaKwY92obP6hLmREqtc532Qnav3PREc+dd3+TCcegs4tn8AR/ws3/XcY/wIcNSPDuQzZ8ytKR2XG2DHxB03jALZxLIDRHHPMMbfddtvf/bt/t9p+6EMfesstt9SPr2nZWcLNN++94YZmm1T0Oueb5ixtrdPQkU9dBQ6BYzLTf4cCB6uNtefjmdYxy3FA4wA2cyCAMV1zzTVPecpTqo0f+qEfuvbaa+sHB1l5urD3iiuaLSLX67RP4CjG9CuMVoLs4vhfuIm/wySuT6kZE85l9D0/e+mY6zigcQAte5vfgd0cc8wxZ5xxxo/+6I8+6EEPah7a5hvf+Ea9cfTRR9cbQ638UX3vs55V/2q+Jk6FDdrXV2TdyIG6ATF4xzuaX9sdOND8Ovvs5pGc/PzPNxsVH3YonsABXb361a/+4z/+47e//e1PfvKTm4e2efCDH1xvfOUrX6k3RtBqHHt+6qeqX80XLUoH/TgFBGqOBvlZlI7tseO0047EjnHN+0bSOIAN5nFBV+edd95vHZ5sfMMNN5y9038DefjDH37zzTcfddRRX/va1+5///vXN1gZR+undTtwHHrTm5qtnbiAJQprnGlNMMN23fO/kU8btzzTws5KZ1mAozL+Xo7/hZv+O0xlAY6aWf2zmHi3h76AJYbjgGtVgOrT3/wO7Oboo4++5ZZbTj755Gr7x3/8x9/2trfVj9eOP/74//E//sdZZ51Vbb/sZS970YteVD8+mtapw46TOFbEDqVjTmuc85UZOGI4OZ5WJoEj/hdulu9Q4GBXc+32EKUjnuOAxgHF88mHHi644IKrr7662vjmN7/54he/+PWvf/0dd9yxd+/eJz/5ya94xStOO+206o9uvPHGxz72sXfffffh/8WoWicQOzaOmtIRlzVO+0Kfkw04Ex3/HHbxZOM5P57KLCuM1sbc1/G/cNN/hwmtMFozDpxFDLt9rNgR1XFA44Cy+dhDPz/3cz932WWX1dt/+7d/e9dddx133HH3ve9960c++tGPnnvuubfeemv95fha5xArGkdN6Zjfeud8EQeOysinsaUGjrmmb9TG3NeRv3CzfHsCB11Etdt3LB31x+d1rzv8xUqxHQc0DiiYzzz09oQnPOFVr3rVGWec0Xx92G233Xb55Ze//OUvv+eee5qHAmmdRuzaOBbEjnmsd85XYOCI7eQ4vEwCR/wv3CzfYXKBo2IQOL0493m7dGz5+CwrHXEeBzQOKJUPPKzp27/9288444xjjz323nvv/exnP/tHf/RHzR9MoHUy0b1x1JSOSa132hf0VGzwmejIZ7ICh8AR1CzfocBBF/Hv8x/+4WZju3bsiPY4oHFAkXzaIU2t84m+jaOmdAS39jlfaYEj2pPjkASOKcz17aW1wmjN8G96Ce3zFaVjlDuwhLNoHN7hUAyfdkhW69x9vcaxIHYEMWRwFe5UbPCQb+QhY9mBY5a6URlnj8f/ws3yHaY4faNi+De9FPd5iqVD44DC+KhDyhan71deuee665rtAZSOMQ0ZXAU6DxtjvDfykFHgmMM4ezz+F26W71DgoKOk9/mK0lGJLXZoHFASn3NI3OIMfqTGUVM6hho4sioncBRp3utTKmO8D6J/I8z1HSYaOCrGfhPLZocnMa1D44Bi+JBD+sI0jtqK0lERO5YSOFhO4JiCwNGXgd/E8tvhkZcOjQPK4BMOWQjZOBZM6+ghwsAx0ngv+nFtAgSO4Gb89lJcYbRm1DexjHd4tBewaBxQAB9vyMUkjaOmdOxi+OBK4MjavAtw1Aa9jpHXjcpc32G60zcqhnwTK2SHRzWtYxE4Kt7wkCmfbcjIhI2j5gKWnWUdOCrRj25jJ3AEJ3CswXhvYqXt8EhKh8YBufPBhrxsnNYPvHHsGkzrOCLCwDHqeC/60W3UZr8+pTboRYw8cMz47SUdOCrGe1Mqdm/PfgGLxgFZ86mG7MzXOGqll45RBlcCR76SDxyR142KwLE2g70p2duVuaZ1aByQLx9pyNHcjaNW6AUsEQaOscd70Q9woyZwBDd34Ei1blSM9KZkb7dNXzo0DsiUzzNkKo7GsVDQtA6Bg5UEjrDmrhsVgYPd2dXLTHkBi8YBOfJhhnxF1jhqmZeOsQZXAke+YlhhtLLmixh53agIHEMY403Gru5igmkdGgdkxycZshZl46jleQFLhIEjwHgv+jFuvCKZvlFZ80UUOFbIIHBUjPGmYT/3ErR0TNI4HvnIR3784x+/66677ne/+zUPAWE4vELWWuf6ETaOhXymdQgcrCRwhDXvtydw0J39vJ5ApSNw49i3b9/73//+Rz/60V/72tcEDgjN4RVyl0jjqKVdOkYcXAkcmUo7cEReNyoRBI6060bFwHsa9vNw48aOYI3j+OOPf9e73vWkJz2p2hY4YAIOr1CApBpHLcnSEWHgCDPei36YGy+BI6DZvz2Bg+7s5xGNVToCNI4HPehB73znOx/72MfWXwocMAGHVyhDgo1jIY3YMe7gSuDIVCQrjNZ6v44Cxwp5XJ9SMfCehv0cwvDSMWrjuPDCC1/zmtecdNJJzdcCB0zC4RWKkXLjqEVdOkoKHJW4R7qRimf6Rq3fixh53agIHGMx9p6AnRza2rFjjMbxfd/3fa997WvPOuus+svXv/71559//kknnSRwwAQcXqEk6TeOWoylI8LAEXK8F/1gN0YCR0Czf3sCB73YyaEt9vAP/VCzsd2y0jG4cVx++eWXXHJJtfGlL33p0ksvfdvb3vblL39Z4IBpOLxCYXJpHAtRxI7RB1cCR44EjoDiCBw51I2KsfcE7OTQtu/hXqVj0TjWDRxPf/rTX/WqV7385S+/8847q0cEDpiMwyuUJ7vGUZuzdAgcdJBw4Ii8blQEjhEZe0/ATg5txR5eUToqi9gxoHE85jGP+fSnP3377bc3XwscMCGHVyhSpo2jNkPpiDBwBB7vRT/ejVFUK4xWeryIkQeOOOpGReCgKzs5tI57ePW0jmHzONoEDpiMwyuUajEkuPLKPddd12znZUXpqIwWO0IMrgSO7MQ2faPS40UUOFbLLHBUDL9Ds4dD67uHl5WOhzyk2Rj2kgkcMBmHVyhYAY1jIeC0DoGDDhIOHJHXjYrAMTrD79Ds4dDW3sPbS8eicVTW/dcKHDAZh1coW0mNozZ+6YgwcIQf70U/5I2OwBFKDN+ewEFf9nBofffwv/23zcZqAgdEz+EVilde46iNcwFLoMGVwJEdgSOUaAJHPnWjYvgdmj0c2rI93DFk7GjAqyZwwGQcXoHWCKGwxrGw/rQOgYNuYlthtLb766hu7Cq/6RsVw+/Q7OGgfuZnmo0hLrzwPldd1WxXhr1kAgdMxuEVOGxjnJDfTVV66V06Igwckwz54h71xkjgCELgCMcIPCi7dxTDQ8aFFzYb241XNyoCB0zG4RXYoHG0dLqAJdzgKvrAUYl74BuXCK9Pqe3yIkZeNyoCRzhG4EHZvd2NNR2jl1HrRkXggMk4vAItGsdOVk3reMMbmq1xCRx5ETiCiOTbEzhYg927XdDpGL2MXTcqAgdMxuEV2EzjWG660rH2GdWEQ764x75xETiCiClw5FY3KkbgQRW7e2eZjtFLgLpREThgMn56AdtoHLvZ5QKW4bFD4MhLnAtwVFa9iJHXjUoM32Gu0zcqAkdQ2e/eeKZj9BKmblQEDpiMn17ATjSOzoJM61jvvGra8V70w9+ICBzji+TbyzhwVDSOcPLYt/FPx+glWN2oCBwwGT+6gCU0jl4OHTr05jc329usUzrWOLsSOKIU7fUplVUvosDRhcDBetLat4lOx+glZN2oCBwwGT+6gCVa4weNY3et3bWidFS6xg6BIxdJBg51oyOBg/VEuG8zm47RS+C6URE4YDJ+dAHLaRwdLR9urT+to+851uRDvrhHwBEROMYXWeDIs25UBI5wZty3JYeMHYWvG8CUfIyBlTSOLjoMt3qXDoEjF9EuwFFZ+iIKHF3kPX2jYrAXTuh9q2J0pG5AdnySgd1oHLvqM9zqWjoEjlzEHDgqO7yO6kZH2QeOiiFfIGPtWCFjCHUDcuTDDHSgcawwYLi1KnZccUWz1cVMQ764x8FRiPn6lNoOL6LA0ZHAwdp67VgVIwR1AzLl8wx0o3EsM8Zwa2jpEDhiJXCMT+CYkoFfIDvuWCFjMuoG5MtHGuhM49jRqMOtNUuHwBGr9AKHutFd3iuM1oz9RvezP9tsDKFiDKFuQNZ8qoE+NI4tgg23VpSOyqbYMd+QL+6hcBQEjpEJHBMz/FubkBEndQNy54MN9KRxtE0y3NplWofAEbHIVxitbH0RBY6OSrg+pWYQuIKKkRZ1Awrgsw30txhjXHnlnuuua7bLNO1wa1Xp2PFes4HFPRSeX/zTNyqbXkR1ozuBoyhCRgbUDSiDjzewFo2jMt9wa5cLWKaKHXGPhucncIwjzu9K4MiPipExdQOK4RMOrEvjiGPcNeO0jijHnREROEYQZ92olLAARy2/0eAoIeMnfqLZqBkzx0zdgJL4kAMDlNw44ht3TV86Yh16xiKxwBFnShA4ZpfogDBExVjBsDla6gYUxuccGGZj+FHcgqPRjruqb22qC1ji3QVxiH+F0VrzOgoc3ZVzfUot5mHhxCFjGSPnOC3qhhcIiuHTDgxWZuOIOHC0BZ3WkcYumEkS0zdqzesY4Vs62k+ZwDGxSCrGCsbPEVI3oEg+8MAYSmscidSNtkClI70dMZXEAkecb2mBIxKTjQ/jDxnLGELHRt2AUvnMAyMpqnEkGDgWxr2AJeEdEZjAMYK4A0cpdaMy7hAx3YqxglF0VNQNKJiPPTCechpHyoGjbfi0jkx2RAApBQ51oy+Bo4ssQ8YyBtKRsKQoFM8nHxhVCY0jl7rRtnbpEDiWSWWF0YrA0U9p16fUlo0Vi6oYKxhLx0DdAAQOYHzZN44cA8dC3wtYBI4dJTR9oyJw9FNm4LjkkmZjiAxCxjKG07NTN4DDfP6BsbWGJXk2jqwDR1uXaR0Cx45SChxx5o2YP2UZBw4VY21G1PNSN4ANDgFAABk3jmLqRtuK0rGn56KkhRA4hhI4ghIyRmdQPSN1A2hxFADCyLVxFBk4FpSOjgSOoaIPHAnUDRVjSsbVc1E3gM0cCIBgsmwcZQeONrFjhWRWGD38fo7uPR193ahEFDiEjBgYWs9C3QC2cSwAQsqscagbO1E6tksrcHzr9/q3SAgc26kYkTO6np66AezE4QAILKfGIXCspHTU0ro+pfm9/i0SJQcOISNRBtgTUzeAJRwRgPCyaRwCR2clx45kAkfr/RzROzvyT9kogUPFyI8x9pTUDWA5BwVgEhk0DnVjLQWWDoFjkBQCR9e6IWSUwzB7MuoGsJLjAjCV1BuHwDFMOaUjuQU4KgJHJztO31AxqBhpT0PdAHbj0ABMaDF0ufLKPddd12ynQuAYyYrSUckgdqQRODa/n2N5c0f8KTv0jGc0W0MIGbky2J6AugF04OgATCvRxqFuhJHftI4Ur0+pCBwLI4SMCy5oNrYzKsuVVzY0dQPoxgECmFyKjUPgCCyb0iFwDDLVB22c6RgrQsYyBma58soGpW4AnTlGAHNIrnEIHFNJ/QKWNALHtvdzFO/vAJ+yEULGT/5ks1Gp1+B4xzsOf7EWY7NceWXDUTeAPhwmgJkk1DjUjZmkOK1D4Fjfuh+0caZjtEPGjjZWGBU42IFXNhB1A+jJkQKYz8Z4Jvabqggcc0uodKS4wmglicAx8nSMvgQOVvDKhqBuAP05WACzir9xqBsxifwClkSnb9RmfqNvfFcTTcdYg8DBCl7Z0akbwFocL4C5Rd44BI5YRTitQ+Do7tC/+TfN1tpCVIwVBA5W8MqOS90A1uWQAUQg5sYhcEQvntIhcGwxQsWoTBwylhm+wmjFUC1LXtZxqRvAAI4aQBzibBzqRlJmv4AlgcCx/C095L2e3nSMNQgcLONlHZG6AQzjwAFEI8LGIXAka5ZpHQmsMDogcGQ1HaOvUa5PqRiwZcnLOhZ1AxjMsQOIRmvoFUvjEDjSN1npSHr6RmXxZ0VMx+hL4GAFL+soFnXD/gQGcAQBYhJV41A38hL6Apa0Ase9JU/HWIPAwQpe1uHUDWAkDiJAZOJpHAJHvkJM64gzcNz79Kc3W2srp2KsMMoCHBWDtyx5WQdSN4DxOI4A8YmkcQgcBRixdMwYOEaoGBUhYwWBgxW8rEOoG8CoHEqAKM3eONSNwgwvHROsMGo6xjzGuj6lYgiXJS/reiwpCgTgaALEat7GIXAUbI3YMeL0DdMxoiNwsJqXdQ3qBhCGAwoQsRkbh8BBn9KxRuAwHSMZAgereVn7UjeAYBxTgLjN0jjUDTbbtXQsCxymY+RA4GA1L2sv6gYQksMKEL3pG4fAwRIrSsdAe1oVw/svLmOtMFoxnMuSl7U7dQMIzJEFSMGiOFx55Z7rrmu2wxE46GC92NEOGct4/0VkxOkbFSO6LHlZO1I3gPAcXIBETNY41A162rF07Ln44mar1ud95S0YEYGDXXlZu1A3gEk4vgDpmKZxCBz0t2gcW7vGgsCRKIGDXXlZd6VuAFPZ2/wOEL/FWdH+/YfOOafZhvipZkCx1A1gQgIHkJTQjcNAlLUsnbhBHkaZvgEFUjeAaQkcQGpajaPZgGiEu80KM1hcnwKsQd0AJidwAAnaOE869KY31RsQL9OCgAKpG8AcBA4gTSEah4EoA7hKBaChbgAzETiAZJnHQZRcpQIUTd0A5iNwACkbsXGYvkEI3lcZsMIodKduALMSOIDEmccBhGCFUehL3QDmJnAA6dM4iINlOIByqRtABAQOICtrNg7XETCqZhkO7yugEOoGEAeBA8hC63TKPA7W9tNPetJfv+EN1a8H7NvXPATAauoGEA2BA8iFxsEwp5588isvuujbjjuu+tU81N+Rq1RM38iDFUZhNXUDiInAAWRkvcZhIEr143DPnqsOHPg7xxzTfD3Yof/6X5stqBn7kR91A4iMwAHkxTwO1vLLT33q6d/xHc0X4BYqsCt1A4iPwAFkR+OgpzO/67t+8Ud+pNr467vuqh8BYBV1A4iSwAHkqHvjcH1K8fYde+yVl1xSbfzOxz72ex//eP3gEG4WC2RuUTeqn7bqBhATgQPIlHkcdHP505/+0Ac84LY77njWG97QPDQSy3AkzwqjsF27bgBERuAA8qVxsJsfe+xjf+qss6qNn/7N37z1jjvqB4cyLQjIlboBxE3gALLWbhznnNNsLRiIlu2U+9//157xjGrjv9xwwzs+/OH6wVHs+cmfbLZIkRVGYUfqBhA9gQPI3eI8bP/+HRoHBXvzz/zMiSec8Nkvf/nSYBN8XKUCZELdAFIgcAAF0DjY5nnnnvukRz6y2vipX/u1O7/xjfrBEZgWBGTmqqvUDSAVAgdQhu2Nw0C0YI/6B//gsgsuqDZefu217//Up+oHYRMrjEJlkTYq6gYQPYEDKIZ5HBx2zNFHX3XgwH2POurGW2558X//782jY1ssw3Foz55Nv6pHdvsFEAV1A0iNwAGUpNU4mg3K8/Kf+InvechDvnHw4IWve93Bv/3b5tFR7Dgt6M1vbjZIghVGoaZuAAkSOIDCbJylHTLsLNKTv+d7/t2/+lfVxv/127/96VtvPeboo9u/jtrb/FhcPLLXaT1QIHUDSJMDFlCkjf/Svufii+sNCvHrz3zms574xOaLDn7wFa/43f/1v5ovdrV5BseRW6gs3mZWfonfYgbH6GtwGCXmKr9XVt0AkmUGB1CkjTM28zgYzbZ4sViGw1UqQDLUDSBlDltAwczjKM+F//yfn3nqqc0X23z/ox71XSefXG1c8Z73fOPgwWrj9e9+959+/vOH/3A3O83O2DqJwwyO+NUzOELcQsVYMVc5vbLqBpA4Ry6gbBoHLVdecslP/LN/Vm088Gd+5it33lk/2NWugUPdiF+461Mqhou5yuaVVTeA9LlEBeBbXKvCIEvixZGrVABipm4AWRA4gLK1TuM0DgLy7gKipW4AuRA4gOJpHAAUS90AMiJwAGgcDGNxjcyEWIAD4qRuAHlxIAPY0BqmWnOUHnYLHM1So9bjiFzQFUYrRo9ZSvplVTeA7JjBAbDBPA6CWtxRBWB26gaQI4EDoEXjoC/XpwDJUTeATAkcAJtpHIzNzWKBiKgbQL4EDoBtNA466jt9w1Uq8bPCKHlTN4CsCRwAO2k3jnPPbbaAXC1WGIWMqRtA7gQOgCUWJ3/792scAKRN3QAKIHAALKdxsEKf61MswwHMSd0AyiBwAKykcTAuy3AAE1M3gGIIHAC70TigEFYYJT+LulH9LFM3gNwJHAAdtBpHs0Hh+t4/pXoTuUoFmFi7bgAUQOAA6Gbj7NCNYxnKVSqxcQsVsqRuAOUROAA60zgASIK6ARRJ4ADoQ+Og0v/6FIDpqBtAqQQOgJ40DtZlGY6oWWGUDFx1lboBlEzgAOhP42Agy3AAo1ukjYq6ARRJ4ABYi8ZRLNenZMYKo+RB3QAQOACG0zjozlUqwPjUDYDDBA6AdbVOIjUOenOVCjAKdQNgg8ABMIDGURrXpwBRUTcAWgQOgGE0DsiAW6iQInUDYDOBA2AwjYM+LMMRESuMki51A2AbgQNgDBpHCUa/PsUyHMB61A2AnQgcACPROACYgLoBsITAATAejQOAoNQNgOUEDoBRaRy5GvX6lCPLcLhKJQZWGCUV6gbASgIHwNjajePcc5stIDZWGCUt6gbAbgQOgAAWp57792scORh9eVGAXtQNgA4EDoAwNA5WcrPYshiRMoS6AdCNwAEQjMZBF5bhAFZQNwA6EzgAQtI4MuD6lLxZYZSYqRsAfQgcAIG1GkezAczOCqPET90A6EngAAhv48TUjWNpc7NYYCl1A6A/gQNgEhpHolyfAkxP3QBYi8ABMBWNA4BdqRsA6xI4ACakcbCZm8XOzAqjxEbdABhA4ACYlsaRkCmvT7EMB7CoG9VPCnUDoD+BA2A2GgfMwy1UiFC7bgCwFoEDYHKtk1eNAwB1A2AUAgfAHDSO+E11fYplOKB06gbASAQOgJloHGxhGY6JWWGUGKgbAOMROADmo3EAFOuqq9QNgHEJHACz0jjiNOX9U6p3gatUpmSFUWKwSBsVdQNgJAIHwNw0DhZcpQIlUDcAwhA4ACKgcQAUQt0ACEbgAIiDxhGPaa9PYR5WGGUW6gZASAIHQDTajePcc5stymAZDsifugEQmMABEJPFKe/+/RpHoSzDEZQVRpmLugEQnsABEBmNY16uTwFGp24ATELgAIiPxlEkV6lAYjqmCnUDYCoCB0CUNI5ZRDJ9w1UqkA11A2BCAgdArFqNo9kARuEWKkxD3QCYlsABELGNE2I3joURWGGUKakbAJMTOADipnFMJoLrUyzDka3q3bXlF3lTNwDmIHAARE/jKJBlOCBd6gbATAQOgBRoHABJUDcA5iNwACRC4wjKJQPlsMIo4agbALMSOADSoXEU4MgyHK5SGZcVRglN3QCYm8ABkCSNAyAi6gZABAQOgKS0zps1jtG4PgUYQt0AiIPAAZAajSN3bhYLKVE3AKIhcAAkSOMohGU4RmeFUcalbgDEROAASJPGMRbXpwDrUTcAIiNwACRL44CO3EKF0V19dbNRUTcA4iBwAKRM48iUm8VC1BZ1ozoIqxsA0RA4ABKncQzh+hSgr3bdACAmAgdA+jQO6MIKowynbgBETOAAyEK7cZx7brNFytwsFqKjbgDETeAAyMXihHv/fo2jk1SuT7EMx0BWGGW4q69WNwDiJ3AAZETjABjdIm1U1A2AiAkcAHnROABGpG4ApEPgAMiOxtFFCtenWIZjTFYYZQ3qBkBSBA6AHLUaR7NB0izDAdNTNwBSI3AAZGrjdNyNY3eQyvKiDGeFUdajbgAkSOAAyJfGkT5XqcAM1A2ANAkcAFnTOLLhKhWYhroBkCyBAyB3GscWrk8BllE3AFImcAAUQOOgcG6hQhfqBkDiBA6AsmgcybEMx/qsMEp36gZA+gQOgDK0zteLbhxJX59iGQ4IRN0AyILAAVAMjQNgO3UDIBcCB0BJNI40uUoFQlE3ADIicAAUpuTGkcH9U1ylsgYrjLKMugGQF4EDoDzmcVACK4yymroBkB2BA6BIGgdQMnUDIEcCB0CpSmsciV+fYhkOGI26AZApgQOgYOZxpMgyHBkwqJ6RugGQL4EDoGztxnHuuc0WZMMKo7SpGwBZEzgAirc4y9+/P9vGkcH9U6oXylUq3VlhlO3UDYDcCRwAlNE4cuIqFehL3QAogMABwGEaB5ArdQOgDAIHABtybRxZXJ8CrGlRN6pDnLoBkDWBA4CWVuNoNoiJZTj6scIo7boBQO4EDgA22xgGuHFs1CzDAbtSNwAKI3AAsE1OjcP1KQVyCxUq6gZAeQQOAHZiHgeQqKuvVjcAyiRwALBEBo0jx+kbR5bhcJUKbLdIGxV1A6AwAgcAy5nHQbqsMFogdQOgbAIHACtpHEAS1A2A4gkcAHSVWOPId3lRN4tdxQqjZVI3ABA4ANhda7RgHkdcLMMBFXUDgMMEDgA60DiAOKkbAGwQOADoJq3Gke/1KcAR6gYALQIHAJ2ZxxENN4vdhVuolEDdAGAzgQOAPjQOYmaF0XKoGwBsI3AA0FP8jcP1KZA3dQOAnQgcAPRnHkcE3CyWQqkbACwhcACwFo0jHpbhoBzqBgDLCRwArKvdOM49t9manetTsMJortQNAFYSOAAYYDHG2L8/osZBmawwmjd1A4DdCBwADKNxzMcyHJRC3QCgA4EDgMHiaRzFXp9iGQ4ypm4A0I3AAcAYzOMAQlA3AOhM4ABgJK3G0WwQnqtUtrLCaE7UDQD6EDgAGM/GCGSeG8cWfv+Uwq9SscJoftQNAHoSOAAY1byNA8iDugFAfwIHAGPTOIAh1A0A1iJwABDA9I2j4OtTLMNBVtQNANYlcAAQhnkc03OzWCuMpm5RN6oDiLoBQE8CBwDBaRzA7tp1AwD6EzgACKY1SgnbOAq/f0q1pwu/SsUtVDKgbgAwmMABQEiTNQ5qrlIhReoGAGMQOAAILHTjKH76BiTs6qvVDQDGInAAEJ55HEzACqPJWaSNiroBwGACBwCT0DgCc7NYEqNuADA2gQOAqYRoHK5P2a60ZTisMJoidQOAAAQOACZkHgegbgAQhsABwLQ0DiiZugFAMAIHAJNrN45zz2221uD6lM2OLMNR4M1irTCaBHUDgJAEDgDmsBjb7N8/qHEAqVA3AAhM4ABgJhoHw1lhNBXqBgDhCRwAzGdI43B9yk7cLJYYqRsATELgAGBW5nEEUuAyHMRJ3QBgKgIHAHNrNY5mA8iDugHAhAQOACKwMfLpeuNY16fQltYtVMoZ56sbAExL4AAgDn0bB0sUdLNYK4zGTN0AYHICBwDR0DggD+oGAHMQOACISZfG4foUiJm6AcBMBA4AImMex2BuFsts1A0A5iNwABAfjWMsJdwsNq0VRvOmbgAwK4EDgKhtbRyuT6FmhdHYqBsAzE3gACBKrQGSeRwQO3UDgAgIHADESuMYwDIcTEfdACAOAgcAEdvSOFyfsoYSluFgRuoGANEQOACIW7txGKuzhRVG56VuABATgQOA6Gkca8n5KhUrjMZgUTeqT6i6AUAEBA4AUqBxDGGPMbp23QCAOAgcACRC44BIqBsAREngACAdGgfMTt0AIFYCBwBJaTcOCzHsJvObxVphdGJXX61uABAzgQOA1CxGVvv3axxdmfDCQIu0UVE3AIiSwAFAgjSOknnFp6duAJACgQOANGkc3WR+lQoTUDcASITAAUCyNI5eXKXCGtQNANIhcACQslbjaDYohBVGJ6BuAJAUgQOAxG2Mu9w4FsakbgCQGoEDgPRpHCtltQyHa5GmoW4AkCCBA4AsaBxd2Dl0oW4AkCaBA4BcaBwwnLoBQLIEDgAyonEs4WaxdKJuAJAygQOAPGkcO8tjt7iFSgjqBgCJEzgAyEtrYKZx5MYKo+GoGwCkT+AAIDsaB/SibgCQBYEDgBxpHNtYhoOdqRsA5ELgACBTGscy9gYL6gYAGRE4AMiXxpElK4yORd0AIC8CBwBZ0ziyYYXRcakbAGRH4AAgdxrHhiPLcGg9hVM3AMiRwAFAATQOWFA3AMiUwAFAGdqNw8UOFEvdACBfAgcAxVgM5/bvL7ZxJH+zWCuMDqFuAJA1gQOAkmgcC2ldqmPSzXDqBgC5EzgAKIzGQYEWdaN6/6sbAGRK4ACgPBoHRWnXDQDIl8ABQJFajaPZKEbyy3DQi7oBQDEEDgBKtTHeK/fGsck9cSuM9qVuAFASgQOAgmkc5Orqq9UNAEojcABQtiIbR2JXqVgnpa9F2qioGwAUQ+AAoHglz+MwdSU/6gYApRI4AKDsxkFO1A0ACiZwAMBhGkfkrDC6K3UDgLIJHACwVQmNY7EMRzUOHv6L+akbABRP4ACADa1hYTnzOGJ/plYY7ULdAACBAwA2KbJxMJ0Q9UHdAIDDBA4A2KyYxpHYzWLZkboBABsEDgDYprB5HAk8RyuM7kjdAIAWgQMAdlJY4yA96gYAbCZwAMASGsfsrDC6jLoBANsIHACwXO6NwzIcSVI3AGAnAgcArFTGPI6BT80gezrqBgAsIXAAwG7ajcNFE8xI3QCA5QQOAOhgMZjcvz+zxpHAVSpuoVJTNwBgJYEDALrJt3HUorsAx2SZNnUDAHYjcABAZ7k3DiKlbgBABwIHAPShcTAxdQMAuhE4AKCnVuNoNhLnZrHxUjcAoDOBAwD62xhqZnbj2BifTskrjKobANCHwAEAa8m0ccTC5T/qBgD0JHAAwLo0DgJRNwCgP4EDAAbIpXEsluFY+4kYhY9mUTeqd5e6AQCdCRwAMIx5HIyoXTcAgD4EDgAYjcYxstJWGFU3AGAAgQMABmsNR9NtHG4WOzN1AwCGETgAYAxZNI7a/N9/abdQufpqdQMAhhM4AGAkGTUOprNIGxV1AwAGEDgAYDwaB72oGwAwHoEDAEaVcuMYfrPYMWW/wqi6AQCjEjgAYGzmcbArdQMAxiZwAEAAGsfaSlhhVN0AgAAEDgAII83G4WaxwakbABCGwAEAwbQbR2oTE9aIMgbru1M3ACAYgQMAQloMYvfvT65xzCnLFUbf+tZmo6JuAMDYBA4ACEzjoKJuAEBgAgcAhJdU45hzGY5cA5C6AQDhCRwAMIkE53G4/8s41A0AmITAAQBTaTWOZoPsqRsAMBWBAwAmtDHEjXxyhJvFjkPdAIAJCRwAMK1EGkdtnm8yj1uoqBsAMC2BAwAml1TjmE5OK4yqGwAwOYEDAOagcWRM3QCAOQgcADCTuBvHestwGM2rGwAwF4EDAOaTwjwOc0x6UDcAYD4CBwBEQUdopLvCqLoBALMSOABgVq2RcGyNY9Kbxaa+wqi6AQBzEzgAYG4RN46a2SW7UDcAIAICBwBEIPrGwVLqBgDEQeAAgDhoHCla1I3q5VM3AGBWAgcARCO+xjHpMhyVtFYYbdcNAGBuAgcAxCTWeRxhv5kUVxhVNwAgMgIHAEQm1sbBEeoGAMRH4ACA+Ggc0XrrW9UNAIiTwAEAUWo3jlmv4Fgsw9ExteQ86F+kjYq6AQCRETgAIFaLIfT+/fM2jolEvsKougEAcRM4ACBipTWOaKkbABA9gQMA4hZB4wh7s9j4w426AQApEDgAIHqtxtFszKTEFU/VDQBIhMABACnYGFq7qcqk1A0ASIfAAQCJyLtxRLjCqLoBAEkROAAgHfM1jr43i02eugEAqRE4ACApmc3jiHOFUXUDABIkcABAajJrHLFRNwAgTQIHACRojsbR/WaxCVcBdQMAkiVwAEDapp/Hke3MEXUDAFImcABAmloj8OSLQwy3UFE3ACBxAgcAJCv1xhHPCqPqBgCkT+AAgJRN2zi6L8OREnUDALIgcABA4uaYx5HPMhzqBgDkQuAAgPTN0ThyoG4AQEYEDgDIwlSNY/yrVOZaYVTdAIC8CBwAkItp53EM/b+Yd4VRdQMAsiNwAEBGpm0cqVI3ACBHAgcA5KXdOOK5D2s81A0AyJTAAQDZWYzb9+8P0Ti6LMMRaTlQNwAgXwIHAOQocOOojXAVzJQrjC7qRrVz1A0AyI7AAQCZmqRxrGn676ddNwCAHAkcAJCvYI1j/JvFBqVuAEABBA4AyFqrcTQbo0rgXi3qBgCUQeAAgNxtDOxLvHGsugEAxRA4AKAAcTaOoCuMvvWt6gYAFEXgAIAyjN04ol6GY5E2KuoGAJRB4ACAYoSZx9H73xb6FirqBgAUSeAAgJKEaRwRUTcAoFQCBwAUanjjiO4qFXUDAAomcABAYVoj/7Hmcez479klMIy+wqi6AQBlEzgAoDwBGsfM1A0AKJ7AAQBFmqtxhFhhVN0AAAQOACjXGI1j/mU41A0A4DCBAwAKNt48jnkudVE3AIANAgcAlG28xtHDKCuMqhsAQIvAAQDFm6VxDKRuAACbCRwAwKDGsViGY/f/4VgrjKobAMA2AgcAcFi7cYS418lY1A0AYCcCBwCwYdEL9u+PtHGoGwDAEgIHANCyVuNYdrPYkQuEugEALCdwAACbDZjH0Wn9jvVuoaJuAAArCRwAwDYDGsdSQ/496gYAsBuBAwDYSatxNBtzUTcAgA4EDgBgiY2a0OXCk2XLcAylbgAA3QgcAMByfRpHrfvf3J26AQB0JnAAACv1bxyrdF9hVN0AAPoQOACA3XRrHKuuUum7wuiiblT/1+oGANCBwAEAdNBnHsfQuR7tugEA0I3AAQB006dxrE/dAADWInAAAL2FahzqBgCwLoEDAOis1R12bBzbl+HYFCpWrzCqbgAAAwgcAEAfuzWO2qY/2nWF0be+Vd0AAAYSOACAnro1jq4WaaOibgAA6xI4AID+ljeOVTeL3U7dAABGInAAAGvZbR7H7pM71A0AYDwCBwCwrt0axyZbVhhVNwCAUQkcAMAAvRrHgroBAIxN4AAAhtnWONrLcBzafgsVdQMACEDgAAAGazeOVtHYYU6HugEAhCFwAABjWNSK/ft3mLVRUzcAgGAEDgBgJK3GcZ8rr2y2a+94h7oBAAAApOPQoa2/3vKWTV8CAATgv58AAGNbUTHM3QAAwnCSAQAEsGPjUDcAgGCcZwAAYWxpHOoGABCSUw0AIJhF41A3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoBz79u17/vOff/31199111333HPPHXfc8du//dvnn39+88cAAAAAkXvCE57w+c9//tBOfv/3f3/fvn3N3wMAAACI0+Mf//i77rqrzhnXXnvthRdeeN555/3SL/3Srbfeuniw+asAAAAAETr++OM/97nP1SHjaU97WvPoYQ960IM+85nP1H/0/d///c2jAAAAALF54QtfWCeMyy67rHmo5Yd/+IfrP73qqquahwAAAABic/PNNx86dOjLX/7ycccd1zzUsnfv3ltvvfV973vfb/zGbzQPAQAAAETlEY94RD1B49WvfnXzEADAVPY2vwMADHP66afXG+95z3vqDQCAyQgcAMA4Hve4x9Ubn/zkJ6t/fsd3fMdLXvKSa6+99vOf//x111336le/+hGPeET9FwAAAAAiddVVV9WXqBx99NGXXnrpPffcU3/Z9iu/8ivN3wYAAACI0Dvf+c66YizupXLzzTdfdVi9+Gjt8ssvb/4HAAAAALG59tpr64Rx8ODBu+666+KLL27+4LDqy8Wcjh/8wR9sHgUAAACIyiJwVM4///zm0Zaf/dmfrf/0gx/8YPMQAAAAQFQWgWNFv7jlllvqv3O/+92veQgAYAzuogIAjOPuu++uN9773vfWG9u9//3vrzfOPPPMegMAYBQCBwAwjttvv73e+NSnPlVvbHfnnXfWG8cdd1y9AQAwCoEDABjHBz7wgXrjYQ97WL2x3d69zbnHYroHAMAoBA4AYBwf/ehH640zzjij3tjulFNOqTcWfxkAAAAgLp/5zGcOHb5N7MMf/vDmoZZTTjml+qPqL3z84x9vHgIAAACIzaWXXnr4HimHrr/++u2rbLzzne+s//TAgQPNQwAAAAARet/73ldXjI985CNPeMIT6gcf+chHXnfddfXjf/zHf7xYiQMAAAAgRieeeOL//J//s24ZlbvvvvvOO+9svjh06DOf+cxiGQ4AAACAeO3du/dFL3rRl7/85aZqHHb33Xe/8pWvPPHEE5u/BAAwqj3N7wAAY3vc4x73kIc85Kijjvra17727ne/++DBg80fAAAAAAAAAAAAAAAAAAAA973vfZstAAAAgBQ98IEPbLYAAAAAUvTgBz+42QIAAABIkbkbAAAAQNqOPfbYZgsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKMp97vP/AxhAizH6NsoQAAAAAElFTkSuQmCC\" data-image-state=\"image-loaded\"\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 114.308px 8px; transform-origin: 114.308px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eForbidden functions / expressions\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cul style=\"block-size: 81.7333px; counter-reset: list-item 0; font-family: Helvetica, Arial, sans-serif; list-style-type: square; margin-block-end: 20px; margin-block-start: 10px; margin-bottom: 20px; margin-top: 10px; perspective-origin: 392px 40.8667px; transform-origin: 392px 40.8667px; margin-top: 10px; margin-bottom: 20px; \"\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 364px 10.2167px; text-align: left; transform-origin: 364px 10.2167px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 21.4px 8px; transform-origin: 21.4px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003eregexp\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 364px 10.2167px; text-align: left; transform-origin: 364px 10.2167px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 25.6833px 8px; transform-origin: 25.6833px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003eassignin\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 364px 10.2167px; text-align: left; transform-origin: 364px 10.2167px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 25.2833px 8px; transform-origin: 25.2833px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003estr2num\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 364px 10.2167px; text-align: left; transform-origin: 364px 10.2167px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 15.175px 8px; transform-origin: 15.175px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003eecho\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003c/ul\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 28.3917px 8px; transform-origin: 28.3917px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eSee also\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003ca target='_blank' href = \"https://fr.mathworks.com/matlabcentral/cody/groups/57483\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eMesh processing\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003ca target='_blank' href = \"https://fr.mathworks.com/matlabcentral/fileexchange/85173-mesh-generation-toolbox?s_tid=prof_contriblnk\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eMesh generation toolbox\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function T = mesh_the_octahedron()\r\n  T = 1;\r\nend","test_suite":"%%\r\nT_correct = [1 2 5;\r\n             2 3 5;\r\n             3 4 5;\r\n             4 1 5;\r\n             2 1 6;\r\n             3 2 6;\r\n             4 3 6;\r\n             1 4 6];\r\n\r\n% Check every possible solutions\r\nassert(isequal(sortrows(sort(mesh_the_octahedron(),2)),sortrows(sort(T_correct,2))))\r\n\r\n%% Forbidden functions\r\nfiletext = fileread('mesh_the_octahedron.m');\r\nillegal = contains(filetext, 'regexp') || contains(filetext, 'str2num') || contains(filetext, 'assignin') || contains(filetext, 'echo')\r\nassert(~illegal);","published":true,"deleted":false,"likes_count":1,"comments_count":1,"created_by":149128,"edited_by":149128,"edited_at":"2025-07-26T07:44:22.000Z","deleted_by":null,"deleted_at":null,"solvers_count":50,"test_suite_updated_at":"2025-07-23T16:11:50.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2025-07-23T08:24:47.000Z","updated_at":"2026-03-31T18:40:36.000Z","published_at":"2025-07-23T09:23:40.000Z","restored_at":null,"restored_by":null,"spam":null,"simulink":false,"admin_reviewed":false,"description_opc":"{\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eProblem statement\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\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\u003eAn octahedron is a regular polyhedron with 6 vertices and 8 triangular faces. It is also one of the five well known platonic solids.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eA triangulated mesh -or a triangulation- is simply a \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eN\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e x 3 matrix of positive integers where each row contains the vertex indices of a triangle, and where \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eN\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e is the number of triangles. \u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eYour task here is to mesh this octahedron. To do so, you will list the triangles/rows in a matrix of triangles, \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eT. \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003eYou will also be careful to always keep the triangles / faces coherently / consistently oriented (all clockwise or all counterclockwise : triangles \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e[1, 2, 3]\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e and \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e[3, 2, 1]\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e are distinct).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eOn the other hand \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e[1, 2, 3]\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\u003e[2, 3, 1]\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e and \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e[3, 1, 2]\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e are one same unique triangle.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\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 row order of the triangles in the list doesn't matter.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eEdit / update\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eTriangles orientation not taken into account anymore, because of too many possible cases to check in the tests (!)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eExample\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe first triangle \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e(X \u0026gt; 0, Y \u0026gt; 0, and Z \u0026gt; 0)\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e here can be [\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e1, 2, 5]\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e if counterclockwise oriented (normals are outward oriented).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"378\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"504\\\"/\u003e\u003cw:attr w:name=\\\"verticalAlign\\\" w:val=\\\"baseline\\\"/\u003e\u003cw:attr w:name=\\\"altText\\\" w:val=\\\"\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId1\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eForbidden functions / expressions\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:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eregexp\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:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eassignin\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:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003estr2num\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:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eecho\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eSee also\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:hyperlink w:docLocation=\\\"https://fr.mathworks.com/matlabcentral/cody/groups/57483\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eMesh processing\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:hyperlink w:docLocation=\\\"https://fr.mathworks.com/matlabcentral/fileexchange/85173-mesh-generation-toolbox?s_tid=prof_contriblnk\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eMesh generation toolbox\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\",\"relationship\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"target\":\"/media/image1.png\",\"relationshipId\":\"rId1\"}]},{\"partUri\":\"/media/image1.png\",\"contentType\":\"image/png\",\"content\":\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABaAAAAQ4CAIAAABwgOwFAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAGNSSURBVHhe7d0N1C1lYdh7zwGBwomVihW0McY21BiJoVRtES9ea1NI8yWGEA4hWj9WmnCkfq2VlRib2Fwt3mXVKi6TSGKvVsDaYFSS0LtMULR6TeJHJQYluqIhfoA1GCSIeMK545l595n3Y+93Zs88M8/H77fO4sy7zxHfPXvveef588wz9wEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAmOxpfgcAGM+v/dqv7d27t/liJ7/5m7/5wQ9+sPkCAAAAIDannnrqod1cfPHFzd8GABjDqv+0AgCwhkc/+tHNFgAAAECiLrvssnqaxuMf//hjllh9AQsAAADAzK655ppDhw7dc889KgYAAACQqr/6q786dOjQhz70oeZrAIDw/HcVAGBMJx5Wbfzpn/5p/QgAwAQEDgBgTI9//OPrjT/4gz+oNx74wAc+4QlPOOaYY+ovAQBCEDgAgDGdeuqp9cZXvvKVyy677NZbb73ttttuuOGGb3zjG3/+53/+4he/+Ljjjqv/AgAAAECkrrrqqsN3UDn01a9+td7Y4uabb/72b//25m8DAIxkT/M7AMAYPvnJT/7jf/yP6+0bbrjhLW95y2233XbssceeffbZz3jGM6qN6vG/+Iu/+Cf/5J985Stfqf8aAAAAQESOPvrogwcP1jM1LrrooubRDf/oH/2jz33uc/Wf/sZv/EbzKAAAAEBUjjnmmB/4gR+48MILzznnnOahzb7v+76vDhwHDx58wAMe0DwKAAAAkJbrr7++bhznnXde8xAAwGDuogIATOrDH/5wvXHyySfXGwAAwwkcAMCkbrrppnrjYQ97WL0BADCcwAEAjOm44457zGMes2J9je/+7u+uN2688cZ6AwBgOIEDABjNG9/4xq9//et/+Id/eMEFFzQPbfPoRz+63vj0pz9dbwAAAABE5IILLqgXEH3f+97XPLTZqaeeWt9H9pZbbmkeAgAAAIjK8ccf/1d/9Vd147jooouaRzfs27fvgx/8YP2nBw4caB4FAAAAiM0zn/nMOmEcPHjwl37pl0488cTqwb179z75yU/+kz/5k/qPrr/++vovAwAAAETqpS99aR0yanfeeefdd9/dfHH46pW6egAAAABE7ZxzzvnIRz7SJI0NX/ziF3/+539+715rnAMA49vT/A4AMLaHPOQhp59++gknnPDNb37zc5/73Ic//OHmDwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6OHSo2QAACGxP8zsAwLjadWOPUw4AICxnGwBAANvnbmgcAEBITjUAgLEtuzJF4wAAgnGeAQCMavW6GxoHABDG3uZ3AIDhdqobe267rdmqrM4fAADrEjgAgJG048ULX9hsHKZxAAChCRwAwBiW1I09//7fb9n4Fo0DABibwAEADLa9brziFYe/aDlwQOMAAMIROACAYZbM3diRxgEABCJwAAAD9KkbNY0DAAhB4AAA1tWxblx+ebOxQeMAAEYncAAAa+lQNzaFjMqBA82GxgEAjE3gAAD66zh3YyWNAwAYkcABAPS0a93YfguVbVep1DQOAGAsAgcA0MciQ7zwhevM3WhdpVLTOACAUQgcAEBn7boxnq1LdQAA9CdwAADd9KwbvbLFkb9sEgcAsBaBAwDoYPjcjSXLcCxoHADAEAIHALDSoUP96sb2FUa32LYMx4LGAQCsTeAAAJZrh4ZR191Y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\",\"relationship\":null}],\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"target\":\"/matlab/document.xml\",\"relationshipId\":\"rId1\"}]}"},{"id":2375,"title":"Obscured by Earth","description":"Given two points in \u003chttp://en.wikipedia.org/wiki/Earth-centered_inertial ECI\u003e reference frame, check wheather they are in line-of-sight, i.e, they are not obscured by Earth.\r\nNote that the Earth is assumed as a sphere with  6,378,137.0 m radius (equatorial radius according to \u003chttp://en.wikipedia.org/wiki/WGS84 WGS-84\u003e).\r\n\r\nInputs:\r\n\r\n* x1: [x y z]    ECI coordinates of the first reference point\r\n* x2: [x y z]    ECI coordinates of the second reference point\r\n\r\nOutputs:\r\n\r\n* inLOS:    true if the line-of-sight is not obscured by Earth","description_html":"\u003cp\u003eGiven two points in \u003ca href = \"http://en.wikipedia.org/wiki/Earth-centered_inertial\"\u003eECI\u003c/a\u003e reference frame, check wheather they are in line-of-sight, i.e, they are not obscured by Earth.\r\nNote that the Earth is assumed as a sphere with  6,378,137.0 m radius (equatorial radius according to \u003ca href = \"http://en.wikipedia.org/wiki/WGS84\"\u003eWGS-84\u003c/a\u003e).\u003c/p\u003e\u003cp\u003eInputs:\u003c/p\u003e\u003cul\u003e\u003cli\u003ex1: [x y z]    ECI coordinates of the first reference point\u003c/li\u003e\u003cli\u003ex2: [x y z]    ECI coordinates of the second reference point\u003c/li\u003e\u003c/ul\u003e\u003cp\u003eOutputs:\u003c/p\u003e\u003cul\u003e\u003cli\u003einLOS:    true if the line-of-sight is not obscured by Earth\u003c/li\u003e\u003c/ul\u003e","function_template":"function inLOS = in_los(x1, x2)\r\n  inLOS = false;\r\nend","test_suite":"\r\n%%\r\nx1 = [10e6 10e6 10e6];\r\nx2 = x1.*[-1 -1 1];\r\nassert(isequal(in_los(x1, x2), true))\r\n%%\r\nx1 = [10e6 10e6 10e6];\r\nx2 = 2*x1;\r\nassert(isequal(in_los(x1, x2), true))\r\n%%\r\nx1 = [10e6 10e6 10e6];\r\nx2 = -x1;\r\nassert(isequal(in_los(x1, x2), false))\r\n%%\r\nx1 = 2*(6378137+1e-3)/sqrt(3)*[1 1 0]/sqrt(2);\r\nx2 = 2*(6378137+1e-3)/sqrt(3)*[1 0 1]/sqrt(2);\r\nassert(isequal(in_los(x1, x2), true))\r\n%%\r\nx1 = 2*(6378137-1e-3)/sqrt(3)*[1 1 0]/sqrt(2);\r\nx2 = 2*(6378137-1e-3)/sqrt(3)*[1 0 1]/sqrt(2);\r\nassert(isequal(in_los(x1, x2), false))","published":true,"deleted":false,"likes_count":3,"comments_count":1,"created_by":20319,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":19,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2014-06-18T14:29:37.000Z","updated_at":"2025-06-26T20:01:11.000Z","published_at":"2014-06-18T14:30:50.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eGiven two points in\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://en.wikipedia.org/wiki/Earth-centered_inertial\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eECI\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e reference frame, check wheather they are in line-of-sight, i.e, they are not obscured by Earth. Note that the Earth is assumed as a sphere with 6,378,137.0 m radius (equatorial radius according to\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://en.wikipedia.org/wiki/WGS84\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eWGS-84\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\u003eInputs:\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\u003ex1: [x y z] ECI coordinates of the first reference point\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\u003ex2: [x y z] ECI coordinates of the second reference point\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eOutputs:\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\u003einLOS: true if the line-of-sight is not obscured by Earth\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":60987,"title":"Build triangulation from -sorted- edge list","description":"Problem statement\r\nAn edge list is simply a N x 2 matrix of positive integers, in which N is the number of edges and each integer is a vertex index. Like this, an edge is defined by the indices of its two vertices.\r\nA triangulation is simply a M x 3 matrix of positive integers, in which M is the number of triangles and each integer is a vertex index. Like this, a triangle is defined by the indices of its three vertices.\r\nIn this problem the gaol is to rebuild the triangulation from the ordered edge list. \r\n\r\nExample (check the test suite here below for more)\r\nE = [1 2;\r\n     1 3;\r\n     2 3];\r\n=\u003e\r\nT = [1 2 3];\r\n\r\nTips \u0026 clues\r\nSince a triangle always has 3 edges, you could process the edge list by blocks of 3 rows;\r\nTriangles orientation (vertices order in the list) doesn't matter here : [1 2 3] and [1 3 2] are a same unique triangle;\r\nOn the other hand, the order of the triangles in the list should be preserved;\r\nYou could see this as the reciprocal operation to the one of building the edge list (E = nchoosek(T,2) )\r\n\r\nForbidden functions / expressions\r\nregexp\r\nassignin\r\nstr2num\r\necho\r\n\r\nSee also\r\nMesh processing\r\nMesh generation toolbox","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.4333px; min-height: 0px; white-space: normal; color: rgb(0, 0, 0); font-family: Menlo, Monaco, Consolas, monospace; font-style: normal; font-size: 14px; font-weight: 400; text-decoration: rgb(0, 0, 0); white-space: normal; \"\u003e\u003cdiv style=\"block-size: 792.2px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 408px 396.1px; transform-origin: 408px 396.1px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 63.0083px 8px; transform-origin: 63.0083px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eProblem statement\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 21px; text-align: left; transform-origin: 385px 21px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 369.9px 8px; transform-origin: 369.9px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eAn edge list is simply a N x 2 matrix of positive integers, in which N is the number of edges and each integer is a vertex index. Like this, an edge is defined by the indices of its two vertices.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 21px; text-align: left; transform-origin: 385px 21px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 366.017px 8px; transform-origin: 366.017px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eA triangulation is simply a M x 3 matrix of positive integers, in which M is the number of triangles and each integer is a vertex index. Like this, a triangle is defined by the indices of its three vertices.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 269.417px 8px; transform-origin: 269.417px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eIn this problem the gaol is to rebuild the triangulation from the ordered edge list. \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 28.7833px 8px; transform-origin: 28.7833px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eExample\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 130.683px 8px; transform-origin: 130.683px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e (check the test suite here below for more)\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgb(247, 247, 247); block-size: 61.3px; border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; border-end-end-radius: 4px; border-end-start-radius: 4px; border-start-end-radius: 4px; border-start-start-radius: 4px; border-top-left-radius: 4px; border-top-right-radius: 4px; margin-block-end: 10px; margin-block-start: 10px; margin-bottom: 10px; margin-inline-end: 3px; margin-inline-start: 3px; margin-left: 3px; margin-right: 3px; margin-top: 10px; perspective-origin: 405px 30.65px; transform-origin: 405px 30.65px; margin-left: 3px; margin-top: 10px; margin-bottom: 10px; margin-right: 3px; \"\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 405px 10.2167px; text-wrap-mode: nowrap; transform-origin: 405px 10.2167px; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 34.65px 8.5px; tab-size: 4; transform-origin: 34.65px 8.5px; unicode-bidi: normal; white-space-collapse: preserve; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003eE = [1 2;\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 405px 10.2167px; text-wrap-mode: nowrap; transform-origin: 405px 10.2167px; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 34.65px 8.5px; tab-size: 4; transform-origin: 34.65px 8.5px; unicode-bidi: normal; white-space-collapse: preserve; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e     1 3;\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 405px 10.2167px; text-wrap-mode: nowrap; transform-origin: 405px 10.2167px; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 38.5px 8.5px; tab-size: 4; transform-origin: 38.5px 8.5px; unicode-bidi: normal; white-space-collapse: preserve; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e     2 3];\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 10px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 10px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 10px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 8.18333px 8px; transform-origin: 8.18333px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e=\u0026gt;\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgb(247, 247, 247); block-size: 20.4333px; border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; border-end-end-radius: 4px; border-end-start-radius: 4px; border-start-end-radius: 4px; border-start-start-radius: 4px; border-top-left-radius: 4px; border-top-right-radius: 4px; margin-block-end: 10px; margin-block-start: 10px; margin-bottom: 10px; margin-inline-end: 3px; margin-inline-start: 3px; margin-left: 3px; margin-right: 3px; margin-top: 10px; perspective-origin: 405px 10.2167px; transform-origin: 405px 10.2167px; margin-left: 3px; margin-top: 10px; margin-bottom: 10px; margin-right: 3px; \"\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 1px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 1px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 1px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; text-wrap-mode: 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: 46.2px 8.5px; tab-size: 4; transform-origin: 46.2px 8.5px; unicode-bidi: normal; white-space-collapse: preserve; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003eT = [1 2 3];\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 10px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 10px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 10px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 41.0917px 8px; transform-origin: 41.0917px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eTips \u0026amp; clues\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cul style=\"block-size: 81.7333px; counter-reset: list-item 0; font-family: Helvetica, Arial, sans-serif; list-style-type: square; margin-block-end: 20px; margin-block-start: 10px; margin-bottom: 20px; margin-top: 10px; perspective-origin: 392px 40.8667px; transform-origin: 392px 40.8667px; margin-top: 10px; margin-bottom: 20px; \"\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 364px 10.2167px; text-align: left; transform-origin: 364px 10.2167px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 275.008px 8px; transform-origin: 275.008px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eSince a triangle always has 3 edges, you could process the edge list by blocks of 3 rows;\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 364px 10.2167px; text-align: left; transform-origin: 364px 10.2167px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 350.75px 8px; transform-origin: 350.75px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eTriangles orientation (vertices order in the list) doesn't matter here : [1 2 3] and [1 3 2] are a same unique triangle;\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 364px 10.2167px; text-align: left; transform-origin: 364px 10.2167px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 232.992px 8px; transform-origin: 232.992px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eOn the other hand, the order of the triangles in the list should be preserved;\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 364px 10.2167px; text-align: left; transform-origin: 364px 10.2167px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 312.692px 8px; transform-origin: 312.692px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"perspective-origin: 249.483px 8px; transform-origin: 249.483px 8px; \"\u003eYou could see this as the reciprocal operation to the one of building the edge list \u003c/span\u003e\u003cspan style=\"border-block-end-style: solid; border-block-end-width: 1px; border-bottom-style: solid; border-bottom-width: 1px; perspective-origin: 2.33333px 8.5px; transform-origin: 2.33333px 8.5px; \"\u003e(\u003c/span\u003e\u003cspan style=\"perspective-origin: 58.5417px 8px; transform-origin: 58.5417px 8px; \"\u003eE = nchoosek(T,2) \u003c/span\u003e\u003cspan style=\"border-block-end-style: solid; border-block-end-width: 1px; border-bottom-style: solid; border-bottom-width: 1px; perspective-origin: 2.33333px 8.5px; transform-origin: 2.33333px 8.5px; \"\u003e)\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003c/ul\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 114.308px 8px; transform-origin: 114.308px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eForbidden functions / expressions\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cul style=\"block-size: 81.7333px; counter-reset: list-item 0; font-family: Helvetica, Arial, sans-serif; list-style-type: square; margin-block-end: 20px; margin-block-start: 10px; margin-bottom: 20px; margin-top: 10px; perspective-origin: 392px 40.8667px; transform-origin: 392px 40.8667px; margin-top: 10px; margin-bottom: 20px; \"\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 364px 10.2167px; text-align: left; transform-origin: 364px 10.2167px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 21.4px 8px; transform-origin: 21.4px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003eregexp\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 364px 10.2167px; text-align: left; transform-origin: 364px 10.2167px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 25.6833px 8px; transform-origin: 25.6833px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003eassignin\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 364px 10.2167px; text-align: left; transform-origin: 364px 10.2167px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 25.2833px 8px; transform-origin: 25.2833px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003estr2num\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 364px 10.2167px; text-align: left; transform-origin: 364px 10.2167px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 15.175px 8px; transform-origin: 15.175px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003eecho\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003c/ul\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 28.3917px 8px; transform-origin: 28.3917px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eSee also\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003ca target='_blank' href = \"https://fr.mathworks.com/matlabcentral/cody/groups/57483\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eMesh processing\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 10.5px; text-align: left; transform-origin: 385px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003ca target='_blank' href = \"https://fr.mathworks.com/matlabcentral/fileexchange/85173-mesh-generation-toolbox?s_tid=prof_contriblnk\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eMesh generation toolbox\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function T = build_triangulation_from_edge_list(E)\r\n\r\n  T = E;\r\n  \r\nend","test_suite":"%% One triangle\r\nE = [1 2;\r\n     1 3;\r\n     2 3];\r\n\r\nT_correct = [1 2 3];\r\nassert(isequal(sort(build_triangulation_from_edge_list(E),2),sort(T_correct,2)))\r\n\r\n\r\n%% Two independant consecutive triangles\r\nE = [1 2;\r\n     1 3;\r\n     2 3;\r\n     4 5;\r\n     4 6;\r\n     5 6];\r\n\r\nT_correct = [1 2 3;\r\n             4 5 6];\r\n\r\nassert(isequal(sort(build_triangulation_from_edge_list(E),2),sort(T_correct,2)))\r\n\r\n\r\n%% Two consecutive linked triangles\r\nE = [1 2;\r\n     1 3;\r\n     2 3;\r\n     3 2;\r\n     3 4;\r\n     2 4];\r\n\r\nT_correct = [1 2 3;\r\n             3 2 4];\r\n\r\nassert(isequal(sort(build_triangulation_from_edge_list(E),2),sort(T_correct,2)))\r\n\r\n\r\n%% Full example #1 : tetrahedron\r\nE = [1 2;\r\n     2 4;\r\n     1 4;\r\n     2 3;\r\n     3 4;\r\n     2 4;\r\n     3 1;\r\n     1 4;\r\n     3 4;\r\n     1 3;\r\n     1 2;\r\n     3 2];\r\n\r\nT_correct = [1 2 4;\r\n             2 3 4;\r\n             3 1 4;\r\n             1 3 2];\r\n\r\nassert(isequal(sort(build_triangulation_from_edge_list(E),2),sort(T_correct,2)))\r\n\r\n\r\n%% Full example #2 : octahedron\r\nE = [1 2;\r\n     1 5;\r\n     2 5;\r\n     2 3;\r\n     2 5;\r\n     3 5;\r\n     3 4;\r\n     3 5;\r\n     4 5;\r\n     4 1;\r\n     4 5;\r\n     1 5;\r\n     1 6;\r\n     1 2;\r\n     6 2;\r\n     2 6;\r\n     2 3;\r\n     6 3;\r\n     3 6;\r\n     3 4;\r\n     6 4;\r\n     4 6;\r\n     4 1;\r\n     6 1];\r\n\r\nT_correct = [1 2 5;\r\n             2 3 5;\r\n             3 4 5;\r\n             4 1 5;\r\n             1 6 2;\r\n             2 6 3;\r\n             3 6 4;\r\n             4 6 1];\r\n\r\nassert(isequal(sort(build_triangulation_from_edge_list(E),2),sort(T_correct,2)))\r\n\r\n\r\n%% Forbidden functions\r\nfiletext = fileread('build_triangulation_from_edge_list.m');\r\nillegal = contains(filetext, 'regexp') || contains(filetext, 'str2num') || contains(filetext, 'assignin') || contains(filetext, 'echo')\r\nassert(~illegal);","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":149128,"edited_by":149128,"edited_at":"2025-08-27T15:26:58.000Z","deleted_by":null,"deleted_at":null,"solvers_count":19,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2025-07-23T20:11:40.000Z","updated_at":"2026-02-15T07:41:39.000Z","published_at":"2025-07-24T08:24:46.000Z","restored_at":null,"restored_by":null,"spam":null,"simulink":false,"admin_reviewed":false,"description_opc":"{\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eProblem statement\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eAn edge list is simply a N x 2 matrix of positive integers, in which N is the number of edges and each integer is a vertex index. Like this, an edge is defined by the indices of its two vertices.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eA triangulation is simply a M x 3 matrix of positive integers, in which M is the number of triangles and each integer is a vertex index. Like this, a triangle is defined by the indices of its three vertices.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eIn this problem the gaol is to rebuild the triangulation from the ordered edge list. \u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eExample\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e (check the test suite here below for more)\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[E = [1 2;\\n     1 3;\\n     2 3];]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e=\u0026gt;\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[T = [1 2 3];]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\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\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eTips \u0026amp; clues\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\u003eSince a triangle always has 3 edges, you could process the edge list by blocks of 3 rows;\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\u003eTriangles orientation (vertices order in the list) doesn't matter here : [1 2 3] and [1 3 2] are a same unique triangle;\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\u003eOn the other hand, the order of the triangles in the list should be preserved;\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\u003eYou could see this as the reciprocal operation to the one of building the edge list (E = nchoosek(T,2) )\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eForbidden functions / expressions\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:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eregexp\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:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eassignin\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:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003estr2num\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:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eecho\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eSee also\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:hyperlink w:docLocation=\\\"https://fr.mathworks.com/matlabcentral/cody/groups/57483\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eMesh processing\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:hyperlink w:docLocation=\\\"https://fr.mathworks.com/matlabcentral/fileexchange/85173-mesh-generation-toolbox?s_tid=prof_contriblnk\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eMesh generation toolbox\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\",\"relationship\":null}],\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"target\":\"/matlab/document.xml\",\"relationshipId\":\"rId1\"}]}"},{"id":43642,"title":"Euclidean distance from a point to a polynomial","description":"A not uncommon problem in the area of computational geometry is to find the closest point to a straight line from a given point, or the distance from a point to a line. As you might expect, there is a simple formula for those things.\r\n\r\nAs an extension, I decided one day to write a tool that would compute the distance from a point to a general polynomial function in the (x,y) plane. That is your problem here:\r\n\r\nGiven a point (x0,y0), and a polynomial in the form y=P(x) where the function P is defined by the coefficients of a polynomial, you need to compute the minimum \u003chttps://en.wikipedia.org/wiki/Euclidean_distance Euclidean distance\u003e to that polynomial. So you need to find and return the minimum distance in the (x,y) plane between the point (x0,y0), and the function y=P(x).\r\n\r\nThe function P will be passed in as the coefficients of a polynomial in standard MATLAB form, thus with the highest order coefficient first in a vector, like that generated by polyfit, and used by polyval. (P might be as simple as a constant function.) The point in question will be passed in as a vector of length 2, thus [x0,y0].\r\n\r\nAs test case for you to check your code, the distance from the point (-2,-5) to the curve y=x^2/2+3*x-5 should be:\r\n\r\n  x0y0 = [-2 -5];\r\n  P = [0.5 3 -5];\r\n  D = distance2polynomial(P,xy)\r\n  D =\r\n          1.89013819497707\r\n\r\n(Be careful plotting these curves in case you want to plot your solution. The command \"axis equal\" is a good idea.)\r\n\r\nThe symbolic TB tells me the distance is 1.8901381949770695260066523338279..., but I'll allow some slop in your solution, since you may have chosen a different algorithm than the one I chose. You should expect to provide at least 13 correct significant digits in the solution.\r\n\r\nDisclaimer: I'm not really sure why anyone needs such a code, which is why I've not posted my solution on the FEX. Anyway, my solution is a pretty one that I thought might make a fun Cody problem, and I wanted to see how others might approach the problem. I expect that my reference solution will score poorly for Cody purposes, since it is carefully coded, complete with error checks, and returns more than just the minimum distance.","description_html":"\u003cp\u003eA not uncommon problem in the area of computational geometry is to find the closest point to a straight line from a given point, or the distance from a point to a line. As you might expect, there is a simple formula for those things.\u003c/p\u003e\u003cp\u003eAs an extension, I decided one day to write a tool that would compute the distance from a point to a general polynomial function in the (x,y) plane. That is your problem here:\u003c/p\u003e\u003cp\u003eGiven a point (x0,y0), and a polynomial in the form y=P(x) where the function P is defined by the coefficients of a polynomial, you need to compute the minimum \u003ca href = \"https://en.wikipedia.org/wiki/Euclidean_distance\"\u003eEuclidean distance\u003c/a\u003e to that polynomial. So you need to find and return the minimum distance in the (x,y) plane between the point (x0,y0), and the function y=P(x).\u003c/p\u003e\u003cp\u003eThe function P will be passed in as the coefficients of a polynomial in standard MATLAB form, thus with the highest order coefficient first in a vector, like that generated by polyfit, and used by polyval. (P might be as simple as a constant function.) The point in question will be passed in as a vector of length 2, thus [x0,y0].\u003c/p\u003e\u003cp\u003eAs test case for you to check your code, the distance from the point (-2,-5) to the curve y=x^2/2+3*x-5 should be:\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003ex0y0 = [-2 -5];\r\nP = [0.5 3 -5];\r\nD = distance2polynomial(P,xy)\r\nD =\r\n        1.89013819497707\r\n\u003c/pre\u003e\u003cp\u003e(Be careful plotting these curves in case you want to plot your solution. The command \"axis equal\" is a good idea.)\u003c/p\u003e\u003cp\u003eThe symbolic TB tells me the distance is 1.8901381949770695260066523338279..., but I'll allow some slop in your solution, since you may have chosen a different algorithm than the one I chose. You should expect to provide at least 13 correct significant digits in the solution.\u003c/p\u003e\u003cp\u003eDisclaimer: I'm not really sure why anyone needs such a code, which is why I've not posted my solution on the FEX. Anyway, my solution is a pretty one that I thought might make a fun Cody problem, and I wanted to see how others might approach the problem. I expect that my reference solution will score poorly for Cody purposes, since it is carefully coded, complete with error checks, and returns more than just the minimum distance.\u003c/p\u003e","function_template":"function D = distance2polynomial(P,x0y0)\r\n  % compute the minimum Euclidean distance between a point and a polynomial\r\n  D = rand;\r\nend\r\n","test_suite":"%%\r\nx0y0 = [-2 5];\r\nP = [0.5 3 -5];\r\ny_correct = 4.3093988461280149175163000679048;\r\ntol = 5e-13;\r\nassert(abs(distance2polynomial(P,x0y0)-y_correct) \u003c tol)\r\n\r\n%%\r\nx0y0 = [pi, pi];\r\nP = [10];\r\ny_correct = 6.8584073464102067615373566167205;\r\ntol = 7e-13;\r\nassert(abs(distance2polynomial(P,x0y0)-y_correct) \u003c tol)\r\n\r\n%%\r\nx0y0 = [0.25,50];\r\nP = [1 2 3 4 5];\r\ny_correct = 1.6470039192886012020234097061626;\r\ntol = 5e-13;\r\nassert(abs(distance2polynomial(P,x0y0)-y_correct) \u003c tol)\r\n\r\n%%\r\nx0y0 = [-3 -3];\r\nP = [-2 1];\r\ny_correct = 4.4721359549995793928183473374626;\r\ntol = 5e-13;\r\nassert(abs(distance2polynomial(P,x0y0)-y_correct) \u003c tol)\r\n\r\n%%\r\nx0y0 = [0 5];\r\nP = [1 0 1];\r\ny_correct = 1.9364916731037084425896326998912;\r\ntol = 2e-13;\r\nassert(abs(distance2polynomial(P,x0y0)-y_correct) \u003c tol)\r\n\r\n%%\r\nx0y0 = [-2 -5];\r\nP = [0.5 3 -5];\r\ny_correct = 1.8901381949770695260066523338279;\r\ntol = 2e-13;\r\n(abs(distance2polynomial(P,x0y0)-y_correct) \u003c tol)\r\n\r\n","published":true,"deleted":false,"likes_count":3,"comments_count":2,"created_by":544,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":34,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":37,"created_at":"2016-10-28T21:00:14.000Z","updated_at":"2026-04-08T11:15:12.000Z","published_at":"2016-10-28T21:08:10.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eA not uncommon problem in the area of computational geometry is to find the closest point to a straight line from a given point, or the distance from a point to a line. As you might expect, there is a simple formula for those things.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eAs an extension, I decided one day to write a tool that would compute the distance from a point to a general polynomial function in the (x,y) plane. That is your problem here:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eGiven a point (x0,y0), and a polynomial in the form y=P(x) where the function P is defined by the coefficients of a polynomial, you need to compute the minimum\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://en.wikipedia.org/wiki/Euclidean_distance\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eEuclidean distance\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e to that polynomial. So you need to find and return the minimum distance in the (x,y) plane between the point (x0,y0), and the function y=P(x).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe function P will be passed in as the coefficients of a polynomial in standard MATLAB form, thus with the highest order coefficient first in a vector, like that generated by polyfit, and used by polyval. (P might be as simple as a constant function.) The point in question will be passed in as a vector of length 2, thus [x0,y0].\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eAs test case for you to check your code, the distance from the point (-2,-5) to the curve y=x^2/2+3*x-5 should be:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[x0y0 = [-2 -5];\\nP = [0.5 3 -5];\\nD = distance2polynomial(P,xy)\\nD =\\n        1.89013819497707]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e(Be careful plotting these curves in case you want to plot your solution. The command \\\"axis equal\\\" is a good idea.)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe symbolic TB tells me the distance is 1.8901381949770695260066523338279..., but I'll allow some slop in your solution, since you may have chosen a different algorithm than the one I chose. You should expect to provide at least 13 correct significant digits in the solution.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eDisclaimer: I'm not really sure why anyone needs such a code, which is why I've not posted my solution on the FEX. Anyway, my solution is a pretty one that I thought might make a fun Cody problem, and I wanted to see how others might approach the problem. I expect that my reference solution will score poorly for Cody purposes, since it is carefully coded, complete with error checks, and returns more than just the minimum distance.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":43648,"title":"Arc length of points interpolation","description":"Given a n by m matrix representing m vectors in n dimensions. Calculate the \u003chttps://en.wikipedia.org/wiki/Arc_length arc length\u003e of the closed loop curve going though these points in the order that they are given. The parametric curve, |c(t)| , between points |p(k)| and |p(k+1)| is defined as,\r\n\r\n|c(t) = p(k-1) * (-t/2+t^2-t^3/2) + p(k) * (1-5/2*t^2+3/2*t^3) + p(k+1) * (t/2+2*t^2-3/2*t^3) + p(k+2) * (-t^2/2+t^3/2)|,\r\n\r\nwhere |t| goes from 0 to 1. These interpolation polynomials can also be found using the constraints |c(0)=p(k)|, |c(1)=p(k+1)|, |c'(0)=(p(k+1)-p(k-1))/2| and |c'(1)=(p(k+2)-p(k))/2|.\r\n\r\nFor example for the points\r\n\r\n  points = [[1; 0] [0; 1] [-1; 0] [0; -1]];\r\n\r\nwould yield to following curve: \r\n\r\n\u003c\u003chttp://i.imgur.com/CIb8jFU.png\u003e\u003e","description_html":"\u003cp\u003eGiven a n by m matrix representing m vectors in n dimensions. Calculate the \u003ca href = \"https://en.wikipedia.org/wiki/Arc_length\"\u003earc length\u003c/a\u003e of the closed loop curve going though these points in the order that they are given. The parametric curve, \u003ctt\u003ec(t)\u003c/tt\u003e , between points \u003ctt\u003ep(k)\u003c/tt\u003e and \u003ctt\u003ep(k+1)\u003c/tt\u003e is defined as,\u003c/p\u003e\u003cp\u003e\u003ctt\u003ec(t) = p(k-1) * (-t/2+t^2-t^3/2) + p(k) * (1-5/2*t^2+3/2*t^3) + p(k+1) * (t/2+2*t^2-3/2*t^3) + p(k+2) * (-t^2/2+t^3/2)\u003c/tt\u003e,\u003c/p\u003e\u003cp\u003ewhere \u003ctt\u003et\u003c/tt\u003e goes from 0 to 1. These interpolation polynomials can also be found using the constraints \u003ctt\u003ec(0)=p(k)\u003c/tt\u003e, \u003ctt\u003ec(1)=p(k+1)\u003c/tt\u003e, \u003ctt\u003ec'(0)=(p(k+1)-p(k-1))/2\u003c/tt\u003e and \u003ctt\u003ec'(1)=(p(k+2)-p(k))/2\u003c/tt\u003e.\u003c/p\u003e\u003cp\u003eFor example for the points\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003epoints = [[1; 0] [0; 1] [-1; 0] [0; -1]];\r\n\u003c/pre\u003e\u003cp\u003ewould yield to following curve:\u003c/p\u003e\u003cimg src = \"http://i.imgur.com/CIb8jFU.png\"\u003e","function_template":"function dist = arcLength(points)\r\n    dist = 1;\r\nend","test_suite":"%%\r\npoints = [[1; 0] [0; 1] [-1; 0] [0; -1]];\r\ndist_correct = 5.945066529883204;\r\nassert(abs(arcLength(points) - dist_correct) \u003c 1e-6)\r\n\r\n%%\r\npoints = eye(2);\r\ndist_correct = 2 * sqrt(2);\r\nassert(abs(arcLength(points) - dist_correct) \u003c 1e-6)\r\n\r\n%%\r\npoints = [cos(2*pi/500*(1:500)); sin(2*pi/500*(1:500))];\r\ndist_correct = 6.283185305221142;\r\nassert(abs(arcLength(points) - dist_correct) \u003c 1e-6)\r\n\r\n%%\r\npoints = [[0 0 0]' [1 0 0]' [1 0 1]' [0 0 1]' [0 1 1]' [1 1 1]' [1 1 0]' [0 1 0]'];\r\ndist_correct = 8.367321074314315;\r\nassert(abs(arcLength(points) - dist_correct) \u003c 1e-6)\r\n\r\n%%\r\npoints = [6 -8 -7 -7 3 5;8 -4 9 -1 -9 5;-7 1 9 8 7 -2;8 9 0 6 8 3;3 9 6 9 3 -6];\r\ndist_correct = 101.32625280165301;\r\nassert(abs(arcLength(points) - dist_correct) \u003c 1e-6)\r\n\r\n%%\r\nw = 0.887321243287836;\r\npoints = [-w  0  w  1 1 1 w 0 -w -1 -1 -1; -1 -1 -1 -w 0 w 1 1  1  w  0 -w];\r\ndist_correct = 8;\r\nassert(abs(arcLength(points) - dist_correct) \u003c 1e-6)","published":true,"deleted":false,"likes_count":0,"comments_count":3,"created_by":40782,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":5,"test_suite_updated_at":"2016-12-14T19:45:19.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2016-10-30T02:02:55.000Z","updated_at":"2016-12-14T19:45:19.000Z","published_at":"2016-10-30T02:03:39.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/media/image1.png\"}],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eGiven a n by m matrix representing m vectors in n dimensions. Calculate the\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://en.wikipedia.org/wiki/Arc_length\\\"\u003e\u003cw:r\u003e\u003cw:t\u003earc length\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e of the closed loop curve going though these points in the order that they are given. The parametric curve,\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ec(t)\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e , between points\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ep(k)\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:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ep(k+1)\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e is defined as,\u003c/w:t\u003e\u003c/w:r\u003e\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:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ec(t) = p(k-1) * (-t/2+t^2-t^3/2) + p(k) * (1-5/2*t^2+3/2*t^3) + p(k+1) * (t/2+2*t^2-3/2*t^3) + p(k+2) * (-t^2/2+t^3/2)\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\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ewhere\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003et\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e goes from 0 to 1. These interpolation polynomials can also be found using the constraints\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ec(0)=p(k)\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:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ec(1)=p(k+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:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ec'(0)=(p(k+1)-p(k-1))/2\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:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ec'(1)=(p(k+2)-p(k))/2\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\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFor example for the points\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[points = [[1; 0] [0; 1] [-1; 0] [0; -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\u003ewould yield to following curve:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId1\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"},{\"partUri\":\"/media/image1.png\",\"contentType\":\"image/png\",\"content\":\"data:image/png;base64,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\"}]}"}],"term":"tag:\"computational geometry\"","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:\"computational geometry\"","current_player":null,"sort":"map(difficulty_value,0,0,999) asc"},"parser":"MathWorks::Search::Solr::QueryParser","directives":{"term":{"directives":{"tag":[["tag:\"computational geometry\"","","\"","computational geometry","\""]]}}},"facets":{"#\u003cMathWorks::Search::Field:0x00007fdd64163980\u003e":null,"#\u003cMathWorks::Search::Field:0x00007fdd64161400\u003e":null},"filters":{"#\u003cMathWorks::Search::Field:0x00007fdd6416eec0\u003e":"\"cody:problem\""},"fields":{"#\u003cMathWorks::Search::Field:0x00007fdd6416d480\u003e":1,"#\u003cMathWorks::Search::Field:0x00007fdd6416d0c0\u003e":50,"#\u003cMathWorks::Search::Field:0x00007fdd6416c9e0\u003e":"map(difficulty_value,0,0,999) asc","#\u003cMathWorks::Search::Field:0x00007fdd64164ec0\u003e":"tag:\"computational geometry\""},"user_query":{"#\u003cMathWorks::Search::Field:0x00007fdd64164ec0\u003e":"tag:\"computational geometry\""},"queried_facets":{}},"query_backend":{"connection":{"configuration":{"index_url":"http://index-op-v2/solr/","query_url":"http://search-op-v2/solr/","direct_access_index_urls":["http://index-op-v2/solr/"],"direct_access_query_urls":["http://search-op-v2/solr/"],"timeout":10,"vhost":"search","exchange":"search.topic","heartbeat":30,"pre_index_mode":false,"host":"rabbitmq-eks","port":5672,"username":"cody-search","password":"78X075ddcV44","virtual_host":"search","indexer":"amqp","http_logging":"true","core":"cody"},"query_connection":{"uri":"http://search-op-v2/solr/cody/","proxy":null,"connection":{"parallel_manager":null,"headers":{"User-Agent":"Faraday v1.0.1"},"params":{},"options":{"params_encoder":"Faraday::FlatParamsEncoder","proxy":null,"bind":null,"timeout":null,"open_timeout":null,"read_timeout":null,"write_timeout":null,"boundary":null,"oauth":null,"context":null,"on_data":null},"ssl":{"verify":true,"ca_file":null,"ca_path":null,"verify_mode":null,"cert_store":null,"client_cert":null,"client_key":null,"certificate":null,"private_key":null,"verify_depth":null,"version":null,"min_version":null,"max_version":null},"default_parallel_manager":null,"builder":{"adapter":{"name":"Faraday::Adapter::NetHttp","args":[],"block":null},"handlers":[{"name":"Faraday::Response::RaiseError","args":[],"block":null}],"app":{"app":{"ssl_cert_store":{"verify_callback":null,"error":null,"error_string":null,"chain":null,"time":null},"app":{},"connection_options":{},"config_block":null}}},"url_prefix":"http://search-op-v2/solr/cody/","manual_proxy":false,"proxy":null},"update_format":"RSolr::JSON::Generator","update_path":"update","options":{"url":"http://search-op-v2/solr/cody"}}},"query":{"params":{"per_page":50,"term":"tag:\"computational geometry\"","current_player":null,"sort":"map(difficulty_value,0,0,999) asc"},"parser":"MathWorks::Search::Solr::QueryParser","directives":{"term":{"directives":{"tag":[["tag:\"computational geometry\"","","\"","computational geometry","\""]]}}},"facets":{"#\u003cMathWorks::Search::Field:0x00007fdd64163980\u003e":null,"#\u003cMathWorks::Search::Field:0x00007fdd64161400\u003e":null},"filters":{"#\u003cMathWorks::Search::Field:0x00007fdd6416eec0\u003e":"\"cody:problem\""},"fields":{"#\u003cMathWorks::Search::Field:0x00007fdd6416d480\u003e":1,"#\u003cMathWorks::Search::Field:0x00007fdd6416d0c0\u003e":50,"#\u003cMathWorks::Search::Field:0x00007fdd6416c9e0\u003e":"map(difficulty_value,0,0,999) asc","#\u003cMathWorks::Search::Field:0x00007fdd64164ec0\u003e":"tag:\"computational geometry\""},"user_query":{"#\u003cMathWorks::Search::Field:0x00007fdd64164ec0\u003e":"tag:\"computational geometry\""},"queried_facets":{}},"options":{"fields":["id","difficulty_rating"]},"join":" "},"results":[{"id":60980,"difficulty_rating":"easy"},{"id":60981,"difficulty_rating":"easy-medium"},{"id":43007,"difficulty_rating":"easy-medium"},{"id":60979,"difficulty_rating":"easy-medium"},{"id":60978,"difficulty_rating":"easy-medium"},{"id":2375,"difficulty_rating":"easy-medium"},{"id":60987,"difficulty_rating":"easy-medium"},{"id":43642,"difficulty_rating":"medium"},{"id":43648,"difficulty_rating":"unrated"}]}}