You are on page 1of 20

Natjecanje timova studenata informatičara hrvatskih sveučilišta

Pula, Rijeka, Zagreb


19. studenog 2023.

Zadaci

A: Avio Algoritam . . . . . . . . . . . . . 1
B: Bipartitna Barikada . . . . . . . . . . . 3
C: Cjelovita Cesta . . . . . . . . . . . . . 4
D: Dražesni Doručak . . . . . . . . . . . . 5
E: Ekstravagantni Eksperiment . . . . . . 7
F: Fenomenalni Frano . . . . . . . . . . . 9
G: Gipka Gumica . . . . . . . . . . . . . . 11
H: Heksadekadski Haos . . . . . . . . . . 13
I: Inteligentna Ines . . . . . . . . . . . . . 14
J: Jedinstveno Jezero . . . . . . . . . . . . 15
K: Kilave Krave . . . . . . . . . . . . . . 17
L: Luckasti Likovi . . . . . . . . . . . . . 19
Natjecanje timova studenata informatičara hrvatskih sveučilišta
Pula, Rijeka, Zagreb, 19. studenog 2023.

Zadatak A: Avio Algoritam


Vremensko ograničenje: 1 s
Memorijsko ograničenje: 512 MiB

Naše nacionalno blago, Croatia Airlines, ulaže milijarde eura u sofisticirani algoritam koji će dodijeliti
bolja zrakoplovna sjedala onim putnicima koji su ranije kupili kartu.
Sjedala se u zrakoplovu protežu kroz r redova, gdje je r paran broj. Također postoje tri izlazna reda
koji služe kao pristup izlazima u slučaju nužde, te ne sadrže sjedala. Prvi izlazni red nalazi se na
samom početku zrakoplova (prije prvog reda sjedala), drugi se nalazi točno u sredini zrakoplova, a
treći se nalazi na kraju zrakoplova (nakon posljednjeg reda sjedala). Redovi zrakoplova numerirani su
prirodnim brojevima od 1 do r + 3 koji rastu od početka prema kraju zrakoplova. Odnosno, redovi
numerirani brojevima 1, r/2 + 2 i r + 3 su izlazni redovi, dok svi ostali redovi sadrže sjedala.
Konfiguracija sjedala u zrakoplovu je 3-3-3, odnosno svaki red sjedala sastoji se od tri grupe po tri
sjedala između kojih se nalazi prolaz za putnike. Sjedala svakog retka označena su uzastopnim slovima
prema sljedećem uzorku ABC.DEF.GHI slijeva nadesno.
Kada putnik kupi avionsku kartu, sofisticirani mu algoritam dodijeli sjedalo prema sljedećim pravilima:

1. Ako postoji prazno sjedalo u redu koji se nalazi direktno iza nekog izlaznog reda, svi se ostali
redovi (za koje ne vrijedi ovo svojstvo) ignoriraju u idućem pravilu.

2. Najprije se odabire red s najvećim brojem praznih sjedala. Ako postoji više takvih redova, odabire
se onaj red koji je najbliži nekom izlaznom redu (udaljenost između redova a i b je |a − b|). Ako i
dalje postoji više takvih redova, odabire se onaj s najmanjim brojem.

3. Potom se u obzir uzmu sva prazna sjedala u odabranom redu, te se odabire ono koje ima najveći
prioritet. Poredak sjedala prema prioritetu (od najvećeg do najmanjeg) jest:

(a) Sjedala uz prolaz srednje grupe (D i F)


(b) Sjedala uz prolaz prve i treće grupe (C i G)
(c) Sjedala uz prozor (A i I)
(d) Srednje sjedalo srednje grupe (E)
(e) Preostala srednja sjedala (B i H)

Ako postoje dva prazna sjedala s istim najvećim prioritetom, tada je potrebno uzeti u obzir balans
cijelog zrakoplova. Putnici s lijeve strane zrakoplova sjede na sjedalima s oznakama A, B, C i D,
dok putnici s desne strane zrakoplova sjede na sjedalima s oznakama F, G, H i I. Algoritam odabire
sjedalo koje se nalazi na strani zrakoplova s više praznih sjedala. Ako obje strane zrakoplova
sadrže jednak broj praznih sjedala, algoritam odabire sjedalo s lijeve strane zrakoplova.

Neka su sjedala u zrakoplovu unaprijed rezervirana (ne nužno koristeći opisani algoritam), a vaš je
zadatak dodijeliti dodijeliti sjedala za sljedećih n putnika prema opisanom algoritmu.

Ulazni podaci
U prvom su retku prirodni brojevi r i n (2 ≤ r ≤ 50, 1 ≤ n ≤ 26) iz teksta zadatka.
Idućih r ∗ 3 redaka predstavlja trenutno stanje sjedala u zrakoplovu. Preciznije, j-ti se redak sastoji od
točno 11 znakova koji predstavljaju stanje j-tog reda u zrakoplovu. Izlazni redovi i prolazi za putnike
označeni su znakovima ’.’, znak ’#’ označava rezervirano sjedalo, dok znak ’-’ označava prazno
sjedalo.
Možete pretpostaviti da se u zrakoplovu nalazi barem n praznih sjedala.

1 od 19
Natjecanje timova studenata informatičara hrvatskih sveučilišta
Pula, Rijeka, Zagreb, 19. studenog 2023.

Izlazni podaci
Potrebno je ispisati r + 1 redak koji predstavlja stanje sjedala u zrakoplovu nakon dodjele sjedala
idućih n putnika. Izlazni format mora biti jednak ulaznom uz dodatno svojstvo da je sjedalo koje je
dodijeljeno j-tom putniku označeno j-tim malim slovom engleske abecede.

Probni primjeri
ulaz ulaz

2 17 6 26
........... ...........
---.#--.--- ---.---.###
........... #-#.---.---
---.---.--- ---.###.---
........... ...........
---.###.---
izlaz #--.#-#.--#
........... #--.--#.#-#
hnd.#lb.fpj ...........
........... izlaz
kqg.cma.eoi
........... ...........
gke.aic.###
#-#.mzo.r-v
x-p.###.n-t
...........
fjb.###.dlh
#-s.#-#.w-#
#-u.qy#.#-#
...........

2 od 19
Natjecanje timova studenata informatičara hrvatskih sveučilišta
Pula, Rijeka, Zagreb, 19. studenog 2023.

Zadatak B: Bipartitna Barikada


Vremensko ograničenje: 2.5 s
Memorijsko ograničenje: 512 MiB

U bipartitnom grafu, čvorovi se mogu podijeliti u dva disjunktna skupa A i B tako da svaki brid povezuje
čvor iz skupa A s čvorom iz skupa B. Sparivanje M je skup bridova gdje nijedna dva brida ne dijele
zajednički čvor. Kažemo da sparivanje M barikadira skup čvorova V ako je svaki čvor iz V krajnja
točka barem jednog brida iz M .
Zadan je bipartitan graf u kojem je svakom čvoru pridružena cjelobrojna težina. Pritom, težinu skupa
čvorova definiramo kao sumu težina čvorova toga skupa.
Za dani cijeli broj t, potrebno je pronaći broj skupova V takvih da je njihova težina barem t te da je
skup V barikadiran barem jednim sparivanjem M .

Ulazni podaci
U prvom su retku prirodni brojevi n i m (1 ≤ n, m ≤ 20) koji redom predstavljaju broj čvorova u
skupovima A i B. Označit ćemo čvorove u skupu A s a1 , a2 , . . . , an , a čvorove u skupu B s b1 , b2 , . . . , bm
Svaki od idućih n redaka sastoji se od m znakova koji opisuju bridove bipartitnog grafa. Preciznije, j-ti
znak u i-tom retku je ’1’ ako postoji brid koji spaja čvorove ai i bj , odnosno ’0’ tako to nije slučaj.
U idućem je retku n prirodnih brojeva v1 , v2 , . . . , vn (1 ≤ vk ≤ 10 000 000) koji redom predstavljaju
težine čvorova a1 , a2 , . . . , an .
U idućem je retku m prirodnih brojeva w1 , w2 , . . . , wm (1 ≤ wk ≤ 10 000 000) koji redom predstavljaju
težine čvorova b1 , b2 , . . . , bm .
U posljednjem je retku prirodan broj t (1 ≤ t ≤ 400 000 000) iz teksta zadatka.

Izlazni podaci
Ispišite broj skupova čvorova težine barem t koji su barikadirani barem jednim sparivanjem.

Probni primjeri
ulaz ulaz
3 3 3 2
010 01
111 11
010 10
1 2 3 1 2 3
8 5 13 4 5
21 8

izlaz izlaz
3 13

Pojašnjenje prvog probnog primjera:


Skup {a1 , a2 , b2 , b3 } je barikadiran sparivanjem {(a1 , b2 ), (a2 , b3 )} i ima težinu 21. Skupovi {a3 , b2 , b3 }
i {a2 , a3 , b2 , b3 } barikadirani su sparivanjem {(a2 , b3 ), (a3 , b2 )}, te redom imaju težine 21 i 23. Preostali
skupovi čvorova ili imaju težinu manju od 21 ili nisu barikadirani niti jednim sparivanjem. Primjerice,
skup {a2 , a3 , b1 , b3 } ima težinu 26, međutim ne postoji sparivanje koje ga barikadira.

3 od 19
Natjecanje timova studenata informatičara hrvatskih sveučilišta
Pula, Rijeka, Zagreb, 19. studenog 2023.

Zadatak C: Cjelovita Cesta


Vremensko ograničenje: 1 s
Memorijsko ograničenje: 512 MiB

U našoj lijepoj domovini, ceste su ponos i dika njenih građana, a posebno superautocesta maštovitog
naziva A1. Nažalost, mnogobrojni turisti sa svojim trabantima napunjenim jeftinim paštetama i
limenkama pive svake godine unište cestu pa je treba popravljati.
Državni zavod za cjelovitost cesta napravio je pregled autoceste i označio sve rupe koje treba sanirati.
Sanira se na sljedeći način: najprije se, počevši od nekog mjesta prije prvog oštećenja, cesta podijeli na
segmente jednake duljine i zatim se na svaki segment na kojem ima oštećenja pošalje jedan bager sa
pripadajućom ekipom.
Zbog nedovoljnog broja bagera u državi, prometni stručnjaci trebaju odrediti kako podijeliti cestu na
segmente unaprijed zadane duljine tako da broj segmenata s oštećenjima bude što manji.
Na cesti se nalazi n rupa i svaka je zadana cijelim brojem koji predstavlja njenu udaljenost od početka
ceste. Dužina svakog segmenta je unaprijed zadana prirodnim brojem m. Na prvih m metara ceste
nema oštećenja. Cesta se podijeli na segmente tako da se odabere mjesto za početak prvog segmenta
koje se mora nalaziti na jednom od prvih m metara. Ako prvi segment počinje na k-tom metru, onda
i-ti segment počinje na k + (i − 1) · m metru. Jedan bager može pokriti sve rupe od početka nekog
segmenta (uključivo) do početka sljedećeg segmenta (isključivo).
Napišite program koji će odrediti minimalni broj bagera potrebnih za sanaciju autoceste i sva moguća
mjesta na kojima prvi segment može početi

Ulazni podaci
U prvom se retku nalaze prirodni brojevi m i n (1 ≤ m, n ≤ 100 000) iz teksta zadatka.
U drugom je retku n prirodnih brojeva x1 , x2 , . . . , xn (m < x1 < x2 < . . . < xn ≤ 2 · 109 ) koji
predstavljaju pozicije svih rupa na cesti.

Izlazni podaci
U prvom retku ispišite minimalni broj bagera potrebnih za sanaciju autoceste.
U idućem retku ispišite pozicije svih mjesta na kojima prvi segment može početi. Te brojeve treba
ispisati u rastućem poretku i međusobno ih odvojiti jednim razmakom.

Probni primjeri
ulaz ulaz ulaz
3 5 4 3 2 10
4 5 7 8 9 7 14 15 3 4 7 8 12 13 14 15 20 21

izlaz izlaz izlaz


2 2 7
1 1 2 4 1 2

4 od 19
Natjecanje timova studenata informatičara hrvatskih sveučilišta
Pula, Rijeka, Zagreb, 19. studenog 2023.

Zadatak D: Dražesni Doručak


Vremensko ograničenje: 1 s
Memorijsko ograničenje: 512 MiB

Mirko i Slavko vole jesti burek za doručak pa su tako, jednom prilikom, kupili jedan burek sa sirom
i jedan s mesom kako bi se osladili. Gledajući bureke kako se vrući dime na stolu, puneći im pritom
nosnice zamamnim mirisima, nisu se nikako mogli dogovoriti tko će pojesti koji burek pa su ih odlučili
podijeliti tako da svako od njih dobije pola jednog i pola drugog bureka.
Mirko se pohvalio da će jednim ravnim potezom noža prerezati oba bureka točno na dvije površinom
jednake polovice. Pomozite Mirku da to i napravi prije no što se bureci sasvim ohlade.

Slika odgovara prvom probnom primjeru

Svaki od bureka ima oblik konveksnog poligona te je zadan nizom koordinata uzastopnih vrhova. Bureci
leže razdvojeni na stolu, i to tako da prvi od njih u potpunosti leži lijevo od y-osi (dakle u II i III
kvadrantu) dok drugi u potpunosti leži desno od y-osi (u I i IV kvadrantu).
Napišite program koji će, na temelju niza koordinata vrhova oba poligona, odrediti jednadžbu pravca po
kojem je moguće povući nož tako da se svaki od poligona razdvoji na dva dijela s jednakim površinama.

Ulazni podaci
U prvom je retku prirodan broj n (3 ≤ n ≤ 5 000), broj vrhova poligona koji predstavlja prvi burek.
U svakom od sljedećih n redaka nalaze se po dva realna broja x i y (−1 000 ≤ x < 0, −1 000 ≤ y ≤ 1 000)
koji predstavljaju koordinate vrhova prvog poligona.
U sljedećem je retku prirodan broj m (3 ≤ m ≤ 5 000), broj vrhova poligona koji predstavlja drugi
burek.
U svakom od sljedećih n redaka nalaze se po dva realna broja x i y (0 < x ≤ 1 000, −1 000 ≤ y ≤ 1 000)
koji predstavljaju koordinate vrhova prvog poligona.
U oba poligona, vrhovi su zadani redom u smjeru obrnutom od kazaljke na satu. Koordinate vrhova
zadane su s točno tri decimalne znamenke. Niti jedna dva susjedna brida poligona neće biti paralelna.

5 od 19
Natjecanje timova studenata informatičara hrvatskih sveučilišta
Pula, Rijeka, Zagreb, 19. studenog 2023.

Izlazni podaci
U jedini je redak potrebno ispisati dva realna broja a i b takva da je y = ax + b jednadžba pravca s
traženim svojstvima.
Tolerirat će se apsolutno ili relativno odstupanje od službenog rješenja za 10−3 .
Možete pretpostaviti da rješenje uvijek postoji te da je jedinstveno.

Probni primjeri
ulaz ulaz
3 4
-6.000 1.000 -5.000 -1.000
-2.000 2.000 -3.000 -1.000
-5.000 6.000 -3.000 6.000
5 -5.000 6.000
1.000 -1.000 4
3.000 -2.000 3.222 2.000
6.000 0.000 5.000 1.000
4.000 3.000 5.000 4.000
1.000 2.000 3.222 3.000

izlaz izlaz
-0.319961 1.556489 0.000000 2.500000

6 od 19
Natjecanje timova studenata informatičara hrvatskih sveučilišta
Pula, Rijeka, Zagreb, 19. studenog 2023.

Zadatak E: Ekstravagantni Eksperiment


Vremensko ograničenje: 3 s
Memorijsko ograničenje: 64 MiB

Ludi znanstvenik Matija radi eksperimente sa bijelim štakorima. Štakor se nalazi u kavezu čije je dno
podijeljeno na n × n kvadrata. Svaki kvadrat obojen je u bijelu ili crvenu boju. Redovi su pobrojani
brojevima od 1 do n odozgo prema dolje, a stupci slijeva nadesno.
Štakor se sa svakog kvadrata može pomaknuti na njemu susjedni kvadrat s kojim ima zajedničku
stranicu, ali se plaši crvenih kvadrata, tako da ni u kojem trenutku neće stati na kvadrat crvene boje.
Nakon što je štakor proveo neko vrijeme u kavezu i naučio kuda se smije kretati, Matija ga je prekrio
kutijom koja je dimenzija k × k kvadrata i to tako da su njene stranice paralelne stranicama kaveza.
Iako je štakor sada u mraku on se, začudo, i dalje kreće samo po bijelim kvadratima.
Dok se štakor kreće unutar kutije, to izvana nije moguće vidjeti. Izvana je vidljivo jedino kretanje
kutije, a ono se događa kada se štakor nalazi uz rub kutije i pomakne se u smjeru u kojem se nalazi
kutija. Tada se i kutija pomakne za jedan kvadrat u tom smjeru.

Ilustracija prvog probnog primjera – crni krug predstavlja štakora, a zatamnjeno područje kutiju.

Matija je zapisao početnu poziciju kutije i za svaki njen pomak zapisao je znak ’L’ ako se kutija
pomakla ulijevo, ’R’ ako se pomakla udesno, ’U’ ako se pomakla prema gore, te ’D’ ako se pomakla
prema dolje.
Napišite program koji će iz zapisanih podataka odrediti najmanji broj koraka koje je štakor mogao
napraviti.

Ulazni podaci
U prvom su retku prirodni brojevi n i k (2 ≤ k ≤ 10, k < n ≤ 100) iz teksta zadatka.
U svakom od sljedećih n redaka nalazi se n znakova – svaki znak je ili malo slovo ’b’ ili malo slovo
’c’. Slovo ’b’ predstavlja bijeli kvadrat, a slovo ’c’ crveni kvadrat.
U sljedećem su redu dva prirodna broja r i s (1 ≤ r, s ≤ n − k + 1), redak i stupac gornjeg lijevog ruba
kutije na početku ekstravagantnog eksperimenta.
U sljedećem je retku prirodan broj p (1 ≤ p ≤ 1 000 000), broj pomaka kutije.
U sljedećem je retku niz od p znakova. Svaki je znak jedno od četiri velika slova ’L’, ’R’, ’U’ ili ’D’ i
odgovara smjeru pomaka kutije.

7 od 19
Natjecanje timova studenata informatičara hrvatskih sveučilišta
Pula, Rijeka, Zagreb, 19. studenog 2023.

Izlazni podaci
U jedini redak potrebno je ispisati najmanji mogući broj štakorovih koraka.
U jedini je redak potrebno ispisati dva realna broja a i b takva da je y = ax + b jednadžba pravca s
traženim svojstvima.
Tolerirat će se apsolutno ili relativno odstupanje od službenog rješenja za 10−3 .
Možete pretpostaviti da rješenje uvijek postoji te da je jedinstveno.

Probni primjeri
ulaz ulaz ulaz
5 3 5 3 6 4
bbbbb bbbbb bbbbbc
bcbcb bbccb bbbccc
bbbbb bccbb bcbbbb
bcccb bbbbb bccccb
bbbbb bbbbb bbbbcb
3 3 3 1 bbbbbb
2 4 1 1
LU URRU 4
DRUR
izlaz izlaz
izlaz
3 10
18

Pojašnjenje drugog probnog primjera: Štakor se mogao nalaziti na polju (3, 1) i zatim napraviti
sljedećih 10 koraka: gore, dolje, dolje, desno, desno, desno, gore, desno, gore, gore.
Poašnjenje trećeg probnog primjera: Štakor se mogao nalaziti na polju (4, 1) i zatim napraviti
sljedećih 18 koraka: dolje, gore, gore, gore, desno, desno, dolje, desno, desno, lijevo, lijevo, gore, gore,
dolje, dolje, desno, desno, desno.

8 od 19
Natjecanje timova studenata informatičara hrvatskih sveučilišta
Pula, Rijeka, Zagreb, 19. studenog 2023.

Zadatak F: Fenomenalni Frano


Vremensko ograničenje: 1 s
Memorijsko ograničenje: 512 MiB

Frano već godinama radi fenomenalne zadatke za natjecanja u programskom jeziku Logo. Dugogodišnje
izlaganje takvim aktivnostima može biti pogubno za psihofizičko zdravlje pa je tako naš Frano postao
prvi borac protiv zlostavljanja kornjača nepotrebnim dizanjem i spuštanjem olovaka. Frani u čast, cilj
ovog zadatka je podizanje svijesti o problemima s kojima se svakodnevno susreću Logo kornjače. . .
Tipični zadaci za programski jezik Logo uključuju crtanje pravokutnika po ekranu. Crtanje u program-
skom jeziku Logo vrši se pomicanjem kornjače.
Kornjača je u svakom trenutku zadana pozicijom i smjerom gledanja, a u svojim zubima drži olovku
koja može biti spuštena ili podignuta. Ako je olovka spuštena, tada pomicanje kornjače ostavlja trag
na ekranu.
Kornjača se na početku svakog programa nalazi na koordinatama (0, 0), gleda u pozitivnom smjeru
y-osi, te drži olovku spuštenom. Njom ćemo u ovom zadatku upravljati isključivo ovim skupom naredbi:

• FD x – pomiče kornjaču za x piksela u smjeru gledanja.

• LT x – okreće kornjaču za x stupnjeva ulijevo.

• RT x -– okreće kornjaču za x stupnjeva udesno.

• PU – podiže olovku.

• PD – spušta olovku.

Zadan je skup pravokutnika stranica paralelnih s koordinatnim osima koje je potrebno nacrtati na
ekranu. Kornjača smije više puta spuštenom olovkom preći preko istog segmenta ekrana, meñutim nije
dopušteno da nacrta ništa više osim zadanih pravokutnika.
Napišite program koji će odrediti koliko je najmanje puta potrebno podići olovku da bismo nacrtali
zadani skup pravokutnika.

Ulazni podaci
U prvom je retku prirodan broj n (1 ≤ n ≤ 1 000), broj pravokutnika koje je potrebno nacrtati.
U svakom od sljedećih n redaka su po četiri cijela broja x1 , y1 , x2 , y2 (−500 ≤ xi < x2 ≤ 500),
(−500 ≤ y1 < y2 ≤ 500). Točke (x1 , y1 ) i (x2 , y2 ) su dijagonalno nasuprotne točke pravokutnika.

Izlazni podaci
U jedini redak potrebno je ispisati koliko je najmanje puta potrebno podići olovku da bismo nacrtali
zadani skup pravokutnika.

9 od 19
Natjecanje timova studenata informatičara hrvatskih sveučilišta
Pula, Rijeka, Zagreb, 19. studenog 2023.

Probni primjeri
ulaz ulaz ulaz
1 1 5
0 0 10 10 -5 -5 5 5 1 1 4 4
3 3 6 6
izlaz izlaz 4 4 5 5
0 1 5 0 8 3
6 1 7 2

izlaz
2

10 od 19
Natjecanje timova studenata informatičara hrvatskih sveučilišta
Pula, Rijeka, Zagreb, 19. studenog 2023.

Zadatak G: Gipka Gumica


Vremensko ograničenje: 1 s
Memorijsko ograničenje: 512 MiB

Mirko je na starom tavanu pronašao drvenu ploču i n čavala. Mirko je, brže bolje, zabio čavle u ploču.
Ploču možemo predstaviti kao koordinatnu ravninu, a zabijene čavle kao točke na njoj. Nijedna dva
zabijena čavla nemaju istu x koordinatu niti istu y koordinatu.
Kako bi se dalje zabavljao s novopronađenim stvarima, Mirko je sestri ukrao gipku gumicu za kosu, te
je rastegao oko svih čavala i zatim je pustio. Gumica se, prirodno, stegla oko vanjskih čavala. Mirko
zatim ponavlja sljedeći postupak sve dok je broj čavla u ploči veći od 2:

1. Na papir zapisuje površinu lika kojeg gumica opisuje.

2. Odabire jedan od sljedećih čavala: najlijeviji, najdesniji, najgornji ili najdonji.

3. Odabrani čavao izvlači iz ploče, a gumica se ponovo steže oko vanjskih čavala.

Napišite program koji će izračunati brojeve zapisane na papir ako znamo koji čavao je Mirko odabrao u
svakom koraku.

Ulazni podaci
U prvom je retku prirodan broj n (3 ≤ n ≤ 300 000) iz teksta zadatka.
U sljedećih n redaka su po dva prirodna broja x i y koji predstavljaju koordinate svakog od čavala. Sve
koordinate će biti manje od 109 i neće postojati dva čavla s istom x ili y koordinatom.
U sljedećem retku nalazi se niz od n − 2 znaka ’L’, ’R’, ’U’ ili ’D’ koji redom označavaju da je Mirko
odabrao najlijeviji, najdesniji, najgornji ili najdonji čavao.

Izlazni podaci
Ispišite n − 2 broja koji predstavljaju površine koje je Mirko redom zapisivao na papir. Površine je
potrebno ispisati s točno jednim decimalnim mjestom nakon točke.

11 od 19
Natjecanje timova studenata informatičara hrvatskih sveučilišta
Pula, Rijeka, Zagreb, 19. studenog 2023.

Probni primjeri
ulaz ulaz
5 8
1 4 1 6
2 2 2 4
4 1 3 1
3 5 4 2
5 3 5 7
LUR 6 5
7 9
izlaz 8 3
9.0 URDLUU
6.5 izlaz
2.5
34.0
24.0
16.5
14.0
9.5
5.0

Pojašnjenje drugog probnog primjera:

Ilustracija stanja prije svakog od 6 koraka.

12 od 19
Natjecanje timova studenata informatičara hrvatskih sveučilišta
Pula, Rijeka, Zagreb, 19. studenog 2023.

Zadatak H: Heksadekadski Haos


Vremensko ograničenje: 1 s
Memorijsko ograničenje: 512 MiB

Nova generacija internet protokola IPv6 definira IP adresu od 128 bitova. Potpuni zapis IPv6 adrese
sastoji se od 8 grupa po 4 heksadecimalne znamenke gdje su grupe odvojene znakom dvotočke (’:’).
Na primjer:

2001:0db8:85a3:0000:0000:8a2e:0370:7334

Kako bi se skratio zapis IPv6 adresa, dozvoljena su neka pojednostavljenja potpunog zapisa.

• Sve ili samo neke vodeće nule unutar grupe mogu se izostaviti, pa se tako gornja adresa može
pojednostaviti kao:

2001:db8:85a3:0:00:8a2e:370:7334

• Dodatno, jedna ili više uzastopnih grupa jednakih nula može se zamijeniti dvostrukim znakom
dvotočke ("::"). Gornja adresa tako postaje:

2001:db8:85a3::8a2e:370:7334

Ovo pojednostavljenje moguće je učiniti samo jednom kako bi iz dobivenog zapisa bilo moguće
jedinstveno odrediti adresu.

Napišite program koji će za pravilno zapisanu IPv6 adresu odrediti njen potpuni zapis.

Ulazni podaci
U prvom se redu nalazi niz od najviše 39 znakova, pravilno zapisana IPv6 adresa. Niz se sastoji
isključivo od znamenaka ’0’-’9’, malih slova ’a’-’f’ i znakova dvotočke – ’:’.

Izlazni podaci
U prvi i jedini red potrebno je ispisati potpuni zapis zadane IPv6 adrese.

Probni primjeri
ulaz ulaz
25:09:1985:aa:091:4846:374:bb ::1

izlaz izlaz
0025:0009:1985:00aa:0091:4846:0374:00bb 0000:0000:0000:0000:0000:0000:0000:0001

13 od 19
Natjecanje timova studenata informatičara hrvatskih sveučilišta
Pula, Rijeka, Zagreb, 19. studenog 2023.

Zadatak I: Inteligentna Ines


Vremensko ograničenje: 1 s
Memorijsko ograničenje: 512 MiB

Mali Ivica svake večeri šalje maloj Marici tajne podatke e-poštom. Oni znaju da Ivičino e-pismo na
putu do Maričinog e-pretinca potpuno nezaštićeno prolazi preko više različitih računala u mreži, pa su
se dogovorili da će svaku poruku Ivica šifrirati prema sljedećem algoritmu:

• Neka se poruka koju Ivica želi poslati Marici sastoji od n znakova.

• Ivica prvo mora pronaći tablicu koja se sastoji od r redaka i s stupaca takvu da je r ≤ s i da je
n = rs. Ako postoji više takvih tablica, Ivica treba odabrati onu koja ima što je moguće više
redaka.

• Ivica zapisuje poruku u tablicu po recima odozgo prema dolje, a unutar retka slijeva nadesno.
Tako u prvi red upisuje prvi dio poruke, u drugi red drugi dio poruke itd.

• Poruka koju Ivica šalje Marici dobiva se čitanjem tablice po stupcima slijeva nadesno, a unutar
stupca odozgo prema dolje.

Ljubomorna Ines presrela je šifriranu e-poruku koju je Ivica poslao Marici. Napišite program koji će
dešifrirati tajnu poruku.

Ulazni podaci
U prvom je retku niz od barem jednog, a najviše 100 malih slova engleske abecede koji predstavlja
šifriranu poruku koju je Ines presrela.

Izlazni podaci
U jedini redak potrebno je ispisati dešifriranu poruku.

Probni primjeri
ulaz ulaz ulaz
bok koaski boudonuimilcbsai

izlaz izlaz izlaz


bok kakosi bombonisuuladici

14 od 19
Natjecanje timova studenata informatičara hrvatskih sveučilišta
Pula, Rijeka, Zagreb, 19. studenog 2023.

Zadatak J: Jedinstveno Jezero


Vremensko ograničenje: 1 s
Memorijsko ograničenje: 512 MiB

Slon Mirko živi pokraj velikog jezera na kojem se nalazi n lopoča. Jezero možemo zamisliti kao
koordinatnu ravninu, pri čemu se lopoči nalaze u nekim točkama s cjelobrojnim koordinatama.
Mirko svakog dana čim se probudi obavlja svoju jutarnju gimnastiku tako da na osebujan način veselo
skakuće po lopočima duž jezera. Iz samo njemu poznatih razloga, Mirko u svakom koraku može skočiti
samo na one lopoče koji imaju obje koordinate veće od koordinata lopoča na kojem se trenutno nalazi.
Drugim riječima, Mirko sa lopoča sa koordinatama (x1 , y1 ) može skočiti na lopoč sa koordinatama
(x2 , y2 ) samo ako je x2 > x1 i y2 > y1 . Prvi lopoč u nizu Mirko odabire proizvoljno.
Mirko voli jutarnju gimnastiku i želio bi da ona traje što je dulje moguće, a još i svaki dan želi skakati
na drugačiji način.
Napišite program koji će, za zadani raspored lopoča, odrediti duljinu najdužeg niza lopoča koji
zadovoljava Mirkove uvjete. Također, zanima nas broj takvih najdužih nizova, međutim, kako taj broj
može biti vrlo velik, potrebno je odrediti samo njegov ostatak pri dijeljenju s 1 000 000 007.

Ulazni podaci
U prvom je retku prirodan broj n (1 ≤ n ≤ 300 000) iz teksta zadatka.
U svakom od sljedećih n redaka su dva nenegativna cijela broja x i y (0 ≤ x, y ≤ 109 ) koji predstavljaju
koordinate jednog lopoča.
Niti jedna dva lopoča se neće nalaziti na istim koordinatama.

Izlazni podaci
U prvi redak potrebno je ispisati duljinu najdužeg niza lopoča po kojima Mirko može skakati, kako je
opisano u tekstu zadatka.
U drugi redak potrebno je treba ispisati ostatak kojeg broj različitih najdužih nizova daje pri dijeljenju
s 1 000 000 007.

15 od 19
Natjecanje timova studenata informatičara hrvatskih sveučilišta
Pula, Rijeka, Zagreb, 19. studenog 2023.

Probni primjeri
ulaz ulaz ulaz
4 6 11
1 1 1 3 8 6
4 2 2 2 7 4
2 3 3 1 5 4
3 4 5 3 5 1
4 4 5 6
izlaz 3 5 6 2
3 3 2
izlaz 4 3
1
2 4 5
7 3 5
2 4

izlaz
4
3

16 od 19
Natjecanje timova studenata informatičara hrvatskih sveučilišta
Pula, Rijeka, Zagreb, 19. studenog 2023.

Zadatak K: Kilave Krave


Vremensko ograničenje: 5 s
Memorijsko ograničenje: 512 MiB

Obližnji pašnjak možemo predstaviti pravokutnom pločom koja se sastoji od 106 redaka i 106 stupaca.
Retci su numerirani brojevima od 1 do 106 odozgo prema dolje, dok su stupci numerirani brojevima od
1 do 106 slijeva nadesno.
Krdo od n krava nalazi se pašnjaku i to tako da se svaka krava nalazi u nekom jediničnom kvadratu.
Na pašnjaku se također nalazi i m tratinčica koje se također nalaze u jediničnim kvadratima. Konačno,
na pašnjaku se nalazi i f pravokutnih ograda čije se stranice protežu rubovima jediničnih kvadrata.
Ograde se ne sijeku niti se diraju, međutim ograda se može u potpunosti nalaziti unutar područja koje
ograđuje neka druga ograda.
Sve su krave kilave te se mogu kretati samo u dva smjera – dolje ili desno. Na svojim putovanjima
mogu stati na bilo koje polje (uključujući i ona na kojima su druge krave ili tratinčice), ali ne mogu
prelaziti preko ograde.
Za svaku kravu, odredite ukupan broj tratinčica koje ta krava može posjetiti šetnjom iz svoje početne
pozicije.

Ulazni podaci
U prvom je retku cijeli broj f (0 ≤ f ≤ 200 000) iz teksta zadatka.
U svakom od sljedećih f redaka su prirodni brojevi r1 , c1 , r2 , c2 (1 ≤ r1 , c1 , r2 , c2 ≤ 106 ) koji opisuju
jednu ogradu. Preciznije, (r1 , c1 ) su koordinate (red i stupac) gornjeg-lijevog jediničnog kvadrata unutar
ograde, dok su (r2 , c2 ) koordinate donjeg-desnog jediničnog kvadrata unutar ograde. Niti jedne dvije
ograde se ne sijeku niti diraju.
U sljedećem je retku cijeli broj m (0 ≤ m ≤ 200 000) iz teksta zadatka.
U k-tom od idućih m redaka nalaze se prirodni brojevi r i c (1 ≤ r, c ≤ 106 ) koji redom predstavljaju
redak i stupac u kojem se nalazi k-ta tratinčica. Dvije tratinčice nikad se neće nalaziti na istoj lokaciji.
U sljedećem je retku cijeli broj n (0 ≤ n ≤ 200 000) iz teksta zadatka.
U k-tom od idućih n redaka nalaze se prirodni brojevi r i c (1 ≤ r, c ≤ 106 ) koji redom predstavljaju
redak i stupac u kojem se nalazi k-ta krava. Dvije krave nikad se neće nalaziti na istoj lokaciji, niti će
se neka krava nalaziti na lokaciji na kojoj se nalazi tratinčica.

Izlazni podaci
U k-tom retku izlaza treba ispisati jedan cijeli broj – ukupan broj tratinčica koje k-ta krava iz ulaza
može posjetiti šetnjom iz svoje pozicije.

17 od 19
Natjecanje timova studenata informatičara hrvatskih sveučilišta
Pula, Rijeka, Zagreb, 19. studenog 2023.

ulaz

4
2 2 8 4
1 9 4 10
6 7 9 9
3 3 7 3
9
3 4
8 4
11 5
10 7
10 8
9 8
2 8
4 11
9 11
8
1 1
5 10
6 9
3 7
7 1
4 2
7 5
3 3

izlaz

5
1
0
1
3
1
3
0

18 od 19
Natjecanje timova studenata informatičara hrvatskih sveučilišta
Pula, Rijeka, Zagreb, 19. studenog 2023.

Zadatak L: Luckasti Likovi


Vremensko ograničenje: 1 s
Memorijsko ograničenje: 512 MiB

U pravokutnoj mreži podijeljenoj na jedinične kvadrate uredno je posloženo n geometrijskih likova.


Likovi se nalaze unutar uzastopnih jediničnih kvadrata istoga retka i to tako da se unutar svakog
jediničnog kvadrata nalazi točno jedan lik. Likovi mogu biti:

• Kvadrat kojem su stranice savršeno poravnate sa stranicama jediničnih kvadrata mreže.

• Krug koji je upisan u jedinični kvadrat.

• Jednakostranični trokut kojem jedna stranica odgovara donjoj stranici jediničnog kvadrata mreže.

Likovi iz prvog probnog primjera i njihov konveksni obris

Neformalno, konveksni obris rasporeda likova je najkraća linija koja zatvara sve likove. Formalnije,
radi se o opsegu konveksne ljuske unije svih likova.
Za dani raspored likova, odredite duljinu njihovog konveksnog obrisa.

Ulazni podaci
U prvom je retku prirodan broj n (1 ≤ n ≤ 20) iz teksta zadatka.
U sljedećem se retku nalazi riječ od n znakova koja opisuje raspored likova slijeva nadesno. Svaki znak
označava jedan lik i to tako da znakovi ’S’, ’C’ i ’T’ redom označavaju kvadrat, krug i trokut.

Izlazni podaci
Ispišite duljinu konveksnog obrisa zadanih likova.
Tolerirat će se apsolutno ili relativno odstupanje od službenog rješenja za 10−6 .

Probni primjeri
ulaz ulaz

4 3
TSTC SCT

izlaz izlaz
9.088434417 7.50914177324

19 od 19

You might also like