Napíš programÚloha 4/4Stredná30 XP

Počet dvojíc so súčtom – rýchlo

Zadanie

Napíš funkciu pocet_dvojic(cisla, s), ktorá vráti, koľko dvojíc prvkov na rôznych pozíciách zoznamu cisla má súčet s (každá dvojica pozícií sa počíta raz).

  • pocet_dvojic([1, 5, 3, 3, 4], 6) vráti 2 (1 + 5 a 3 + 3),
  • pocet_dvojic([2, 2, 2], 4) vráti 3.

Zoznam môže mať aj 100 000 prvkov – porovnávať každú dvojicu s každou je príliš pomalé. Pomôže slovník, ktorý si pamätá, koľkokrát sa ktoré číslo už vyskytlo.

Príklady

  • Volanie

    print(pocet_dvojic([1, 5, 3, 3, 4], 6))

    Očakávaný výstup

    2
  • Volanie

    print(pocet_dvojic([2, 2, 2], 4))

    Očakávaný výstup

    3

Po odoslaní riešenie overí ešte 6 skrytých testov: prázdny zoznam, prvok netvorí dvojicu so sebou, dve rovnaké polovice, záporné čísla a nula, 100 000 rôznych čísel, 100 000 rovnakých čísel.

Python sa spustí pri prvom spustení kódu.

Ctrl+Enter spustí program. Tab odsadí riadok. Esc a potom Tab opustí editor.

Vstup (stdin)

Každý riadok = jedno volanie input().

Výstup

Nápovedy

Najprv to skús bez nápovedy. Každá nápoveda prezradí o niečo viac - a trochu zníži odmenu.

Bez prihlásenia sú nápovedy zadarmo - ale ani XP sa neudeľujú.

Riešenie

Riešenie sa odomkne po poslednej nápovede.