Professional Documents
Culture Documents
Zada Cise Minarski
Zada Cise Minarski
1. (5 poena) Hrabri vojskovođa Dušan je odlučio da nagradi zapovednike u svojoj vojsci zbog
uspešno vođenih ratova. Nakon završetka ratova, Dušan je savetovao svoje zapovednike da izaberu
teritoriju kvadratnog oblika i proizvoljne veličine koju žele da kontrolišu. Interesantno, nakon što
svaki zapovednik izabere svoju teritoriju, osoba koja je dobila zadatak da ispunjava želje
zapovednika, nejaki Uroš, je uočio da postoji više kvadrata na mapi nego zapovednika u Dušanovoj
vojsci.
Kao što možete videti sa crteža iznad, neki od kvadrata mogu da dodiruju stranice ili čak da ih
seku, kreirajući još kvadrata. Nas zanima da saznamo broj različitih kvadrata koji se mogu videti na
mapi koju je primio Uroš. Pomozite nam i kreirajte program koji će, za datu mapu, učitati dužinu
stranice i poziciju kvadrata kojeg crta zapovednik, i izračunati i ispisati ukupan broj kvadrata koji se
mogu videti na mapi. Na primer, za prvi crtež prikazan gore (levo), Vaš program treba da ispiše 11
(potrebno je pronaći 2 kvadrata čija stranica je dužine 1, 7 kvadrata čija stranica je dužine 2 i 2
kvadrata čija stranica je dužine 4).
Vaš C program treba da učitava sve podatke sa standardnog ulaza. Prva linija ulaza sadrži jedan
ceo broj N (1 ≤ N ≤ 100) - broj kvadrata koje crtaju generali.
Svaka od sledećih N linija sadrži 3 cela broja: Xi, Yi (1 ≤ Xi, Yi ≤ 10000000) i Li (1 ≤ Li ≤
10000000) – Xi, Yi su kordinate donjeg levog ugla i-tog kvadrata, Li je dužina stranice i-tog
kvadrata.
Vaš program treba da ispiše na standardni izlaz tačno jedan ceo broj – broj kvadrata koji se
mogu videti na Uroševoj mapi.
Procenite vremensku i prostornu složenost Vašeg rešenja.
Napomene:
1. U nekim test primerima, kvadrati koje zapovednici crtaju će imati formu pravougaone mreže
(pogledati crtež gore desno). U ovim test slučajevima, svaka pojedinačna ćelija mreže će biti
kvadrat zadan na ulazu.
2. Voditi računa da program ne premaši vremensko ograničenje od 2 sekunde i memorijsko
ograničenje od 64 megabajta.
Test primer 1
ulaz izlaz
9 11
1 1 2
3 1 2
5 1 2
ZADACI ZA SAMOSTALAN RAD
1 3 2
3 3 2
5 3 2
5 3 2
4 1 1
6 4 2
Test primer 2
ulaz Izlaz
12 20
1 1 3
4 1 3
7 1 3
10 1 3
1 4 3
4 4 3
7 4 3
10 4 3
1 7 3
4 7 3
7 7 3
10 7 3
2. (5 poena) Marko se priprema za takmičenje u Sabiranju koje se sastoji od igre koja uključuje
N specijalnih pločica sa označenim brojčanim vrednostima na njima. Cilj igre je uzeti određen broj
pločica tako da njihova ukupna suma vrednosti bude što bliže zadatom ciljnom broju, ali ne sme
biti veća od njega.
Ulaz
Prva linija na ulazu sadrži dva cela broja N (1 ≤ N ≤ 100000) i Q (1 ≤ Q ≤ 100000) – broj različitih
pločica i broj različitih igara sa različitim ciljnim brojevima za koje program treba da nađe najbolju
sumu. Svaka od sledećih N linija opisuje jednu pločicu u formatu "Vi Pi", gde je Vi (0 ≤ Vi ≤
20000) vrednost pločice, a Pi je ID njenog prethodnika. Pločica čiji ID je i je opisana u i-toj liniji
medju ovim linijama. (0-based). Postoji najmanje jedna pločica takva da je ID prethodnika -1.
Nijedna pločica ne može sama sebi biti prethodnik. Svaka od sledećih Q linija sadrži jedan celi broj
Ti (1 ≤ Ti ≤ 2000000000) - i-ti ciljni broj.
Izlaz
Vaš program treba da štampa najbolju sumu za svaki ciljni broj (u istom redosledu u kojem su ciljni
brojevi dati na Ulazu). Ukoliko nijedna postignuta suma nije manja ili jednaka datom ciljnom broju,
treba odštampati "none" (navodnike ne štampati, tu su samo radi jasnoće).
Napomene
Procenite vremensku i prostornu složenost Vašeg rešenja.
Vremenski limit: 1 sekunda
Memorijski limit: 64 megabyte-a
Primer 1
ulaz Izlaz
8 5 3
6 -1 8
8 3 8
4 3 16
2 0 None
3 -1
13 2
5 4
4 6
4
8
9
20
2
Poznato je da će svaki trkač potrošiti tačno Ki jedinica vode kako bi prošao do kraja stazu Ti, i
svaki trkač će moći uzeti najviše Wi jedinica vode na stanici za osvežavanje Si. Ne postoji
ograničenje za količinu vode koju svaki od trkača može nositi u bilo kojem trenutku ali je vreme
(mereno u minutama) koje trkač treba da završi jednu stazu jednako broju jedinica vode koju nosi
kada započne tu stazu – tako na primer ako trkač započne stazu T1 sa 5 jedinica vode, onda će je i
završiti za 5 minuta bez obzira na količinu vode koje mora potrošiti na toj stazi.
Organizatori sada razmatraju moguće početne i završne pozicije za trku (trka mora i početi i
završiti na nekoj od stanica za osveženje). Kreirajte program u programskom jeziku C koji će, za
svaki od Q parova početnih i završnih stanica, datih na ulazu u program, izračunati i odštampati na
izlazu minimalno potrebno vreme završetka utrke za nekog optimalnog trkača.
Ulaz
Prva linija na ulazu sadrži dva cela broja N (3 ≤ N ≤ 1000) i Q (1 ≤ Q ≤ 100000) – broj staza,
broj parova početnih i završnih stanica za osveženje koje organizatori razmatraju.
Druga linija na ulazu sadrži N celih brojeva Wi (1 ≤ Wi ≤ 1000000) – broj jedinica vode na
raspolaganju na svakoj od stanica za osveženje (počevši sa stanicom S0).
Treća linija na ulazu sadrži N celih brojeva Ki (1 ≤ Ki ≤ 1000000) – broj jedinica vode
potrebnih da se završi svaka od staza (počevši sa stazom T0).
Svaka od sledećih Q linija sadrži dva međusobno različita cela broja Si i Ei (0 ≤ Si, Ei ≤ N-1) –
jedan par početnih i završnih stanica za osveženje.
Izlaz
Za svaki dati par početnih i završnih stanica, u istom redosledu u kojem su dati na ulazu, Vaš
program treba da odštampa minimalno potrebno vreme da završi trku neki optimalan trkač. Ukoliko
se trka ne može završiti, vaš program treba na izlazu da odštampa "-1" (navodnici su dati radi
jasnoće).
Napomena
Procenite vremensku i prostornu složenost Vašeg rešenja.
Vremenski limit: 1 sekunda
Memorijski limit: 64 megabyte-a
Primer 1
Ulaz izlaz
7 4 2
3 2 5 2 5 1 6 -1
2 4 3 1 6 1 2 11
ZADACI ZA SAMOSTALAN RAD
0 1 5
4 5
2 5
5 1
4. (5 poena) Sima radi kao konobar i njegov zadatak je da donese piće na plažu. Kako bi doneo pića
što je brže moguće, Sima Vas moli za pomoć kako bi odredio najbolji mogući put od hotela do
plaže, dok u isto vreme posećuje sve lokacije koje sadrže pakete pića. Na pravougaonoj ploči koja
ima R redova i C kolona, startna pozicija, lokacije sa paketima pića i plaža mogu biti predstavljeni
kao što je pokazano u ovoj tabeli:
####.##.#.#
#S..#.D#.#.
.#.....#...
.D......B.#
....D...###
Početna pozicija je označena sa 'S', plaža je označena sa 'B' (beach) a lokacije sa paketima pića
su označene sa 'D' (drinks). Sima može stati na bilo koju lokaciju koja nije ograda (ograde su
označene znakom '#').
Vaš zadatak je da napišete C program koji će računati i štampati na izlazu minimalan broj
koraka koje Sima mora napraviti kako bi krenuo iz hotela, obišao sve lokacije sa paketima pića i na
kraju stigao do plaže. U svakom koraku Sima može ići na susednu vertikalnu poziciju ili susednu
horizontalnu poziciju u odnosu na njegovu trenutnu poziciju. Sima ne može posetiti poziciju koja
nije prikazana na mapi: drugim rečima, on ne može izaći sa mape – čak i ako nema ograde na ivici
mape koja bi ga u tome sprečavala.
Ulaz
Prva linija ulaza sadrži dva cela broja R i C (5 ≤ R, C ≤ 100) - R je broj redova na mapi, a C je
broj kolona na mapi.
Svaka od narednih R linija sadrži C karaktera Mij ('.', '#', 'S', 'D' ili 'B'). Ovi karakteri
predstavljaju zadatu strukturu mape. Postoji tačno jedan karakter 'S', tačno jedan 'B' karakter i
najviše 3 lokacije sa paketima pića ('D' karakteri na mapi). Uvek će biti najmanje jedan karakter
'D' na mapi.
Izlaz
Vaš program treba na izlazu da odštampa tačno jedan celi broj – minimalan potreban broj
koraka da bi se donela sva pića na plažu. Ukoliko je uzimanje paketa pića i dolazak na plažu
nemoguć, odštampati na izlazu -1.
Napomena
Procenite vremensku i prostornu složenost Vašeg rešenja.
Vremenski limit: 1 sekunda
Memorijski limit: 64 megabyte-a
Primer 1
Ulaz Izlaz
5 6 9
#S.###
#...##
ZADACI ZA SAMOSTALAN RAD
.#..##
D..B#.
##.#..
Primer 2
Ulaz izlaz
5 6 15
#S.###
#...##
D#..##
DB...D
##.#.#
Primer 2
Ulaz Izlaz
7 16
1 5 2 5 1 0
5 1 6 0 4 4
5 1 2 5 5 4
ZADACI ZA SAMOSTALAN RAD
4 3 6 1 3 4
4 5 0 0 5 1
5 3 4 3 4 1
3 4 5 5 1 4
Objašnjenje za primer 1: Dve kutije za medalju izgledaju isto (druga kutija izgleda isto kao
prva, ali je rotirana jednom udesno).