< Zpět na seznam úloh

B6 Setkání čertů

var names = ["poradi"]
var mainFunction = "main";
var datasets = [
  {arg: [1, 2, 1, 2], out: 2},
  {arg: [1, 1, 2, 2], out: 1},
  {arg: [80, 72, 85, 90, 80, 35, 91, 53, 19, 32, 53, 68, 35, 68, 35, 35, 3, 9, 75, 80, 30, 39, 12, 85, 75, 3, 91, 32, 12, 39, 72, 19, 80, 9, 34, 90, 25, 34, 25, 30], out: 13},
]

Čerti se scházejí na Větrné hůrce. Podle otisků kopyt na cestičce je dokážeme poznat od sebe, a dokonce dokážeme určit pořadí, v jakém chodili, ale už nevidíme, jakým šli zrovna směrem. Chceme určit, kolik nejvíc čertů se na Větrné hůrce potkalo v jeden moment.

Dostáváte seznam celých čísel mezi 1 a 100. Každé číslo v seznamu odpovídá události, že příslušný čert přichází nebo odchází. Na začátku tam žádný čert není, proto první výskyt kteréhokoliv čísla znamená příchod. Když se stejné číslo opakuje podruhé, znamená to, že dotyčný čert odešel, potřetí, že zase přišel atd. Pro přehlednost nakonec opět všichni odejdou.

Program má vrátit jako výsledek největší počet čertů, co se sešel v libovolnou chvíli.

def main(poradi):
  pocet = 0
  uvnitr = []
  for cert in poradi:
    uvnitr.append(cert)
    if len(uvnitr) > pocet:
      pocet = len(uvnitr)
  return pocet