Professional Documents
Culture Documents
Ako je zadani broj N paran, tada je sljedeći neparan broj veći od njega N + 1. Ako
je zadani broj N neparan, tada je sljedeći neparan broj veći od njega N + 2.
N = int(input())
if N % 2 == 0:
print(N + 1)
else:
print(N + 2)
Da bi saznali koliko je novca ostalo na hrpi, prvo moramo odrediti koliko je novca
prilikom dijeljenja dobio Broj 1, a koliko Alan. Očito je da je Alan dobio N kuna.
Količinu kuna za Broj 1 možemo izračunati na dva načina. Prvi je da se sjetimo
formule za zbroj prvih N prirodnih brojeva, a drugi je da naredbom ponavljanja
izračunamo spomenuti zbroj.
1.broj_1 = N * (N + 1) // 2
2.zbroj = 0
za i=1 do N radi:
zbroj = zbroj + i
Na kraju, samo još treba od ukupnog broja kuna na hrpi X oduzeti podijeljene kune
za Alena i Broj 1.
X = int(input())
N = int(input())
hrpa = X N N * (N + 1) // 2
print(hrpa)
Najlakši način za riješiti ovaj zadatak je pretvoriti svaku riječ iz rječnika u niz
pritisaka tipki koju moramo pritisnuti da bismo dobili tu riječ. Dakle, pretvorimo
svaku riječ u taj niz pritisaka, npr. “ana” -> “262”.
Na kraju jednostavno izbrojimo koliko postoji “transformiranih” riječi iz ulaza
jednakih nizu pritisaka tipki provjeravajući za svaku je li jednaka s nizom pritisaka.
N
U zadataku je potrebno prebrojati koliko kombinacija od mogućih 2zadovoljava
uvjete kombinacije sastojaka.
Vremenska složenost algoritma iznosi O(n^2) zbog izgradnje grafa. Sam topološki
sort jednako je efikasan kao i DFS obilazak grafa. Za implementacijske detalje
pogledajte službeno rješenje.
Prvo rješenje:
Nakon toga, radimo dfs algoritam kako bismo formirali županije te na kraju
dinamičkim programiranjem provjeravamo postoji li podskup gradova u nekoj
županiji sa sumom djeljivom s K.
Vremenska složenost ovog algoritma je O(N
* K* lg
D_MAX ) gdje je
D_MAX
najveća moguća vrijednost broja D
.
Drugo rješenje: