< Zpět na seznam úloh

P3 Řazení mailů

names: ["zpravy"];
var datasets = [
    {arg: [['2023-01-01T12:00:00', '267a819f-b204-4188-b345-d0dc1f63bae1', '5336a8b2-fc44-4d4f-9fc8-1f5d8f2bc1bd'], ['2022-01-01T12:00:00', '5336a8b2-fc44-4d4f-9fc8-1f5d8f2bc1bd', null]], 'out': [['2022-01-01T12:00:00', '5336a8b2-fc44-4d4f-9fc8-1f5d8f2bc1bd', null], ['2023-01-01T12:00:00', '267a819f-b204-4188-b345-d0dc1f63bae1', '5336a8b2-fc44-4d4f-9fc8-1f5d8f2bc1bd']]},
    {arg: [['2023-10-25T17:07:29', '7ec6976b-8625-4dd0-8da9-8d068ec689be', 'a163f30e-54c7-4b40-8fcc-e509630591f5'], ['2023-10-21T18:03:15', '9323c36f-4e0b-4bb0-bf15-999da74ed160', 'd7e46c1e-151d-496b-b5a4-3f44ca171521'], ['2023-10-08T16:42:03', 'd7d09dbb-ad97-4cb3-ae56-5471992864b8', null], ['2023-09-25T11:02:39', 'e36233dc-dee5-44d5-8f9e-99437df7de0c', null], ['2023-10-05T11:09:23', 'e1e4338c-f858-4c38-9c83-f2f0e228e7de', null], ['2023-09-26T19:43:35', '9e16c2bc-35a3-45fb-840c-5a12d8048acc', null], ['2023-09-20T17:13:49', 'd1793add-b8f8-4570-b529-65862bf0a5ae', null], ['2023-09-22T21:00:19', 'a163f30e-54c7-4b40-8fcc-e509630591f5', 'd1793add-b8f8-4570-b529-65862bf0a5ae'], ['2023-10-05T03:46:41', '87b62c89-ea4d-4b64-b3c9-8e3b3181478c', '9e16c2bc-35a3-45fb-840c-5a12d8048acc'], ['2023-10-03T14:13:17', '15c9020a-633b-4f7e-ae2f-f2fbd6ab42bf', 'a163f30e-54c7-4b40-8fcc-e509630591f5'], ['2023-09-28T20:24:57', 'b8f0232f-8a3d-4b0c-9ee4-d851a633a596', 'a163f30e-54c7-4b40-8fcc-e509630591f5'], ['2023-10-24T06:08:37', '418298ef-36e3-4b8b-a89f-8332ea8bc14b', null], ['2023-10-07T04:45:32', 'e9240593-bd0f-4042-b493-414c1bd788ef', null], ['2023-10-01T01:11:10', 'e5103419-7cdb-4a23-b8db-12dd9abc8c98', 'd7e46c1e-151d-496b-b5a4-3f44ca171521'], ['2023-10-18T21:41:07', '66f79347-426e-44f4-8662-ae50b3da9e91', null], ['2023-10-13T11:05:07', 'cf61b886-4306-4afd-8765-e81b36b0634a', null], ['2023-10-19T20:36:41', '8967711c-df5e-413d-8870-3e6791cdc7e7', 'e1e4338c-f858-4c38-9c83-f2f0e228e7de'], ['2023-09-27T02:40:31', 'd7e46c1e-151d-496b-b5a4-3f44ca171521', 'd1793add-b8f8-4570-b529-65862bf0a5ae'], ['2023-10-25T13:08:54', '0239dd40-9015-4448-b345-8701fff2ce70', 'e9240593-bd0f-4042-b493-414c1bd788ef'], ['2023-10-09T14:23:27', '2ba163fe-ca14-41a9-9ef5-44600fb2790d', null], ['2023-10-11T04:51:45', 'a48ee428-d64c-4278-9887-2c8a06637177', '2ba163fe-ca14-41a9-9ef5-44600fb2790d'], ['2023-10-15T17:45:58', 'dc713520-f3e3-449b-bf43-7c6077676fa6', 'e5103419-7cdb-4a23-b8db-12dd9abc8c98'], ['2023-10-26T19:07:22', '38ea86e1-4015-401b-b2a8-35acb2fd4a28', '9e16c2bc-35a3-45fb-840c-5a12d8048acc'], ['2023-10-28T21:44:24', '20318743-e2a9-40dc-9d32-a66192935378', 'a48ee428-d64c-4278-9887-2c8a06637177'], ['2023-10-16T08:01:21', '81e01f4e-c3ce-4e28-9a61-9bbed59a0d85', null]], out:[["2023-09-20T17:13:49", "d1793add-b8f8-4570-b529-65862bf0a5ae", None], ["2023-09-22T21:00:19", "a163f30e-54c7-4b40-8fcc-e509630591f5", "d1793add-b8f8-4570-b529-65862bf0a5ae"], ["2023-09-25T11:02:39", "e36233dc-dee5-44d5-8f9e-99437df7de0c", None], ["2023-09-26T19:43:35", "9e16c2bc-35a3-45fb-840c-5a12d8048acc", None], ["2023-09-27T02:40:31", "d7e46c1e-151d-496b-b5a4-3f44ca171521", "d1793add-b8f8-4570-b529-65862bf0a5ae"], ["2023-09-28T20:24:57", "b8f0232f-8a3d-4b0c-9ee4-d851a633a596", "a163f30e-54c7-4b40-8fcc-e509630591f5"], ["2023-10-01T01:11:10", "e5103419-7cdb-4a23-b8db-12dd9abc8c98", "d7e46c1e-151d-496b-b5a4-3f44ca171521"], ["2023-10-03T14:13:17", "15c9020a-633b-4f7e-ae2f-f2fbd6ab42bf", "a163f30e-54c7-4b40-8fcc-e509630591f5"], ["2023-10-05T03:46:41", "87b62c89-ea4d-4b64-b3c9-8e3b3181478c", "9e16c2bc-35a3-45fb-840c-5a12d8048acc"], ["2023-10-05T11:09:23", "e1e4338c-f858-4c38-9c83-f2f0e228e7de", None], ["2023-10-07T04:45:32", "e9240593-bd0f-4042-b493-414c1bd788ef", None], ["2023-10-08T16:42:03", "d7d09dbb-ad97-4cb3-ae56-5471992864b8", None], ["2023-10-09T14:23:27", "2ba163fe-ca14-41a9-9ef5-44600fb2790d", None], ["2023-10-11T04:51:45", "a48ee428-d64c-4278-9887-2c8a06637177", "2ba163fe-ca14-41a9-9ef5-44600fb2790d"], ["2023-10-13T11:05:07", "cf61b886-4306-4afd-8765-e81b36b0634a", None], ["2023-10-15T17:45:58", "dc713520-f3e3-449b-bf43-7c6077676fa6", "e5103419-7cdb-4a23-b8db-12dd9abc8c98"], ["2023-10-16T08:01:21", "81e01f4e-c3ce-4e28-9a61-9bbed59a0d85", None], ["2023-10-18T21:41:07", "66f79347-426e-44f4-8662-ae50b3da9e91", None], ["2023-10-19T20:36:41", "8967711c-df5e-413d-8870-3e6791cdc7e7", "e1e4338c-f858-4c38-9c83-f2f0e228e7de"], ["2023-10-21T18:03:15", "9323c36f-4e0b-4bb0-bf15-999da74ed160", "d7e46c1e-151d-496b-b5a4-3f44ca171521"], ["2023-10-24T06:08:37", "418298ef-36e3-4b8b-a89f-8332ea8bc14b", None], ["2023-10-25T13:08:54", "0239dd40-9015-4448-b345-8701fff2ce70", "e9240593-bd0f-4042-b493-414c1bd788ef"], ["2023-10-25T17:07:29", "7ec6976b-8625-4dd0-8da9-8d068ec689be", "a163f30e-54c7-4b40-8fcc-e509630591f5"], ["2023-10-26T19:07:22", "38ea86e1-4015-401b-b2a8-35acb2fd4a28", "9e16c2bc-35a3-45fb-840c-5a12d8048acc"], ["2023-10-28T21:44:24", "20318743-e2a9-40dc-9d32-a66192935378", "a48ee428-d64c-4278-9887-2c8a06637177"]]}
]

Program dostává seznam zpráv. Má vrátit všechny zprávy beze změny, jen ve správném pořadí.

Zpráva je zapsaná jako trojice:

Správné pořadí je takové, že pokud zpráva C reaguje na zprávu A, tak v seznamu musí být nejdřív A a potom C. Navíc, mezi zprávami A a C smějí být jen zprávy, které (přímo nebo v reakci na další zprávu) také reagují na A.

Dále, při zachování výše zmíněných pravidel, mají být zprávy řazené pokud možno od nejstarších po nejnovější. Úplně nejstarší zpráva na nic nereaguje a bude tedy zaručeně první. Na úplně nejnovější zprávu nic nereaguje a ta bude tedy zaručeně poslední.

def main(zpravy):
  zpravy.sort()
  return zpravy

Formát ISO 8601 je ten správný formát data.

Identifikátory v testovacích sadách jsou zapsané ve formátu UUID, jen pro vaši zvědavost.