Java Zadaci

18
Zadatak 1 – Zbir (1 sec, 512MB) Posmatramo skup od N uzastopnih prirodnih brojeva. Najmanji element tog skupa označimo sa M. Napišite program koji za date vrijednosti M i N odreñuje sumu vrijednosti cifara koje su upotrebljene za zapisivanje svih elemenata datog skupa. Ulazni podaci: Prvi red ulaza sadrži dva cijela pozitivna broja M i N razdvojena sa po jednim blankom. Izlazni podaci: Izlaz sadrži jedan red u kojem se nalazi jedan cio broj – suma svih cifara upotrebljenih za predstavljanje elemenata datog skupa. Sistem ocjenjivanja: Ograničenja Podzadatak Bodovi M, N 1 30 M + N 10 16 , N 10 8 2 70 M + N 10 16 Primjeri: Ulaz Izlaz 74 9 108 Napomena: Pojašnjenje primjera Skup koji posmatramo je: {74,75,76,77,78,79,80,81,82} Rezultat programa je sljedeća suma: 7+4+7+5+7+6+7+7+7+8+7+9+8+0+8+1+8+2, tj. 108. Zadatak 2 – Kule (2 sec, 512MB) Petar se igra sa kockicama i napravio je N kula od kockica. Kule su rasporeñene u jednom redu, jedna pored druge, i numerisane su brojevima od 1 do N. Visina i-te kule je cio pozitivan broj p i (1p i N), koji je jednak broju kockica od kojih je napravljena kula. Visine kula su meñusobno različite tj. ne postoje dvije kule koje imaju jednake visine. Razgledajući svoju rukotvorinu, Petar je počeo da izvodi neke matematičke teorije i „izrodio“ je sljedeću definiciju: „kažemo da kula broj i pokriva kulu broj j (j<i), ako je p j <p i i meñu njima ne postoji kula sa brojem k (j<k<i), takva da je p j <p k .“ Ova mu se definicija toliko dopala da je odlučio da za svaku kulu prebroji koliko drugih kula ona pokriva. Dobijene brojeve je zapisao u niz L 1 , L 2 ,……,L N (L i je broj kula koje pokriva kula broj i). Napišite program Towers koji pomaže Petru da riješi ovaj zadatak,tj.da na osnovu zadatih visina kula Ulazni podaci: Prvi red ulaza sadrži jedan pozitivan cio broj N – broj kula. Sljedećih N redova sadrže po jedan pozitivan cio broj p i – visinu i-te kule. Garantuje se da će podaci biti ispravni tj. svi brojevi pi buće različiti i pripadati skupu {1,2,...,N}. Izlazni podaci: Štampati N nenegativnih cijelih brojeva L i , po jedan broj u redu – broj kula koje pokriva i- ta kula. Sistem ocjenjivanja: Ograničenja: Za 10% testova važi 2 N 10; Za 30% testova važi 2 N 15; Za 60% testova važi 2 N 6000; Za 100% testova važi 2 N 1 000 000 1 p i N, svi p i različiti Svaki test se ocjenjuje odvojeno. Primjeri: Ulaz Izlaz 6 5 6 4 2 1 3 0 1 0 0 0 2 Pojašnjenje primjera: Kula 2 pokriva kulu 1; kule sa brojevima 3, 4 i 5 ništa ne pokrivaju, a kula 6 pokriva kule 4 i 5.

Transcript of Java Zadaci

Page 1: Java Zadaci

Zadatak 1 – Zbir (1 sec, 512MB) Posmatramo skup od N uzastopnih prirodnih brojeva. Najmanji element tog skupa označimo sa M. Napišite program koji za date vrijednosti M i N odreñuje sumu vrijednosti cifara koje su upotrebljene za zapisivanje svih elemenata datog skupa. Ulazni podaci: Prvi red ulaza sadrži dva cijela pozitivna broja M i N razdvojena sa po jednim blankom. Izlazni podaci: Izlaz sadrži jedan red u kojem se nalazi jedan cio broj – suma svih cifara upotrebljenih za predstavljanje elemenata datog skupa. Sistem ocjenjivanja:

Ograničenja Podzadatak Bodovi

M, N 1 30 M + N ≤ 1016, N ≤ 108 2 70 M + N ≤ 1016

Primjeri: Ulaz Izlaz 74 9 108

Napomena: Pojašnjenje primjera Skup koji posmatramo je: {74,75,76,77,78,79,80,81,82} Rezultat programa je sljedeća suma: 7+4+7+5+7+6+7+7+7+8+7+9+8+0+8+1+8+2, tj. 108. Zadatak 2 – Kule (2 sec, 512MB) Petar se igra sa kockicama i napravio je N kula od kockica. Kule su rasporeñene u jednom redu, jedna pored druge, i numerisane su brojevima od 1 do N. Visina i-te kule je cio pozitivan broj pi (1≤ pi≤N), koji je jednak broju kockica od kojih je napravljena kula. Visine kula su meñusobno različite tj. ne postoje dvije kule koje imaju jednake visine. Razgledajući svoju rukotvorinu, Petar je počeo da izvodi neke matematičke teorije i „izrodio“ je sljedeću definiciju: „kažemo da kula broj i pokriva kulu broj j (j<i), ako je pj<pi i meñu njima ne postoji kula sa brojem k (j<k<i), takva da je pj<pk.“ Ova mu se definicija toliko dopala da je odlučio da za svaku kulu prebroji koliko drugih kula ona pokriva. Dobijene brojeve je zapisao u niz L1, L2,……,LN (Li je broj kula koje pokriva kula broj i). Napišite program Towers koji pomaže Petru da riješi ovaj zadatak,tj.da na osnovu zadatih visina kula Ulazni podaci: Prvi red ulaza sadrži jedan pozitivan cio broj N – broj kula. Sljedećih N redova sadrže po jedan pozitivan cio broj pi – visinu i-te kule. Garantuje se da će podaci biti ispravni tj. svi brojevi pi buće različiti i pripadati skupu {1,2,...,N}. Izlazni podaci: Štampati N nenegativnih cijelih brojeva Li, po jedan broj u redu – broj kula koje pokriva i-ta kula. Sistem ocjenjivanja: Ograničenja:

Za 10% testova važi 2 ≤ N ≤ 10; Za 30% testova važi 2 ≤ N ≤ 15; Za 60% testova važi 2 ≤ N ≤ 6000; Za 100% testova važi 2 ≤ N ≤ 1 000 000 1 ≤ pi ≤ N, svi pi različiti

Svaki test se ocjenjuje odvojeno. Primjeri: Ulaz Izlaz 6

5

6

4

2

1

3

0

1

0

0

0

2

Pojašnjenje primjera: Kula 2 pokriva kulu 1; kule sa brojevima 3, 4 i 5 ništa ne pokrivaju, a kula 6 pokriva kule 4 i 5.

Page 2: Java Zadaci

Zadatak 3 – Sladoled U kafiću možete kupiti ili 3 kugle sladoleda ili 5 kugli sladoleda. Da li je moguće kupiti tačno N kugli? Ulaz: Unosi se jedan cio broj N ( 1 ≤ N ≤ 10000) . Izlaz: Štampati YES ili NO. Ulaz Izlaz

3 YES

1 NO

Zadatak 4 – Razlomci Odrediti najveći pravi neskrativi razlomak čiji je zbir brojioca i imenioca jednak broju n. Ulaz: Učitava se cio broj n (3 ≤ n≤ 1000). Izlaz: Štampati brojilac i imenilac datog razlomka. Ulaz Izlaz

10 3 7

23 11 12

Zadatak 5 – Srebrna medalja Aleksa je učestvovao na takmičenju u hokejbolu i osvojio srebrnu medalju. Poznato je da svi učesnici takmičenja koji su osvojili isti broj bodova osvajaju istu medalju. Dodijeljene su zlatne, srebrne i bronzane medalje. Odrediti koliko je bodova osvojio Aleksa. Ulaz: Prvi red – cio broj N (2 ≤ N ≤ 1000), broj takmičara. U drugom redu, N pozitivnih cijelih brojeva – bodovi takmičara. Izlaz: Štampati jedan cio broj – Aleksine bodove.

Ulaz Izlaz

5

4 3 3 1 2

3

8

1 2 5 3 5 1 1 6 2

5

Zadatak 6 – Simetrični niz Niz brojeva je simetričan ako se isto čita slijeva udesno i zdesna ulijevo. Sljedeći nizovi su simetrični: 1 2 3 4 5 4 3 2 1

1 2 1 2 2 1 2 1

Dat je proizvoljni niz brojeva. Koliko mu najmanje brojeva treba dopisati sa desne strane da se dobije simetrični niz. Ulaz: Unosi se cio broj N, a zatim N cifara. Izlaz: Štampati u prvom redu koliko se elemenata dodaje, a u drugom redu tražene elemente.

Ulaz Izlaz

9

1 2 3 4 5 4 3 2 1

0

5

1 2 3 4 5

4

4 3 2 1

5

1 2 1 2 2

3

1 2 1

Zadatak 7 – Kuglice U jednoj računarskoj igri igrač postavlja u liniju kuglice različitih boja. Kada se obrazuje neprekidni lanac od 3 ili više kuglica iste boje, one se uklanjaju iz linije. Ostale kuglice se približavaju jedna drugoj i situacije sa uništavanjem može se ponoviti. Napisati program koji za datu situaciju odreñuje koliko kuglica će biti uništeno. Naravno, neprekidnih lanaca iste boje dužine ne manje od 3 može biti najviše jedan. Ulaz: Dat je broj kuglica u liniji N (najviše 1000) i zatim N brojeva koji opisuju boje kuglica (od 0 do 9, svakoj boji odgovara jedna cifra). Izlaz: Štampati jedan cio broj – koliko će kuglica biti uništeno.

Ulaz Izlaz

5 1 3 3 3 2 3

10 3 3 2 1 1 1 2 2 3 3 10

Zadatak 9 – Taksi Poslije dugog sastanka, direktor Mirko je pozvao više taksija za sve rukovodioce koji su bili na sastanku. Mirko zna koliko je rastojanje u kilometrima od firme do stana svakog od rukovodilaca. Svaki taksi ima svoju tarifu po kilometru. Na žalost, svi rukovodioci stanuju u različitim dijelovima grada, pa se svaki od njih vozi sam u taksiju. Sada Mirko želi da rasporedi rukovodioce po taksijima tako da ukupna cijena prevoza bude najmanja moguća (jer taksi plaća firma). Ulaz: Prvi red sadrži broj N (1 ≤ N ≤ 1000) – broj rukovodilaca na sastanku. Drugi red sadrži N brojeva – rastojanja u kilometrima (ne veće od 1000). Treći red sadrži N brojeva – tarife taksija po kilometru (prirodni brojevi ne veći od 10000). Izlaz: Štampati N brojeva, gdje i-ti broj označava taksi koji treba da preveze rukovodioca i do stana.

Page 3: Java Zadaci

Ulaz Izlaz

3

10 20 30

50 20 30

1 3 2

5

10 20 1 30 30

3 3 3 2

1 2 3 5 4

Zadatak 10 – Bezglasni palindrom Dozvoljena je sljedeća operacija: u riječi uzmemo prvi suglasnik i zamijenimo mjesta sa posljednjim suglasnikom; drugi suglasnik zamijeni mjesta sa pretposljednjim suglasnikom, itd. Ako poslije te operacije opet dobijemo polaznu riječ, tada takvu riječ nazivamo bezglasni palindrom (npr. takve su riječi sos, rare, rotor, gong, karaoke). Napisati program koji provjerava da li je data riječ bezglasni palindrom. Ulaz: Unosi se jedna riječ, dužine ne veće od 20, samo mala slova. Izlaz: Štampati YES ili NO, Ulaz Izlaz

Tennete YES

Karaoke YES

Disk NO

Zadatak 11 – Lozinka Lozinka je jaka ako je njena dužina najmanje 8 simbola, i sadrži mala slova, velika slova i cifre. Napisati program koji provjerava da li je lozinka jaka. Ulaz: Unosi se jedna riječ, dužine ne veće od 100, koja sadrži mala i velika slova i cifre. Izlaz: Štampati YES ili NO,

Ulaz Izlaz

1Aa NO

AaBbCc12 YES

AAAaaaAAA YES

Zadatak 12 – Metod sendviča Metod sendviča za šifriranje sastoji se u sljedećem: sva slova riječi se numerišu tako da prvo slovo dobije broj 1, posljednje broj 2, drugo slovo broj 3, pretposljednje broj 4 itd. Zatim se sva slova zapisuju redom po brojevima, i na kraju se doda simbol „#“. Npr. riječ «sandwich» se šifruje kao «shacnidw#». Napišite program koji dešifruje poruku koja je šifrovana metodom sendviča. Ulaz: Unosi se šifrovana riječ, dužine ne veće od 100. Izlaz: Štampati jednu riječ – dešifrovani ulazni string.

Ulaz Izlaz

Aabrrbaacda# Abracadabra

shacnidw# sandwich

Zadatak 13 – Sokovi Mirko i Slavko kupili su nekoliko litara soka od pomorandže, jabuke i ananasa. Pripremaju koktel po receptu kojeg su pronašli na Internetu. Nažalost, prekasno su shvatili da kupovinu takoñe treba obaviti prema receptu, pa sada imaju višak nekih sokova. Napišite program koji će izračunati za svaki sok koliko litara viška su kupili, znajući da Mirko i Slavko žele popiti što je moguće više koktela. Vaš program treba da iz jednog reda učita tri cijela broja A, B, C, (1 ≤ A, B, C ≤ 500), količina soka od pomorandže, jabuke i ananasa koje su kupili Mirko i Slavko. Iz sljedećeg reda treba učitati tri broja I, J, K, (1 ≤ I, J, K ≤ 50), proporciju soka od pomorandže, jabuke i ananasa u receptu. U jedinom redu izlaza treba štampati tri broja, broj litara soka od pomorandže, jabuke i ananasa koji će preostati nakon što Mirko i Slavko naprave najveću moguću količinu koktela.

Ulaz Izlaz

10 10 10

3 3 3

0 0 0

9 9 9

3 2 1

0 3 6

Zadatak 14 – Broj nizova (1 sec, 512MB) Posmatrajmo sve k-tocifrene brojeve sastavljene od cifara {0,1,...,n} pri čemu se uzimaju u obzir i brojevi sa vodećom nulom i cifre se mogu ponavljati. Npr. za svi trocifreni brojevi sastavljeni od cifara {0,1} su: 000, 001, 010, 011,100, 101, 110 i 111, Napišite program koji za date vrijednosti k i n odreñuje koliko ima takvih brojeva.

Page 4: Java Zadaci

Ulazni podaci: Prvi red ulaza sadrži dva cijela pozitivna broja k i n razdvojena sa po jednim blankom (1≤ n ≤ 10, 1≤ k ≤ 10). Izlazni podaci: Izlaz sadrži jedan red u kojem se nalazi jedan cio broj – broj k-tocifrenih brojeva. Primjeri: Ulaz Izlaz 3 1 8

2 2 9

Zadatak 15 – Zbir cifara (1 sec, 512MB) Posmatrajmo sve k-tocifrene brojeve sastavljene od cifara {0,1,...,n} pri čemu se uzimaju u obzir i brojevi sa vodećom nulom i cifre se mogu ponavljati. Npr. za svi trocifreni brojevi sastavljeni od cifara {0,1} su: 000, 001, 010, 011,100, 101, 110 i 111, Napišite program koji za date vrijednosti k i n odreñuje sumu vrijednosti cifara koje su upotrebljene za zapisivanje svih takvih brojeva Ulazni podaci: Prvi red ulaza sadrži dva cijela pozitivna broja k i n razdvojena sa po jednim blankom (1≤ n ≤ 10, 1≤ k ≤ 10). Izlazni podaci: Izlaz sadrži jedan red u kojem se nalazi jedan cio broj – suma vrijednosti svih cifara upotrebljenih za predstavljanje k-tocifrenih brojeva. Primjeri: Ulaz Izlaz 3 1 12

2 2 18

Zadatak 16 – Redni broj (1 sec, 512MB) Posmatrajmo sve k-tocifrene brojeve sastavljene od cifara {0,1,...,n} pri čemu se uzimaju u obzir i brojevi sa vodećom nulom i cifre se mogu ponavljati. Npr. za svi trocifreni brojevi sastavljeni od cifara {0,1}, od najmanjeg ka najvećem, su: 000, 001, 010, 011,100, 101, 110 i 111. Aleksu zanima koji je r-ti po veličini meñu ovim brojevima. Npr. peti broj po veličini je 100. Napišite program koji za date vrijednosti k, n i r štampa r-ti po veličini broj. Ulazni podaci: Prvi red ulaza sadrži tri cijela pozitivna broja k, n i r razdvojena sa po jednim blankom (1≤ n ≤ 10, 1≤ k ≤ 10, 1≤ r ≤ 1010). Izlazni podaci: Izlaz sadrži jedan red u kojem se nalazi jedan cio broj – r-ti po veličini k-tocifreni broj. Primjeri: Ulaz Izlaz 3 1 5 100

2 2 8 21

Zadatak 17 – Po redu (1 sec, 512MB) Posmatrajmo sve k-tocifrene brojeve sastavljene od cifara {0,1,...,n} pri čemu se uzimaju u obzir i brojevi sa vodećom nulom i cifre se mogu ponavljati. Npr. za svi trocifreni brojevi sastavljeni od cifara {0,1}, od najmanjeg ka najvećem, su: 000, 001, 010, 011,100, 101, 110 i 111. Aleksu zanima koji je po veličini broj koji je zamislio. Npr. ako je Aleksa zamislio broj 011, tada je taj broj četvrti po veličini. Napišite program koji za date vrijednosti k, n i zamišlejni broj r štampa koji je po veličini broj r. Ulazni podaci: Prvi red ulaza sadrži dva cijela pozitivna broja k i n razdvojena sa po jednim blankom (1≤ n ≤ 10, 1≤ k ≤ 10, 1≤ r ≤ 1010). U drugom redu je Aleksin zamišljeni broj, zapisan sa vodećim nulama. Izlazni podaci: Izlaz sadrži jedan red u kojem se nalazi jedan broj – redni broj Aleksinog broja. Primjeri: Ulaz Izlaz 3 0

011

4

2 2

21

8

Zadatak 18 – Šahovska tabla Ana je podijelila tablu veličine m х n na polja veličine 1 х 1 i svako polje obojila ili crnom ili bijelom bojom, kao šahovsku tablu. Aleksu zanima kojih polja ima više: crnih ili bijelih. Da bi to otkrio, Aleksa zamolio Anu da mu kaže koja je boja j-tog polja u i-tom redu. Na osnovu te

Page 5: Java Zadaci

informacije, Aleksa može da dobije odgovor. Pomozite Aleksi i napišite program koji odreñuje kojih polja ima više na tabli: crnih ili bijelih. Ulaz: U jednom redu dato je 5 cijelih brojeva: m, n, i, j, c (1 ≤ m, n ≤ 109, 1 ≤ i ≤ m, 1 ≤ j ≤ n, с = 0 ili с = 1). Ako je c = 0, tada je j-to polje u i-tom redu crne boje, a ako je c = 1 – tada je j-to polje u i-tom redu bijele boje. Izlaz: Štampati jednu riječ: black – ako crnih polja ima više, white – ako bijelih polja ima više, equal – ako ima jednak broj crnih i bijelih polja.

Ulaz Izlaz Napomena

3 5 1 1 0 black

3 5 2 1 0 white

4 4 1 1 1 equal

Zadatak 19 – Pravougaonici (1 sec, 256MB) Pravougaonik čije su stranice cijeli brojevi ima površinu izmeñu A i B (uključivo) i obim izneñu C i D (uključivo)., gdje su A, B, C i D pozitivni cijeli brojevi Odrediti koliko ima takvih pravougaonika za date A, B, C i D, ako se pravougaonici PxQ i QxP smatraju jednakim. Ulaz: U jednom redu četiri cijela broja A, B, C i D razdvojena sa po jednim blankom, (1 ≤A≤B ≤109, 4≤C≤D≤109). Izlaz: Štampati traženi broj pravougaonika.

Ulaz Izlaz

2 10 4 8 3

Zadatak 20 – Kviz (1 sec, 256MB) Aleksandra i Biljana su pobjednice kviza „Sveznalica“ i imaju pravo izabrati nagrade. Sponzori su obijezbedili n nagrada, numerisanih brojevima od 1 do n, pri čemu svaka nagrada ima pozitivnu vrijednost.. Princip izbora nagrada je sljedeći: organizatori zadaju broj k (1 ≤ k ≤ n/3) pa Aleksandra i Biljana mogu izabrati k uzastopnih nagrada od ponuñenih. Prvo bira Aleksandra, pa Biljana, ali Biljana ne može izabrati nagrade koje je već izabrala Aleksandra. Kako njih dvije nisu baš najbolje prijateljice, Aleksandra je odlučila da izabere svoje nagrade tako da ukupni zbir vrijednosti nagrada koje ostanu Biljani bude što je moguće manji. Aleksandra ne brine koliki če biti zbir vrijednosti njenih nagrada, već samo da Biljanin zbir bude što manji. Napišite program koji na osnovu datih vrijednosti poklona i broja k odreñuje najmanji broj x takav da Aleksandra postiže da je ukupna vrijednost Biljaninih poklona nije veća od x. Ulaz: U prvom redu su dva cijela broja n i k (3 ≤n ≤100000, 1 ≤k ≤n/3). U drugom redu se nalazi n pozitivnih cijelih brojeva ai, razdvojenih sa po jednim blankom (1 ≤ ai ≤ 109), koji predstavljaju vrijednosti nagrada 1,2,...,n Izlaz: Štampati jedna cio broj // minimalno x takvo da je Aleksandra sigurna da je Biljanin zbir vrijednosti nagrada ne veći od x.

Ulaz Izlaz Napomena

10 2

1 2 4 5 2 4 2 2 1 6

7 Aleksandra npr. može izabrati četvrtu i petu

nagradu, tako da Biljana može dobiti u zbiru

najviše 7, ako optimalno izabere devetu i desetu

nagradu.

Zadatak 21 – Kružna linija (1 sec, 256MB) U gradu u kojem žive Aleksa i Boris stanice metroa su rasporeñene po krugu i numerisane su brojevima od 1 do n. Dio linije metroa izmeñu dvije stanice nazivamo odsječkom. Vozovi se po liniji kreću ili u smjeru kretanja kazaljke sata ili u suprotnom smjeru, pa se vožnja od jedne do druge stanice može obaviti na dva načina. Minimalni broj odsječaka koje je potrebno proputovati da bi stigli od jedne do druge stanice nazivamo rastojanjem tih stanica. Aleksa i Boris su uočili da ako zamisle neku stanicu X i zapišu dva broja Da – rastojanje od Aleksine stanice do stanice X i Db – rastojane od Boirove stanice do stanice X, tada se na osnovu dobijenog para [Da, Db] može jednoznačno odrediti stanica X . Na primjer, ako je n=4, Aleksina stanica 1 a Borisova je 2, tada se stanica 1 zadaje parom [0, 1], stanica 2 parom [1, 0], stanica 3 parom [2,

Page 6: Java Zadaci

1] i stanica 4 parom [1, 2]. Njihov drug Stefan, koji živi u susjednom gardu, ne zna na kojim stanicama žive Aleksa i Boris. Da bi ih pronašao, njega zanima koliko postoji varijnati parova A, B takvih da Aleksa živi na stnaici A, Boris na stanici B i da su ispunjeni gore opisani uslovi. Napišite program koji po po broju stanica na kružnoj liniji odreñuje traženi broj varijanti. Ulaz: U jednom redu unosi ce cio broj n (1 ≤A≤B ≤109, 4≤C≤D≤109). Izlaz: Štampati traženi broj varijanti. Ulaz Izlaz Napomena za primjer 1

4 8

5 20

Aleksa živi na stanici 1 a Boris na stanici 2; Aleksa živi na stanici 1 a Boris na stanici 4 Aleksa živi na stanici 2 a Boris na stanici 1; Aleksa živi na stanici 2 a Boris na stanici 3 Aleksa živi na stanici 3 a Boris na stanici 2; Aleksa živi na stanici 3 a Boris na stanici 4 Aleksa živi na stanici 4 a Boris na stanici 1; Aleksa živi na stanici 4 a Boris na stanici 3

Zadatak 22 – Šuma (1 sec, 256MB) Potrebno je raskrčiti šumu koja ima X stabala. Drvosječa Filip može posjeći A stabala dnevno ali odmara svakog K-tog dana (K-tog. 2K-tog, 3K-tog...). Drvosječa Marko može posjeći B stabala dnevno ali odmara svakog M-tog dana. Drvosječe rade paralelno, pa ako istog dana rade onda posijeku ukupno A+B stabala. Napišite program koji za date brojeve A, K, B, M i X odrediti za koliko dana će dana Filip i Marko iskrčiti cijelu šumu. Ulaz: U jednom redu pet cijelih broja A, K, B, M i X razdvojena sa po jednim blankom, (1 ≤A,B ≤109, 2≤K, M≤109,1 ≤x ≤1018). Izlaz: Štampati traženi broj dana.

Ulaz Izlaz

2 4 3 3 25 7

Napomena: U datom primjeru: Prvi dan: Filip 2 stabla, Marko 3, ukupno 5 Drugi dan: Filip 2 stabla, Marko 3, ukupno 10 Treći dan: Filip 2 stabla, Marko odmara, ukupno 12 Četvrti dan: Filip odmara, Marko 3, ukupno 15 Peti dan: Filip 2 stabla, Marko 3, ukupno 20 Šesti dan: Filip 2 stabla, Marko odmara, ukupno 22 Sedmi dan: Filip 2 stabla, Marko preostalojedno stablo, ukupno 25 Bodovanje Grupa 1 (32 boda): 1 ≤ X ≤ 1000, 1 ≤ A, B ≤ 1000, 2 ≤ K, M ≤ 1000 Grupa 2 (10 bodova): 1 ≤ X ≤ 1018 , X < K, X < M Grupa 3 (10 bodova): 1 ≤ X ≤ 1018 , K = M. Grupa 4 (48 bodova): 1 ≤ X ≤ 1018, 1 ≤ A, B ≤ 109, 2 ≤ K, M ≤ 1018 Zadatak 23 – Kraljica Na šahovskoj tabli date se koordinate kraljice i još jedne figure. Odredite da li kraljica napada drugu figuru. Ulaz: Unose se 4 cijela broja – pozicije kraljice (tj. red i kolona) i pozicija druge figure. Svi brojevi su cijeli i izmeñu 1 i 8. Izlaz: Štampati riječ YES ako kraljica napada datu figuru ili riječ NO ako je ne napada. Primjer 1 Primjer 2 Ulaz: 1

1

8

1

Izlaz: YES

Ulaz: 3

2

8

3

Izlaz: NO

Zadatak 24 – Koordinate susjeda

Page 7: Java Zadaci

Za polje sa koordinatama (x, y) u tabeli dimenzija M × N štampajte koordinate njenih susjeda. Susjedi su polja koja imaju zajedničku stranicu. Ulaz: Dati su prirodni brojevi M, N, x, y (1 ≤ x ≤ M ≤ 109, 1 ≤ y ≤ N ≤ 109). Izlaz: Štampati koordinate susjeda u proizvoljnom poretku. Primjer 1 Ulaz: 3 3

2 2

Izlaz: 2 1

1 2

2 3

3 2

Zadatak 25 – Marke Za dati broj n završite frazu "Dobio sam ..." jednim od mogućih nastavaka: "n maraka", "n marke", "n marka", pravilno mijenjajući riječ "marka". Ulaz: Dat je broj n (n<109). Izlaz: Štampati učitani broj i jednu riječ: marka, marke ili maraka. Npr. 12 maraka, 2 marke, 505 maraka. Izmeñu broja i riječi štampati tačno jedan razmak. Primjer 1 Ulaz: 1

Izlaz: 1 marka

Zadatak 26 – Kvadranti Date su koordinate dvije tačke u ravni. Odrediti da li tačke leže u istom kvadrantu, ako je poznato da nijedna od koordinata nije 0. Ulaz: Unose se 4 broja: koordinate prve tačke (x1, y1) i koordinate druge tačke (x2, y2). Izlaz: Štampati riječ YES, ako tačke pripadaju istom kvadrantu ili NO ako ne pripadaju. Primjer 1 Ulaz: 3

3

5

1

Izlaz: YES

Zadatak 27 – Postoji li trougao? Postoji li trougao čije su dužine stranica data tri prirodna broja a, b, c? Ulaz: Unose se tri prirodna broja a, b, c, po jedan u redu. Izlaz: Štampati riječ YES, ako trougao postoji ili NO ako ne postoji. Primjer 1 Ulaz: 3

4

5

Izlaz: YES

Zadatak 28 – Rimski brojevi Dat je broj X. Prevesti ga u rimski broj. Ulaz: Dat je broj X (1 ≤ X ≤ 100). Izlaz: Štampati odgovarajući rimski broj. Primjer 1 Primjer 2 Primjer 3 Ulaz: Ulaz: Ulaz:

Page 8: Java Zadaci

4

Izlaz: IV

19

Izlaz: XIX

46

Izlaz: XLVI

Zadatak 29 – Ruski honorar Marko i Petar rade za jednu rusku kompaniju i honorar dobijaju u rubljama. Honorar iznosi K rubalja i biće uplaćem na Markov račun, jer Petar još nema svoj račun u banci. Njih dvojica su doputovali u Moskvu i na šalteru podižu svoj honorar. Mogu li podijeliti tih K rubalja na dva jednaka dijela, bez obzira na koji način im bude isplaćen honorar?

Ulaz: Dat je broj K – iznos koji dobijaju Marko i Petar (1 ≤ K ≤ 100 000). Izlaz: Štampati riječ YES, ako je dati iznos moguće podijleti na dva jednaka dijela, bez obzira na koji je način iznos isplaćen. Ruske rublje se izdaju u sljedećim novčanicama: 1 , 2 , 5 , 10 , 50 , 100 , 500 , 1000 i 5000 rubalja. Primjedba: Postoji 6 grupa testova. Bodovi se dobijaju ako proñete sve testove u grupi.

• Testovi 1–3. Testovi iz uslova, 0 bodova.

• Testovi 4–9. U ovoj grupi testova je K < 10, 20 bodova.

• Testovi 10–18. U ovoj grupi testova je 10 ≤ K < 100, 20 bodova.

• Testovi 19–29. U ovoj grupi testova je 100 ≤ K < 1000, 20 bodova.

• Testovi 30–42. U ovoj grupi testova je 1000 ≤ K < 10 000, 20 bodova.

• Testovi 43–51. U ovoj grupi testova je 10 000 ≤ K ≤ 100 000, 20 bodova.

Primjer 1 Primjer 2 Primjer 3 Ulaz: 7

Izlaz: NO

Ulaz: 24

Izlaz: YES

Ulaz: 10

Izlaz: NO

Napomena: U primjeru 3, ako se isplati jedna novčanica od 10 rubalja ili 5 novčanica po 2 rublje, Petar i Marko ne mogu podijeliti honorar. Zadatak 30 – Voda Pandoranci su napredna vanzemaljska rasa koja tajno živi na mnogim planetama. Na pustinjskoj planeti Arakis, voda je, poslije zlata, glavna valuta. Na početku Pandoranci posjeduju neku količinu zlata. Da bi uvećali svoje rezerve zlata, oni će jednog dana cio svoj kapital u zlatu uložiti u kupovinu vode , pa će cjelokupnu količinu vode prodati nekog od sljedećih dana. Na taj način zaradiće zlata kolika je razlika izmeñu početne i krajnje količine zlata. Cilj im je da maksimizuju svoju dobit. Vas su unajmili da napište program koji će im pomoći da odrede kada treba da kupe a kada da prodaju. Ulaz: U prvom redu je broj N – broj dana na planeti Arakis. U

drugom redu je N cijelih brojeva a i (1 ≤ i ≤ N , 1 ≤ ai ≤ 5000), koji predstavljaju cijenu vode na planeti Arakis u i-tom danu. Izlaz: Štampati dva cijela broja. Prvi broj je redni broj dana kada treba kupiti vodu, a drugi broj je redni broj dana kada treba prodati vodu. Dani su numerisani od jedinice. Ako ima više takvih parova, štampati bilo koji. Ako nije moguće obaviti kupovinu i prodaju, štampati dvije nule. Primjedba: Postoje 3 grupa testova. Bodovi se dobijaju ako proñete sve testove u grupi.

• Testovi 1–2. Testovi iz uslova, 0 bodova.

• Testovi 3–7. U ovoj grupi testova je 2 ≤ N ≤ 1000, svaki test po 10 bodova.

• Testovi 8–12. U ovoj grupi testova je 2 ≤ N ≤ 100 000, svaki test po 10 bodova.

Primjer 1 Primjer 2 Ulaz: Ulaz:

Page 9: Java Zadaci

6

10 3 5 3 11 9

Izlaz: 2 5

4

5 5 5 5

Izlaz: 0 0

Zadatak 31 – Slonovi i mamuti Na planeti Elefantis u N različitih kućica žive N slonova. Zli mamuti su napali njihovu planetu, pa slonovi podižu ograde oko svojih kuća u cilju zaštite. Što više ograda podignu, to se osjećaju sigurnijim. Sad je slonovima potrebna pomoć da odrede koliko ograda treba da podignu. Napišite program koji odreñuje koliko se maksimalno ograda može podiće ako:

• Svaka ograda se podiže oko najmanje jedne kuće; • Ograde se ne smije sjeći; • Ne postoje dvije ograde koje ograničavaju jedan isti skup kuća; • Dimenzije kuća i debljinu ograde možete zanemariti.

Ulaz: U prvom redu je broj N – broj kuća na palneti (0 ≤ N ≤ 109). Izlaz: Štampati jedan cio broj – maksimalni broj ograda. Primjer 1 Napomena: ograde za dati primjer Ulaz: 2

Izlaz: 3

Zadatak 32 – Trg

Centralni gradski trg glavnog grad Flatlandije ima oblik kvadrata dimenzije N ×N i popoločan je

bijelim kvadratnim kamenim pločama dimenzije 1 ×1 metar. Glavni arhitekta je odlučio da promijeni izgled trga tako da dio ploča zamijeni sivim kamenim pločama i dobije izgled spirale koja počinje u centru trga (vidi sliku).

Koliko je potrebno sivih ploča da se postigne željeni izgled trga. Napišite program koji odreñuje

traženi broj sivih ploča. Ulaz: U prvom redu je broj N (1 ≤ N ≤ 5· 104) – dimenzije trga u

pločama. Izlaz: Štampati riječ „impossible“ ako nije moguće popločati trg na opisani način. Ako je to moguće, štampati jedan cio broj – broj sivih ploča. Primjer 1 Primjer 2 Ulaz: 9

Izlaz: 49

Ulaz: 7

Izlaz: impossible

Page 10: Java Zadaci

Zadatak 33 – Olimpijade Moderne olimpijske igre počele su da se održavaju 1896. godine, a zimske olimpijske igre od 1924. godine, svake četvrte godine. MOK je od 1992. godine promijenio raspored, pa se zimske igre održavaju 1994. godine i dalje svake četvrte godine, a ljetnje 1996. godine i dalje svake četvrte godine. Poznato je da 1916., 1940. i 1944. godine igre nisu održane zbog ratnih dejstava, a 1906. godine su održane vanredne igre. Napiši program koji na osnovu unijete godine odreñuje da li su te godine održane olimpijske igre i da li su bile ljetnje ili zimske. Ulaz: U

prvom redu je godina N (1800 ≤ N ≤ 2014). Izlaz: Štampati riječ „winter“ ako su održane samo

zimske igre ili riječ „summer“ ako su održane samo ljetnje igre ili „winter summer“ ako su održane i ljetnje i zimske igre ili „nothing“ ako igre nisu održane. Primjer 1 Primjer 2 Ulaz: 1896

Izlaz: summer

Ulaz: 1924

Izlaz: winter summer

Zadatak 34 – Registracija Registracija na sajtu zahtijeva unošenje prezimena korisnika, datuma roñenja i broja kreditne/debitne kartice. Administrator je primjetio da korisnici često pomiješaju polja i npr. u polje za prezime unesu datum roñenja a datum roñenja upišu u polje za prezime. U cilju poboljšanja usluge, i ne želeći da prisiljava korisnike da ponovo unose podatke, administrator je odlučio nabaviti program koji će željene podatke postaviti u pravi redosljed. Sad je vaš zadatak upravo to – napišite program koji će učitane podatke postaviti u pravi redosljed. Ulaz: Unose se tri reda. Jedna od redova sadrži prezime korsnika, koje se sastoji od slova engleske abecede, velikih i malih. Drugi od redova sadrži datum roñenja u formatu dd.mm.yyyy (npr. 01.02.2014 je prvi februar 2014. godine). Treći od redova sadrži broj kartice – niz cifara proizvoljne dužine. Izlaz: Štampati tri reda: prvi red je prezime korisnika, dugi red je datum roñenja a treći red je broj kartice. Primjer 1 Primjer 2 Primjer 3 Ulaz: Smith

112324332

12.10.1964

Izlaz: Smith

12.10.1964

112324332

Ulaz: Ivanov

01.01.2000

11111

Izlaz: Ivanov

01.01.2000

11111

Ulaz: 11111

Ivanov

01.01.2000

Izlaz: Ivanov

01.01.2000

11111

Zadatak 35 – Ulica brestova Duž Ulice brestova sa obje strane posañeni su, pogañate, brestovi. Svaka dva susjedna bresta meñusobno su razmaknuta K metara, a na početku i kraju ulice nalazi po jedan brest. Nakon nemilih dogañaja, prikazanih u filmu, stanovnici ulice odlučili su svaki treći brest sa svake strane ulice zamijeniti hrastom. Ako znate da je ulica dugačka L metara, odredite koliko je brestova, a koliko hrastova posañeno u Ulici brestova. Ulaz: U jedinom redu ulaza nalaze se brojevi K i L (1 ≤K < L≤ 1000, L je djeljiv s K) iz teksta zadatka. Izlaz: Štampati dva cijela broja odvojena razmakom koji redom predstavljaju broj brestova i broj hrastova koji se nalaze u Ulici brestova. b: brojevi K i L biće takvi da se u ulici nalaze barem 3 stabla. Primjer 1 Primjer 2 Primjer 3 Ulaz: 1 2

Izlaz: 4 2

Ulaz: 4 24

Izlaz: 10 4

Ulaz: 5 25

Izlaz: 8 4

Page 11: Java Zadaci

Napomena: u primjeru 2, raspored drveća u ulici je: BBHBBHB. Zadatak 36 – Strava Živite u Ulici brestova na kućnom broju X i želite doći do svog prijatelja koji živi na kućnom broju Y na istoj strani ulice. Na putu nećete nikada prelaziti ulicu, jer ste već na pravoj strani. Opšte je poznato da su kuće čiji su kućni brojevi djeljivi sa 4 uklete. Izračunajte pored koliko ukletih kuća ćete proći na putu od svoje kuće do prijatelja (računajuci i vašu i prijateljevu kuću ako su uklete). Napomena: sa jedne strane ulice nalaze se parni kućni brojevi, a sa druge strane neparni. Ulaz: U jedinom redu ulaza nalaze se dva različita cijela broja X i Y (1 ≤X,Y≤ 1000) iz teksta zadatka. Izlaz: Štampati jedan cio broj – broj ukletih kuća pored kojih ćete proći. Primjer 1 Primjer 2 Ulaz: 2 11

Izlaz: 3

Ulaz: 5 7

Izlaz: 0

Zadatak 37 – Šampinjoni Nakon što su pojeli sve kolače sa vješticine kuće, Ivica i Marica su naručili jumbo pizzu. Pizza je uskoro stigla, izrezana na osam komada. Ivica i Marica podijeliće pizzu na dvije jednake polovine, tako da svako od njih dobije po jedan cijeli "polukrug" pizze, tj. četiri uzastopna komada. Marica voli šampinjone i želi ih dobiti što više. Budući da se na nekim komadima pizze nalazi manje, a na nekima više šampinjona, Marica je zamolila Ivicu da pizzu podijele tako da se na njenim komadima nañe što više šampinjona. Pomozite Ivici i Marici! Oni će vam reći koliko se šampinjona nalazi na svakom od osam komada pizze, a vi pronañite najveći ukupan broj šampinjona koji Marica može dobiti. Sljedeća slika prikazuje najbolju podjelu za drugi test primjer (brojem 1. označen je prvi komad naveden u ulaznim podacima). Ulaz: U osam redova nalazi se po jedan cio broj Si (0 ≤Si ≤50, i = 1,..,8). Ovi brojevi su količine šampinjona na komadima pizze, pri čemu su komadi dati redom u smjeru kazaljke na satu. Izlaz: Štampati jedan cio broj – traženi broj iz uslova zadatka. Primjer 1 Primjer 2 Slika za primjer 2 Ulaz: 5

2

1

4

5

1

2

3

Izlaz: 12

Ulaz: 2

6

5

3

3

7

2

6

Izlaz: 19

Zadatak 38 – Dora Dora je odlučila da će u toku zimskih praznika riješiti X problemskih zadataka kako bi se što bolje pripremila za takmičenje iz informatike. Osim rješavanja zadataka, Dora se želi i odmoriti što više može. Ako znamo da će praznici trajati P dana i da Dora dnevno može riješiti najviše Y

Page 12: Java Zadaci

zadataka, koliko će se najviše dana Dora moći odmarati i ne riješiti nijedan zadatak iz informatike tokom dana? ULAZ: U prvom redu nalazi se prirodan broj X (1 ≤X ≤100), broj zadataka koje Dora planira riješiti. U drugom redu nalazi se prirodan broj P (1 ≤P ≤100), broj dana koliko će trajati praznici. U trećem redu nalazi se prirodan broj Y (1 ≤Y ≤100), broj zadataka koje Dora može riješiti u jednom danu. IZLAZ: U jedini red štampati broj dana koje će Dora provesti odmarajuci se od informatike. Primjer 1 Primjer 2 Primjer 3 Ulaz: 50

14

5

Izlaz: 4

Ulaz:

50

14

7

Izlaz: 6

Ulaz:

50

14

7

Izlaz: 0

Zadatak 39 – Hobit U jednom bioskopu grupa prijatelja nestrpljivo iščekuje početak projekcije trećeg filma iz Hobbit trilogije. Čekajuci, raspravljaju o trima filmovima iz trilogije Gospodar prstenova i pokušavaju utvrditi koji je bio najbolji. Svako od njih ima svoje mišljenje i ne mogu se dogovoriti. Zato su odlučili glasati i poreñati filmove tako što će na prvo mjesto staviti onaj film sa najviše, a na treće onaj film sa najmanje dobijenih glasova. Rezultati glasanja su sljedeći:

• A prijatelja svoj je glas odmah dalo prvom nastavku trilogije „Prstenova družina“; • B prijatelja svoj je glas odmah dalo drugom nastavku trilogije „Dvije kule“; • C prijatelja svoj je glas odmah dalo trecem nastavku trilogije „Povratak kralja“; • D prijatelja reklo je da će svoj glas dati filmu za koji se odlučilo najmanje prijatelja koji

su odmah glasali; • E prijatelja reklo je da ce svoj glas dati filmu za koji se odlučilo najviše prijatelja koji su

odmah glasali. Napiši program koji ce za zadate ulazne podatke štampati imena triju filmova u poretku koji odgovara rezultatima glasanja. Filmovi će u svakom trenutku odlučivanja imati meñusobno različit broj glasova. Ulaz: U prvom redu nalazi se 5 prirodnih brojeva A,B,C,D i E (1 ≤ A,B,C,D,E ≤100) iz postavle zadatka. Izlaz: U prvi, drugi i treci red štampati poredak filmova tj, njihove nazive („Druzina prstena“, „Dvije kule“, „Povratak kralja“ ) kako je opisano u tekstu zadatka. Primjer 1 Primjer 2 Primjer 3 Ulaz: 5 3 6 1

Izlaz: Povratak kralja

Druzina prstena

Dvije kule

Ulaz: 60 20 40 70 10

Izlaz: Dvije kule

Druzina prstena

Povratak kralja

Ulaz: 60 40 50 15 20

Izlaz: Druzina prstena

Dvije kule

Povratak kralja

Zadatak 40 – Pronalazak Jednoga jutra, sasvim slučajno, Mirko je nasred ulice pronašao prirodan broj N. Budući da obožava broj 30, Mirka zanima koji je najveći njegov sadržalac kojeg može dobiti razmještanjem cifara pronañenog broja. Pomozite našem junaku i napišite program koji izračunava taj broj (ako postoji). ULAZ: U jedinom redu ulaza nalazi se prirodan broj N koji se sastoji od najviše 105 cifara. IZLAZ: U jedini red izlaza štampati traženi broj iz teksta zadatka ako postoji, a ako ne postoji štampati -1.

Page 13: Java Zadaci

Primjer 1 Primjer 2 Primjer 3 Ulaz: 30

Izlaz: 30

Ulaz: 102

Izlaz: 210

Ulaz: 2931

Izlaz: -1

Zadatak 41 – Fiskultura Na času fiskulture učenici su poreñani po visini, od najvećeg ka najmanjem i svi gledaju ka nastavniku. Na nastavnikov znak svaki od učenika se okrene lijevo ili desno, po sopstvenom izboru. Susjedni učenici koji gledaju jedan u drugog (tj. nañu se licem u lice) prelaze u drugu salu da rade vježebe u parovima. Udaljavanjem dva susjedna učenika, moguće je da se sada druga dva učenika nañu licem u lice, pa oni čine novi par. Npišite program koji odreñuje koliko učenika ostaje nerasporeñeno ako:

• Podzadatak A: učenici stoje u pravoj liniji pred nastavnikom • Podzadatak B: učenici stoje u krugu oko nastavnika

ULAZ: U jedinom redu ulaza unose se slova R i L (R- desno, L- lijevo). Prvi siimbol označava okret najvišeg učenika. Broj slova nije veći od 222. IZLAZ: U jedini red izlaza štampati dva broja: odgovor na podzadatak A i odgovor na podzadatak B. Primjer 1 Ulaz: LRRLLRRRL

Izlaz: 3 1

Zadatak 42 – Razlika Napišite program koji učitava n-tocifreni prirodan broj i štampa razliku najvećeg i najmanjeg n-tocifrenog broja koji se može dobiti od cifara učitanog broja. ULAZ: U jedinom redu ulaza unosi se n-tocifreni prirodan broj c (2≤n≤18). IZLAZ: U jedini red izlaza štampati razliku a-b, gdje su a i b redom najveći i najmanji n-tocifreni broj dobijeni od cifara broja c.

Primjer 1 Napomena Ulaz: 732456198 Izlaz: 864197532

a=987654321

b=123456789

a-b=864197532 Zadatak 43 – Skakavac Skakavac se nalazi u nekoj tački u ravni i želi da jednim skokom, po pravoj liniji, doleti na livadu. Livada ima oblik pravougaonika čije su stranice paralelne koordinatnim osama. Napišite program koji na osnovu koordinata skakavca i položaja livade odreñuje najmanji cio broj d takav u unutrašnjosti ili na granici pravougaonika postoji tačka koja je na rastojanju d od skavaca. ULAZ: U prvom redu ulaza nalaze se koordinate (x0,y0) skakavca. Drugi i treći red sadrže koordinate (x1,y1) i (x2,y2) dijagonalno suprotnih tjemena pravougaonika. Sve koordinate su cijeli brojevi iz intervala [-108.108]. IZLAZ: U jedini red izlaza štampati najmanji cio broj d takav da postoji tačka u unutrašnjosti ili na granici pravougaonika na rastojanju d od skakavca. Primjer 1 Napomena Ulaz: 2 1

4 3

7 5

Ulaz: 6 4 2 6 4 3

Izlaz:

Page 14: Java Zadaci

Izlaz: 3

2

Zadatak 44 – Telefon (1 sec, 256MB) Mirko je tek naučio da prepoznaje riječi u rečenici, pa je zamolio svog starijeg brata Slavka da mu pomogne da usavrši tu vještinu. Slavko je napravio sljedeću vježbu za Nirka: zamisli dvije različite riječi A i B, pa riječ A napiše K puta uzastopno, i zatim traži od Mirka da u tako dobijenim nizu slova pronañe riječ B. Mirko sada može da izbriše proizvoljan broj slova iz niza slova tako da preostala slova, pročitana slijeva udesno, čine riječ B. Npr. ako je riječ A ‘oskar’, a riječ B je ‘rosa’, tada Slavko može pomoću dvije kopije riječi A dobiti niz ‘oskaroskar’ (tj. K je 2), iz kojeg do tražene riječi B Mirko može doći brisanjem prva četiri slova (‘oska’) i slova ‘k’ i ‘r’ na osmoj i desetoj pozicijie. Napiši program koji će za date riječi A i B odrediti najmanji prirodan broj K tako da Mirko može od riječi A dobiti riječ B opisanim postupkom. ULAZNI PODACI U prvom redu ulaza nalazi se riječ A, dok se u drugom redu nalazi riječ B. Obje riječi se sastoje samo od malih slova engleske abecede i nemaju više od 100 000 slova. IZLAZNI PODACI U prvi i jedini red izlaza štampajte jedan prirodan broj – najmanji broj K iz teksta zadatka. Napomena: Test podaci će biti takvi da rješenje uvijek postoji. BODOVANJE U 70% test podataka će se riječi A i B svaka sastojati od najviše 1000 znakova. PRIMJERI TEST PODATAKA Ulaz Izlaz oskar

rosa

2

mirko

mirmirkoko

3

aaaaab

bbbbbb

6

Zadatak 45 – Pitagorina osveta Svima je poznata Pitagorina teorema: u pravouglom trouglu sa dužinama kateta A i B i dužinom hipotenuze C, važi jednakost A2 + B2 = C2. Poznato je da postoje pravougli trouglovi čije su sve stranice prirodni brojevi. Na primjer, jedini pravougli trougao čija je manja kateta A dužine 3 prikazan je na slici:

Za A=12 postoje dva trougla:

Page 15: Java Zadaci

Za datu vrijednost A, koliko postoji prirodnih brojeva B>A takvih da su A i B katete nekog pravouglog trougla? Ulaz: Svaki red ulaza sadrži jedan cio broj A, takav da je 2 ≤ A < 1048576 = 220. Kraj ulaza je označen redom koji sadrži broj 0. Izlaz: Za svaku vrijednost A, štampati koliko ima prirodnih brojeva B > A takav da trougao sa katetatama A i B ima hipotenuzu čija je dužina prirodan broj. Primjer: Ulaz Izlaz 3

12

2

1048574

1048575

0

1

2

0

1

175

Napomena: Za vrijednosti A ≈ 220, mogu postojati rješenja za koje je B ≈ 239, pa je tada C2 > B2 ≈ 278. Možete koristiti 64-bitne cijele brojeve tipa long long u jeziku C++ ili long u jeziku Java ili Int64 u jeziku Pascal. Nijedan od ovih tipova ne može tačno čuvati vrijednost C2 za tako veliki broj. Zadatak 46 – Period razlomka (2 sec, 256MB) Posmatrajmo razlomak 1/n, n>2. Iz matematike je poznato da se cifre u decimalnom zapisu tog razlomka poslije izvjesnog mjesta ponavljaju. Minimalni po dužini niz uzastopnih cifara koji se ponavljaju nazivamo periodom. Niz cifara iza decimalne zapete koji ne ulazi ni u jedan period nazivamo pretperiodom. Na primjer:

• n = 28: 1/28 = 0,03(571428), pretperiod je '03', ima dužinu 2, a period je '571428' i ima dužinu 6

• n = 5: 1/5 = 0,2(0), pretperiod je ‘2’, ima dužinu 1; period ‘0’, i ima dužinu 1. • n = 3: 1/3 = 0,(3), pretperiod je prazan (‘’), i ima dužinu 0; period je ‘3’ i ima dužinu 1.

Za dati prirodan broj n, odrediti dužinu pretperioda i dužinu perioda razlomka 1/n. Ulaz: U prvom redu ulaza je jedan cio broj N (1≤N≤1000000). Izlaz: Štampati dva cijela broja razdvojena jednim blankom – dužinu pretperioda i dužinu perioda. Primjer: Primjer 1 Primjer 2 Primjer 3 Ulaz

28

Izlaz 2 6

Ulaz

5

Izlaz 1 0

Ulaz

3

Izlaz 0 1

Page 16: Java Zadaci

Zadatak 47 – Luna-park

Mirko i Slavko su u posjeti lunaparku. Najveća atrakcija u lunaparku je vodeni tobogan. Nažalost, red u kojem se čeka na ulaz u vodeni tobogan je uvijek pun. Sljedeća slika prikazuje primjer tlocrta reda u kojem se čeka 12 minuta. Početak reda je u polju 1.

Mirko je ušao u red; sva mjesta ispred njega su puna. Nakon jednog minuta, osoba na kraju reda ulazi na tobogan, svi u redu se pomiču unaprijed jedno mjesto i nova osoba ulazi u red. Slavko je prije ulaska u red otišao da kupi sladoled. Tačno K minuta nakon Mirka, Slavko uspijeva ući u red. Mirko i Slavko mogu čavrljati ako se nalaze na poljima susjednima u nekom od osam smjerova (gore, dolje, lijevo, desno i četiri dijagonalna smjera). Koliko minuta će provesti u čavrljanju? U gornjem primjeru, ako Slavko uñe u red dva minuta nakon Mirka, moći će čavrljati ukupno tri minuta dok čekaju u redu:

• dok je Mirko u polju 6, a Slavko u polju 4; • dok je Mirko u polju 7, a Slavko u polju 5; • dok je Mirko u polju 11, a Slavko u polju 9.

Ulaz: Prvi red sadrži dužinu reda L (2 ≤ L ≤ 250) i opis tlocrta reda, niz od L−1 velikih slova. Niz opisuje put koji preñe svaki gost parka koji čeka u redu. Pojavljivaće se samo slova 'L', 'R', 'U' i 'D', a označavaju pomicanje na polje lijevo, desno, gore i dolje od trenutnog. Drugi red sadrži prirodni broj K (1 ≤ K < L), koliko minuta nakon Mirka je Slavko ušao u red. Niz slova u prvom redu ulaza predstavljaće ispravan tlocrt reda, tj. red neće sjeći sam sebe.

Izlaz: Štampati koliko će minuta Mirko i Slavko biti dovoljno blizu da čavrljaju. Primjer: Primjer 1 Primjer 2

Ulaz 12 RRRRDLLLLDD 2

Izlaz 3

Ulaz 9 RDRUURDR 3

Izlaz 2

Zadatak 48 – Vrtić (2 sec, 64 MB) Jedan od alata za učenje slikanja u vrtiću je i pravougaonik dimenzija NxM centimetara, podijeljen na kvadratiće dimenzija 1x1, pri čemu su stranice kvadrata paralelene stranicama pravougaonika. Svaki kvadratić treba obojiti jednom do 26 boja, koje su označene malim slovima engleske abecede. Vrtić organizuje prodajnu izložbu slika dobijenih na ovaj način. Cijena slike jednaka je broju „simetričnih“ regiona na slici. Region slike je bilo koji pravougaonik koji možemo izrezati iz slike po granicama kvadratića. Region je simetričan ako se simetrijom u odnosu na centar pravougaonika dobija pravougaonik koji je isti kao i polazni. Na primjer, na slici

a b c

Page 17: Java Zadaci

a c b

simetrični su svi regioni koji se sastoje od samo jednog kvadratića (ima ih 6) kao i sljedeća dva regiona:

b c

c b

a

a

Napišite program koji na osnovu zadate slike odreñuje njenu cijenu. Ulaz: U prvom redu ulaza su dva cijela broja N и M (1 ≤ N, M ≤ 100), razdvojena jednim blankom. U sljedećih N redova dati su stringovi koji se sastoje od M malih slova engleske abecede. Simbol i u redu j zadaje boju odgovarajućeg kvadratića slike. Izlaz: U jedinom redu izlaza štampati jedan cio broj – cijenu slike tj, broj simetričnih regiona na slici.

Primjer:

Ulaz Izlaz Komentar

2 3

abc

acb

8 Ovo je primjer iz teksta zadataka

2 3

ab

cc

ba

8 Simetrični regioni su 6

kvadratića 1x1, jedan region 1x2

(naime cc) i cijela slika

Ograničenja U prvoj grupi testova, koja vrijedi 30%, važi N, M ≤ 15. U drugoj grupi testova, koja vrijedi 60%, važi N, M ≤ 50. Zadatak 49 – Simpatični brojevi (1 sec, 64MB) Prirodan broj A je simpatičniji od prirodnog broja B ako je broj cifara potrebnih za decimalni zapis broja A manji od broja cifara potrebnih za decimalni zapis broja B. Na primjer, 55 je simpatičniji od 12, a 12 je simpatičniji od 123. Za dati prirodna broj N odrediti najveći cio broj X takav da je X < N i X je simpatičniji od N. Ulaz: Prvi i jedini red ulaza sadrži cio broj N, 1 ≤ N ≤ 231 − 1. Izlaz: Štampati cio broj X. Ako ne postoji cio broj simpatičniji od N, štampati 0. Primjer:

Ulaz 111

Izlaz 0

Ulaz 765437654

Izlaz 765377777

Zadatak 50 – Homeopatija

Baštovan Marko praktikuje više vrsta alternativne medicine, uključujući i homeopatiju. On vjeruje da ako rastvorite odreñene materije u vodi ili alkoholu i dovoljno jako protresete, sigurno dobijete lijek za mnoge bolesti. Istu praksu Marko primjenjuje i na biljkama u svojoj bašti. Meñutim, Marko je i veliki obožavalac matematike, pa zahtijeva da je koncentracija supstance koju

Page 18: Java Zadaci

rastvara u vodi mora biti recipročna prirodom broju, tj. biti oblika 1/n, gdje je n prirodan broj. Markov komšija Petar, uvidjevši da ova „biljna homeopatija“ uspijeva, zatražio je od Marka „čarobni biljni lijek“. Marko ima još jednu kantu sa lijekom koncentracije 1/n. Naravno, ne želi da u potpunosti ostane bez svog magičnog lijeka, pa hoće da ga podijeli tako da i on i Petar dobiju dio koji je takoñe recipročan prirodnom broju. Pomoze Marku da odredi na koliko načina može podijeliti lijek.

Ulazni podaci Jedini red ulaza sadrži izraz oblika “1/n”, bez navodnika, koji predstavlaja koncentraciju lijeka u kanti. Garantuje se da je 1≤n≤109. U ovom redu nema blankova.

Izlazni podaci U jedini red izlaza štampati broj parova prirodnih brojeva (x,y) koji zadovoljavaju uslove zadatka, Parovi koji se razlikuju samo u poretku brojeva nisu različiti.

Test primjeri

Ulaz Izlaz 1/2 2

1/4 3

1/1 1

1/5000 32

Objašnjenje: U prvom primjeru jedini par je (2,2), jer je 1/4 = 1/2+1/2. U drugom primjeru, postoje tri para: (5,20), (6,12) i (8,8).