Autorské riešenie
[stiahni imp : py]                                       

  • Počet riešiteľov: 7 / 11 = 64 %

  • Úspešnosť riešenia:  3,3 / 5 = 66  %                   

Riešenie tejto úlohy spočíva v prechádzaní dvoch cyklov a ukladania vyhovujúcich párov do nového poľa, ktoré na konci vypíšeme. Veky mužov a žien zadávame na začiatku. Prechádzame poľom pánov postupne, kde si pán ktorý je v poradí vyberá z poľa dám. A to tak, že s každou dámou sa urobí rozdiel ich vekov v absolútnej hodnote. Dáma, s ktorou bol rozdiel vekov najmenší sa priradí k pánovi a vzniká tým vhodný pár. Pamätáme si pozíciu tejto dámy, aby sme ju mohli po vybratí vyradiť zo zoznamu dám. Pretože jedna dáma môže byť vybratá iba jeden krát. Páry, ktoré sme si ukladali do poľa párov na konci vypíšeme.

;Imagine logo
viem poparuj :poleMuzi :poleZeny
  urobTu "vybranePary[]
  prePrvky "muz :poleMuzi[
    urobTu "minimum 1000
    prePrvky "zena :poleZeny[
      ak (abs :muz - :zena < :minimum) [
        urobTu "minimum abs :muz - :zena
        urobTu "vybranaZena :zena
        urobTu "poziciaVybranej pocitadlo
      ]
    ]
    urobTu "poleZeny bezPozicie :poziciaVybranej :poleZeny
    urobTu "vybranePary vlozPosledny (zoznam :muz :vybranaZena) :vybranePary
  ]
  vysledok :vybranePary
koniec

 

Python
def poparuj(poleMuzi, poleZeny):
    vybranePary = []
    for muz in poleMuzi:
        minimum = 1000
        for zena in poleZeny:
            if abs(muz - zena) < minimum:
                minimum = abs(muz - zena)
                vybranaZena = zena
        poleZeny.remove(vybranaZena)
        vybranePary.append([muz, zena])

    return vybranePary

Vaše zaujímavé riešenia a najčastejšie chyby

Najčasteším problémom bolo zlé vypisovanie párov. Dámy neboli často krát ostraňované správne alebo vôbec ostraňované. Najväčším problémom bolo identifikovanie indexu/pozície dámy v zozname. Mnoho riešiteľov používalo veľa globálnych premenných, ktoré neboli potrebné a tam sa to zrejme skomplikovalo. Prístup ku riešeniu bol takmer vždy správny, veľa z vás ošetrilo aj výnimky a to veľmi pekným a čitateľným spôsobom. Celkovo ale hodnotím, že riešenia boli prevažne správne. Prekvapilo ma mnoho prístupov akými ste sa rozhodli túto úlohu riešiť, každý bol niečím zaujímavý a nakoniec viedol k výsledku.