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áti2(1 + 5 a 3 + 3),pocet_dvojic([2, 2, 2], 4)vráti3.
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.
Potrebuješ vedieť
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.