Príklady

Závažia

Zadanie úlohy.

Táto úloha je pomerne jednoduchá a na jej riešenie slovník ani nie je potrebný. Všimnite si totiž, že čísla v postupnosti sú z rozsahu 0 až 1000. Spočítať si počet jednotlivých čísel by ste teda mali vedieť aj v obyčajnom poli. Vyskúšajte si to naprogramovať. A potom program upravte tak, aby namiesto poľa používal dictionary.

n = int(input())
pole = list(map(int, input().split()))
dic = {}

for i in range(n):
	if pole[i] not in dic:
		dic[pole[i]] = 1
	else:
		dic[pole[i]] += 1

max_pocet = 0
min_cislo = -1
for cis, pocet in dic.items():
	if max_pocet < pocet:
		max_pocet = pocet
		min_cislo = cis
	elif max_pocet == pocet and min_cislo > cis:
		min_cislo = cis

print(min_cislo, max_pocet) 

Odd one out

Zadanie úlohy

Tu sú už čísla naozaj veľké, to však v Pythone nie je veľký problém. A naozaj je táto úloha až tak odlišná od tej predchádzajúcej?

n = int(input())
pole = list(map(int, input().split()))
dic = {}

for i in range(n):
	if pole[i] not in dic:
		dic[pole[i]] = 0
	dic[pole[i]] += 1

for key in dic:
	if dic[key] % 2 == 1:
		print(key)
		break

Úseky so súčtom

Zadanie úlohy – domáca úloha z minulého roka, riešiť máte podúlohy 2 a 3.

Keď si už vypočítame prefixové súčty, ako z nich vieme zistiť súčet čísel na nejakom úseku?

Následne si predstavme, že budeme postupne skúšať, na ktorom mieste môže končiť úsek so súčtom . Ako zistíme, na ktorom mieste môže začínať? Čo platí pre prefixové súčty na týchto miestach?

Dedič Dano

Zadanie úlohy

Poriadne si prečítajte zadanie a preštudujte prvý ukážkový vstup. Ako by sme si mohli pamätať, koľko peňazí dlží príbuzný s menom jozko? A vieme naakulumovať hodnotu všetkých dlhov jozko?

Zjavne chceme vydediť príbuzných, ktorí dlžia najviac. To sa dá spraviť ľahko ak ich usortíme podľa dlhov nie? A triediť v Pythone vieme vskutku ľahko, však si vygooglite python sort. Akurát triediť vieme iba listy a nie dictionary, takže by sme údaje z toho dictu mohli vložiť do poľa.

Queens

Zadanie úlohy

Skúsme si vyriešiť ľahšiu úlohu, v ktorej sú na šachovnici figúrky, ktoré sa vedia hýbať iba zvisle dole a hore. Koľko dvojíc sa ich ohrozuje? A keby sa hýbali doprava/doľava? A keby všetkými štyrmi smermi ako veža?

Nuž a nakoniec nám ostávajú iba šikmé smery. Čo platí pre dve dámy nachádzajúce sa na rovnakej uhlopriečke?