KVALIFIKACIJE ZA OKRUŽNA TAKMIČENJA IZ INFORMATIKE
1. GORIVO
Zadatak za 6. i 7. razred.
Potrebno predznanje: Podaci u c++, Operatori u C++
Tri porodice koje žive u mestu A žele da otputuju na izlet u udaljeni grad B. Svaka porodica putuje svojim automobilom i pre puta treba da natoči gorivo, pri čemu je na pumpi neophodno kupiti uvek ceo broj litara goriva. Ako je poznato rastojanje od mesta A do mesta B i ako je poznata potrošnja goriva svakog automobila na 100 kilometara, odrediti najmanju ukupnu količinu koju sve tri porodice zajedno treba da kupe da bi svi uspeli da stignu do grada B.
Ulaz:
Sa standardnog ulaza se unosi prvo ceo broj r (10 ≤ r ≤ 1000) koji predstavlja rastojanje od mesta
A do mesta B (u kilometrima), a zatim tri cela broja p1, p2, p3 (2 ≤ pi ≤ 20) koja predstavljaju potrošnju
svakog od tri automobila na 100 kilometara.
Izlaz:
Na standardni izlaz ispisati traženu minimalnu količinu goriva.
Primer 1
Ulaz
850
7
8
9
Izlaz
205
Objašnjenje
Prvom automobilu je potrebno 59,5 litara da bi prešao 850 kilometara, pa će kupiti 60 litara, drugom je potrebno tačno 68 litara, a trećem je potrebno 76.5 litara, pa će kupiti 77 litara benzina, pa će svi zajedno kupiti 60+68+77=205 litara benzina.
Primer 2
Ulaz
987
6
9
11
Izlaz
258
2. KAKURO PROVERA
Zadatak za 6. i 7. razred.
Potrebno predznanje: Podaci u c++, Operatori u C++, Grananje u programu
U igri Kakuro potrebno je upisati cifre od 1 do 9 u prazna polja tabele u skladu sa unapred zadatim zbirovima vrsta i kolona, tako da se svaki zbir dobija sabiranjem različitih cifara. Mi ćemo razmotriti jednostavnu varijantu ove igre u kojoj se brojevi upisuju u 4 polja, raspoređenih u dve horizontalne (vodoravne) vrste i dve vertikalne (uspravne) kolone, tako da su unapred dati zbirovi svake vrste i svake kolone.
Napiši program koji proverava da li su cifre upisane u skladu sa pravilima igre Kakuro.
Ulaz:
Prva linija standardnog ulaza sadrži dva pozitivna prirodna broja između 3 i 17 koji predstavljaju zbirove u svakoj od dve kolone. Naredna linija sadrži dva pozitivna prirodna broja između 3 i 17 koji predstavljaju zbirove u svakoj vrsti. Nakon toga se unose 4 broja (zadata u dve linije) koji su upisani u polja.
Izlaz:
Na standardni izlaz ispisati da ako je tabela popunjena ispravno tj. ne ako nije.
Primer 1
Ulaz
14 8
16 6
9 7
5 1
Izlaz
da
Primer 2
Ulaz
11 9
17 3
9 8
3 1
Izlaz
ne
3. SPISAK PROIZVODA
Zadatak za 6. razred.
Potrebno predznanje: Podaci u c++, Operatori u C++, Grananje u programu u C/C++, Petlje
Ljilja je svaki dan škole kupovala za užinu jabuku, kiflu ili lizalicu. Ako je poznato kolika je cena svakog proizvoda i ako je poznat spisak proizvoda koje je ona kupila tokom nekoliko dana, odrediti koliko je ukupno novca potrošila.
Ulaz:
Sa standradnog ulaza se učitavaju cena jabuke, kifle i lizalice (tri prirodna broja između 10 i 100, svaki u posebnom redu). Nakon toga se učitava niska od najviše 30 karaktera j, k i l koja određuje redom proizvode koje je Ljilja kupila.
Izlaz:
Na standardni izlaz ispisati ukupnu količinu utrošenog novca.
Primer 1
Ulaz
32
30
45
jjkllkl
Izlaz
259
Primer 2
Ulaz
10
20
30
jkl
Izlaz
60
4. MAJSTOR
Zadatak za 6. razred.
Potrebno predznanje: Podaci u c++, Operatori u C++, Grananje u programu u C/C++, Petlje
Ulaz:
U prvoj liniji standardnog ulaza unosi se ukupan broj kutija n (2 ≤ n ≤ 30). Zatim se u narednih n
linija unose brojevi šrafova u kutijama ki (1 ≤ ki ≤ 100), redom.
Izlaz:
Na standardni izlaz ispisati ceo broj koji predstavlja zbir šrafova u dve kutije sa najmanje šrafova.
Primer 1
Ulaz
5
45
32
9
15
67
Izlaz
24
Primer 2
Ulaz
7
764
455
721
231
138
97
333
Izlaz
235
Primer 3
Ulaz
5
28
14
30
15
14
Izlaz
28
Zadatak se može rešiti primenom petlji i grananja u programu, ali i na drugi način primenom vektora:
Za drugi način rešavanja je potrebno znati i sledeće oblasti: Dinamički niz-vector
5. ZRAK
Potrebno predznanje: Podaci u c++, Operatori u C++, Grananje u programu u C/C++, Petlje , Ugnježdene petlje u C/C++
Zadatak za 6. i 7. razred.
Opciono: Dinamički niz-vector
Poznato je da radio-talasima smetaju prepreke koje im se nađu na putu. Potrebno je istražiti da li radiotalasi mogu da prođu kroz pravougaonu oblast u kojoj je zasađeno drveće. Radio-talas se ispušta iz gornjeg levog ugla te oblasti i to u pravcu koji je određen vertikalnim i horizontalnim pomerajem (to su brojevi koji određuju razliku između koordinata narednog i tekućeg polja koje je zrak dostigao). Na primer, ako su pomeraji redom 2 i 1, to znači da se zrak u svakom koraku pomeri dve vrste naniže i jednu kolonu nadesno, pa redom prelazi polja čije su koordinate (v, k) jednake (0, 0), (2, 1), (4, 2) itd. Napiši program koji određuje koliko stabala će se naći na putu radio-talasa.
Ulaz:
Prva linija standardnog ulaza sadrži dimenzije matrice bv i bk (3 ≤ bv, bk ≤ 100), razdvojene razmakom. Nakon toga se nalazi opis matrice, pri čemu su polja koja sadrže stabla označena sa 1, a polja koja ne sadrže stabla sa 0. Na kraju se nalazi linija u kojoj su dati pomeraji (prirodni brojevi razdvojeni razmakom).
Izlaz:
Na standardni izlaz ispisati broj stabala koje radio signal poseti.
Primer 1
Ulaz
8 8
0 1 1 0 0 1 0 1
0 0 1 0 1 0 1 0
1 0 1 0 1 0 1 0
1 1 0 1 0 1 0 1
0 1 1 0 1 1 1 0
0 0 0 0 0 1 0 1
1 0 1 1 0 1 1 0
0 1 1 0 1 1 1 0
2 1
Izlaz
2
Objašnjenje
Na slici su prikazana polja preko kojih će prelaziti zrak. Simbolom X su označena polja na kojima postoje stabla, a simbolom - polja na kojima ne postoje stabla.
- 1 1 0 0 1 0 1
0 0 1 0 1 0 1 0
1 - 1 0 1 0 1 0
1 1 0 1 0 1 0 1
0 1 X 0 1 1 1 0
0 0 0 0 0 1 0 1
1 0 1 X 0 1 1 0
0 1 1 0 1 1 1 0
Primer 2
Ulaz
8 8
1 0 1 0 1 0 1 0
0 1 0 1 0 1 0 1
1 0 1 0 1 0 1 0
0 1 0 1 0 1 0 1
1 0 1 0 1 0 1 0
0 1 0 1 0 1 0 1
1 0 1 0 1 0 1 0
0 1 0 1 0 1 0 1
1 2
Izlaz
2
UPUTSTVO:
Za učitavanje matrice koristiti ugnježdene petlje. Poćeti od pozicije (0,0). Koristeći petlju, uz proveru uslova da ste unutar matrice, premeštati se za unete vrednosti pomeraja po redu i koloni, na nove pozicije. Ako je na tim pozicijama vrednost u matrici jednaka 1, povećati brojač(celobrojnu promenljivu koja predstvlja traženi broj) za 1. Po izlasku iz petlje, dobijeni broj je zapravo broj polja na kojima se nalazi stablo. |
6. BROJ DANA ODMERENOG TRENINGA
Zadatak za 7. razred.
Potrebno predznanje: Podaci u c++, Operatori u C++, Grananje u programu u C/C++, Petlje
Prilikom pripreme za predstojeća takmičenja, sportista svakog dana meri rezultat koji je postigao. Pošto želi da ravnomerno podiže formu, želi da svaki dan rezultat bude sve bolji (veći broj predstavlja bolji rezultat). Za neki dan treninga ćemo reći da je dobar, ako je rezultat postignut tog dana strogo bolji nego prethodnog, a strogo lošiji nego narednog (da bi bio dobar, za prvi dan je dovoljno da je strogo lošiji od narednog, a za poslednji dan da je strogo bolji od prethodnog).
Napiši program koji izračunava broj dobrih dana.
Ulaz:
Sa standardnog ulaza se učitava broj dana n(3 ≤ n ≤ 100) tokom kojih je sportista trenirao, a u
drugom redu rezultati koje je sportista postizao tokom svakog od tih n dana.
Izlaz:
Na standardni izlaz ispisati broj dobrih dana.
Primer 1
Ulaz
6
100 120 130 110 140 150
Izlaz
4
Primer 2
Ulaz
6
10 20 30 40 50 60
Izlaz
6
7. KUVAR
Zadatak za 8. razred.
Potrebno predznanje: Podaci u c++, Operatori u C++
Kuvaru je za jednu porciju potrebno za glavno jelo (pored ostalih sastojaka) m grama mesa, a za salatu ili k grama kupusa ili c grama cvekle. Na raspolaganju je grama mesa, grama kupusa i C grama cvekle (a svih ostalih sastojaka ima mnogo više). Napisati program koji učitava potrebne količine za jednu porciju m, k, c, a zatim i raspoložive količine MKC, a ispisuje za koliko celih porcija (glavno jelo i salata) kuvar ima dovoljno sastojaka.
Ulaz:
Na standardnom ulazu su redom brojevi m, k, c, M, K, C, svaki u posebnom redu. Svi brojevi su celi,
pozitivni i manji od 50000.
Izlaz:
Na standarni izlaz ispisati samo jedan ceo neoznačen broj, a to je broj celih porcija koje mogu da
se pripreme.
Primer 1
Ulaz
200
250
150
2200
1400
890
Izlaz
10
Primer 2
Ulaz
150
200
100
6100
5100
1000
Izlaz
35
8. STUBIĆI OD KOCKICA
Zadatak za 8. razred.
Potrebno predznanje: Podaci u c++, Operatori u C++, Grananje u programu
Dva druga se igraju kockicama. Od prethodne igre su im ostala dva stuba čije su visine A i B. Sada, za novu građevinu oni imaju dve ideje. Po jednoj ideji potrebni su im stubovi visina A1 i B1, a po drugoj stubovi visina A2 i B2. Da bi promenio visinu nekog stuba za 1, jednome od drugara treba Tx vremena, a drugom Ty vremena. Za koliko najmanje vremena drugari mogu da preprave (produže ili skrate) postojeće stubove i naprave od njih stubove koji se uklapaju u jednu od ideja, ako svaki od njih prepravlja po jedan stub? Vreme
se meri od trenutka kada drugari istovremeno počnu sa prepravkama, do trenutka kada su obojica završila.
Ulaz:
U četiri reda standardnog ulaza su po dva priridna broja razdvojena razmakom. U prvom redu su A i B, u drugom A1 i B1, u trećem A2 i B2, svi iz intervala [1, 1000000], a u četvrtom Tx i Ty, iz intervala [1, 100].
Izlaz: Na standardni izlaz ispisati jedan prirodan broj, traženo najmanje vreme.
Primer 1
Ulaz
10 20
18 28
21 31
1 10
Izlaz
20
Primer 2
Ulaz
7 4
9 13
14 12
3 2
Izlaz
15
9. SLOVARICA
Zadatak za 7. razred.
Potrebno predznanje: Podaci u c++, Operatori u C++, Grananje u programu u C/C++, Petlje , Stringovi u C/C++ jeziku
Ana uči da sastavlja reči od slova. Danas želi da od slova koja ima na raspolaganju sastavi što više primeraka reči koju je smislila. Napisati program koji određuje koliko puta data reč može da se sastavi od slova date kolekcije.
Ulaz:
U prvom redu standardnog ulaza nalazi se niska karaktera koja predstavlja kolekciju, a u drugom niska koja predstavlja reč. Obe niske se sastoje isključivo od malih slova engleske abecede i dužina im jevdo 50000 karaktera.
Izlaz:
Na standardni izlaz ispisati jedan ceo broj, broj mogućih sastavljanja date reči.
Primer 1
Ulaz
matematikaiprogramiranje
meta
Izlaz
2
Primer 2
Ulaz
nekavelikakolekcijaslova
kea
Izlaz
3
Primer 3
Ulaz
babanedanijevisesedapajenekogleda
deda
Rešenje zadatka "Slovarica" se fokusira na efikasno brojanje slova iz kolekcije i reči, a zatim određuje koliko puta se reč može sastaviti koristeći dostupne karaktere.
Prvi korak je kreiranje dva niza koja broje pojavljivanja svakog slova, a zatim se pronalazi minimalan broj pojavljivanja svakog karaktera u reči u odnosu na kolekciju.
Ovo se koristi da se odredi broj mogućih sastavljanja reči. Korišćenje algoritma sa linearnom složenošću je efikasno za problem ovih dimenzija, a glavna optimizacija dolazi kroz brojanje slova.
10. PAS ĆUKI
Zadatak za 7. razred.
Potrebno predznanje: Podaci u c++, Operatori u C++, Grananje u programu u C/C++, Petlje , Stringovi u C/C++ jeziku
Opciono: Dinamički niz-vector
Pas Ćuki je najpametniji pas na svetu. Pored toga što ume da napravi razne akrobatske trikove, on je i izvrstan programer, pa je izmislio novi programski jezik koji je nazvao Ć++.
Svaka linija programskog koda u jeziku Ć++ se sastoji od tačno m celih brojeva razdvojenih razmacima. Pošto je Ć++ veoma napredan jezik, potrebno ga je prevesti tako da bude razumljiv današnjim računarima. U procesu prevođenja je u jednom trenutku potrebno da se svaka linija koda transformiše tako da sadrži m istih celih brojeva. Linija se transformiše tako što se svaki broj povećava ili smanjuje za 1 dok se ne dođe do željenog broja, a cena transformacije jednog broja u drugi je broj povećavanja/smanjivanja.
Recimo da želimo da transformišemo liniju “1 4 9” u “3 3 3”.
• Broj 1 treba da povećamo 2 puta da bismo dobili broj 3, pa je cena te transformacije 2.
• Broj 4 treba da smanjimo jednom, pa je cena transformacije 1.
• Broj 9 treba da smanjimo 6 puta da bismo dobili željeni broj 3, pa je cena transformacije tog broja
Ukupna cena transformacije linije je 2 + 1 + 6 = 9.
Kako bi se uštedeli resursi pri prevođenju, potrebno je transformisati kod tako da ukupna cena transformacije bude što manja. Za jednu učitanu liniju je potrebno odrediti u koji će se broj transformisati da bi cena transformacije bila najmanja moguća. U slučaju da je liniju moguće transformisati u više različitih brojeva tako da cena ostane ista, vrši se transformacija u najveći takav broj.
Ulaz:
U prvom redu standardnog ulaza se nalazi prirodan broj m (1 ≤ m ≤ 105 ) koji označava koliko brojeva se nalazi u liniji koja se učitava. U narednom redu se nalazi niz od m celih brojeva (između -1000 i 1000) odvojenih razmacima koji predstavljaju jednu liniju u Ć++-u.
Dodatna ograničenja: * U test primerima vrednim 49 poena dodatno važi m ≤ 100.
Izlaz: U prvom redu standardnog izlaza ispisati jedan broj koji označava u koji broj će se transformisati brojevi u datoj liniji. U drugom redu standardnog izlaza ispisati najmanju cenu transformacije date linije programskog koda.
Primer 1
Ulaz
6
1 8 6 -4 0 7
Izlaz
6
24
Objašnjenje
Najmanja cena transformacije postiže se ako se svi brojevi transformišu u broj 6. Cena transformacije linije je: |1 − 6| + |8 − 6| + |6 − 6| + | − 4 − 6| + |0 − 6| + |7 − 6| = 24. Primetite da bi se ista cena dobila i ako bismo transformisali liniju u broj 1, ali je broj 6 veći, pa biramo njega.
Primer 2
Ulaz
7
-5 -4 -3 -2 -1 0 1
Izlaz
-2
12
Učitati niz i sortirati ga.
Traženi broj je medijana(srednji element niza).
Ukoliko zamislimo broj negde između najmanjeg i najvećeg niza, svako pomeranje u levu ili desnu stranu stranu menjaće cenu transformacije za dc=broj_elemenata_levo*1+broj_elemenata_desno*(-1)
Dakle dc=(broj_elemenata_levo-broj_elemenata_desno)
Cena transformacije će biti najmanja za ako je razlika broja elemenata desno il levo najmanja, a to je ako je broj posle transformacija u stvari srednji element sortiranog niza
11. DATUM SA NAJVEĆOM ZARADOM
Zadatak za 8. razred.
Potrebno predznanje: Podaci u c++, Operatori u C++, Grananje u programu u C/C++, Petlje , Stringovi u C/C++ jeziku
Opciono: Dinamički niz-vector, Rečnik podataka-mape u C++
TEKST ZADATKA: Poznati su svi fiskalni računi koje je izdala jedna knjižara. Sa svakog računa se može pročitati datum kada je taj račun izdat i iznos koji je naplaćen. Napiši program koji određuje najveći ukupan iznos koji je knjižara naplatila u jednom danu, tj. maksimalan dnevni pazar, kao i datum kada je taj iznos bio najveći (ako ima više takvih datuma, ispisati ih sve, uređene hronološki od prvog do poslednjeg datuma).
Sa standardnog ulaza se učitava broj izdatih računa n (1≤n≤105), a zatim podaci o svakom računu u obliku dd-mm-gggg iznos, gde je iznos realan broj zaokružen na dve decimale.
Izlaz
Na standardni izlaz ispisati maksimalni iznos (realan broj zaokružen na dve decimale), a zatim u narednim redovima datume kada je taj maksimalni iznos naplaćen. Ako ima više datuma, oni treba da budu ispisani redom od najstarijeg do najnovijeg.
Primer
Ulaz
5
03-07-2021 340.00
05-04-2021 285.50
03-07-2021 100.50
04-07-2021 270.00
05-04-2021 155.00
Izlaz
440.50
05-04-2021
03-07-2021
12. ZBIROVI NAKON PODELE
Potrebno predznanje: Podaci u c++, Operatori u C++, Grananje u programu u C/C++, Petlje , Nizovi u jeziku C/C++
Opciono:Maksimalna suma podniza
Dat je niz celih brojeva dužine n. Niz je potrebno preseći na dva dela. Nakon sečenja određuje se koliko postoji parova brojeva takvih da je jedan broj iz levog, a drugi iz desnog dela i da je njihov zbir paran broj. Odrediti maksimalan broj takvih parova koji je moguće dobiti sečenjem niza.
Sa standardnog ulaza se unosi ceo broj n (2≤n≤50000). Zatim se u narednom redu unose elementi niza a i (0≤ai≤100) razdvojeni razmakom.
Izlaz
Na standardni izlaz ispisati jedan ceo broj koji predstavlja traženu vrednost.
Primer 1
Ulaz
8
1 7 3 4 6 5 8 0
Izlaz
7
Objašnjenje: Najveći broj parova dobija se podelom niza na delove 1 7 3 4 6 i 5 8 0. Parovi su(1,5), (7,5), (3,5), (4,8), (4,0), (6,8) i (6,0).
Primer 2
Ulaz
7
1 9 3 11 12 4 8
Izlaz
4
13. MEŠALICA
Potrebno predznanje: Podaci u c++, Operatori u C++, Grananje u programu u C/C++, Petlje , Nizovi u jeziku C/C++
Opciono: Algoritam brzog stepenovanja
m puta.
Ulaz
Sa standardnog ulaza se unose prirodni brojevi n (1≤ n ≤50000) i m (0≤ m ≤10 ^ 18) odvojeni razmakom. U narednom redu se unosi
n različitih brojeva između 0 i n−1 odvojenih razmakom, koji predstavljaju elemente niza 0 1 2 ... n-1 nakon jednog mešanja.
Izlaz
Na standardni izlaz ispisati
n različitih prirodnih brojeva između 0 i n−1 odvojenih razmakom koji predstavljaju elemente niza 0 1 2 ... n-1 nakon
m mešanja.
Primer 1
Ulaz
4 2
0 2 3 1
Izlaz
0 3 1 2
Objašnjenje: Početni niz je 0 1 2 3. Prvim mešanjem dobija se 0 2 3 1. Drugim mešanjem dobija se 0 3 1 2.
Primer 2
Ulaz
5 3
1 2 0 4 3
Izlaz
0 1 2 4 3
Objašnjenje: Početni niz je 0 1 2 3 4. Prvim mešanjem dobija se 1 2 0 4 3. Drugim mešanjem dobija se 2 0 1 3 4. Trećim mešanjem dobija se 0 1 2 4 3.
Primer 3
Ulaz
4 3
1 0 3 2
Izlaz
1 0 3 2
Objašnjenje: Početni niz je 0 1 2 3. Prvim mešanjem dobija se 1 0 3 2. Drugim mešanjem dobija se 0 1 2 3. Trećim mešanjem dobija se 1 0 3 2.
REŠENJE:
Zadatak je moguće rešiti primenom algoritma "grube sile" koji radi za većinu ulaznih podataka, osim za veliki zadati broj potrebnih permutovanja početnog niza. Efikasnije rešenje će se dobiti, ako se permutuje šema transformacije i na kraju transformisana šema koristi za permutovanje početnog niza. To je u stvari, primena algoritma brzog stepenovanja: Radi boljeg razumevanja oba načina rešavanja pogledajte priloženi video, u kome se ne vidi rešenje kao kod. Za kompletno rešenje kliknite na dugme "Rešenje". |
|
14. KATANAC
Potrebno predznanje: Podaci u c++, Operatori u C++, Grananje u programu u C/C++, Petlje
Napiši program koji za unetu ispravnu šifru i trenutno namešten kod na katancu određuje najmanji broj okretanja prstena potrebnih da bi se katanac otključao.
Ulaz
Sa standardnog ulaza se učitava četvorocifreni broj (može da počne i nulama) koji predtavlja ispravnu šifru, a zatim i četvorocifreni broj (može da počne i nulama) koji predstavlja početnu poziciju prstena na katancu.
Izlaz
Na standardni izlaz ispisati najmanji broj okreta prstenova.
Primer 1
Ulaz
1234
7249
Izlaz
10
Objašnjenje
Prsten na kome piše 7 možemo da okrenemo 4 puta unapred da bismo došli do cifre 1 (sa 7 na 8, sa 8 na 9, sa 9 na 0 i sa 0 na 1).
Prsten na kome piše 2 ne moramo da okrećemo.
Prsten na kome piše 4 možemo da okrenemo jednom unazad da bismo došli do cifre 3.
Prsten na kome piše 9 možemo da okrenemo 5 puta (bilo unapred, bilo unazad) da bismo došli do cifre 4.
Primer 2
Ulaz
4812
0319
Izlaz
12
15. TAČAN IZRAZ
Potrebno predznanje: Podaci u c++, Operatori u C++, Grananje u programu u C/C++, Petlje , stringovi ,Nizovi,
Ulaz
U svakom od četiri reda standardnog ulaza se unosi po jedan ceo broj (redom se unose a,b,c i d).
Svi brojevi su u opsegu[1,1000].
Izlaz
Na standardni izlaz ispisati sva moguća rešenja (u proizvoljnom redosledu), svako u posebnom redu. Jedno rešenje se ispisuje u formi 2 znaka (razdvojena razmakom) koji predstavljaju računske operacija koje je tim redom potrebno ubaciti da bi izraz bio tačan.
Ukoliko nije moguće postići tačan izraz, ispisati nemoguce.
Primer 1
Ulaz
2
3
4
2
Izlaz
* -
+ /
- /
Objašnjenje
∗− je rešenje jer važi 2∗3−4=2
+/ je rešenje jer važi 2 + 3/4=2 (primetiti da ovde imamo celobrojno deljenje koje je većeg prioriteta od sabiranja i čiji je rezultat 0)
−/ je rešenje jer važi 2−3/4=2 (primetiti da ovde imamo celobrojno deljenje koje je većeg prioriteta od sabiranja i čiji je rezultat 0)
Primer 2
Ulaz
8
3
2
12
Izlaz
* /
Primer 3
Ulaz
2
2
9
3
Izlaz
nemoguce
Primer 4
Ulaz
2
2
7
4
Izlaz
nemoguce
16. STUBIĆI OD KOCKICA
Potrebno predznanje: Podaci u c++, Operatori u C++, Ugrađene funkcije min,max,abs
Dva druga se igraju kockicama. Od prethodne igre su im ostala dva stuba čije su visine A i B. Sada, za novu građevinu oni imaju dve ideje. Po jednoj ideji potrebni su im stubovi visina A1 i B1, a po drugoj stubovi visina A2 i B2. Da bi promenio visinu nekog stuba za 1, jednome od drugara treba Tx vremena, a drugom Ty vremena. Za koliko najmanje vremena drugari mogu da preprave (produže ili skrate) postojeće stubove i naprave od njih stubove koji se uklapaju u jednu od ideja, ako svaki od njih prepravlja po jedan stub? Vreme se meri od trenutka kada drugari istovremeno počnu sa prepravkama, do trenutka kada su obojica završila.
Ulaz:
U četiri reda standardnog ulaza su po dva priridna broja razdvojena razmakom. U prvom redu su A i B, u drugom A1 i B1, u trećem A2 i B2, svi iz intervala [1, 1000000], a u četvrtom Tx i Ty, iz intervala [1, 100].
Izlaz:
Na standardni izlaz ispisati jedan prirodan broj, traženo najmanje vreme.
Primer 1
Ulaz
10 20
18 28
21 31
1 10
Izlaz
20
Primer 2
Ulaz
7 4
9 13
14 12
3 2
Izlaz
15
17. ŠLJIVE
Potrebno predznanje: Podaci u c++, Operatori u C++, Grananje u programu
Janko i Nataša su jeli šljive. Iz činije su uzimali istovremeno, Janko po dve, a Nataša po tri šljive, sve dok je to bilo moguće, tj. dok nije ostalo manje od pet šljiva. Preostale šljive (ako ih je bilo) pojeo je kasnije Marko. Napisati prorgam koji učitava broj šljiva na početku, a ispisuje koliko je ko pojeo, kao i broj onih koji su pojeli bar jednu šljivu.
Ulaz
Na standardnom ulazu se nalazi jedan ceo neoznačen broj manji od 51, broj šljiva na početku.
Izlaz
Na standardni izlaz u četiri reda ispisati po jedan ceo broj. Prva tri broja treba da budu brojevi šljiva koje su pojeli Janko, Nataša i Marko, tim redom. Četvrti broj treba da bude broj onih koji su pojeli bar jednu šljivu.
Primer 1
Ulaz
14
Izlaz
4
6
4
3
Primer 2
Ulaz
3
Izlaz
0
0
3
1
18. FLAŠE
Potrebno predznanje: Podaci u c++, Operatori u C++, Petlje
Ranko pretače razne vrste tečnosti iz n punih kanistera različitih zapremina u flaše zapremine V litara. Za svaki kanister odrediti koliko flaša će biti potpuno napunjeno tečnošću iz tog kanistera, kao i koliko tečnosti će ostati u kanisteru kada se te flaše popune. Tečnosti se ne smeju međusobno mešati.
Ulaz
U prvom redu standardnog ulaza nalaze se 2 cela broja n (broj kanistera) i v (zapremina vlaša u litrima). U narednih n redova se nalazi po jedan ceo broj. Svaki taj broj predstavlja zapreminu jednog kanistera u litrima. Svi brojevi su celi i između 1 i 10000.
Izlaz
U n redova ispisati po 2 cela broja. Prvi broj predstavlja broj flaša koje će biti potpuno napunjene od strane kanistera, a drugi broj koliko litara tečnosti će ostati u kanisteru nakon popunjavanja flaša.
Primer
Ulaz
7 6
24
13
6
10
17
23
40
Izlaz
4 0
2 1
1 0
1 4
2 5
3 5
6 4
Objašnjenje
Prvi kanister ima zapreminu 24 litra Pošto je zapremina flaše 6 litara, mogu se napuniti 4 flaše i 0 litara ostaje u kanisteru. Drugi kanister ima zapreminu 13 litara, dakle mogu se napuniti 2 flaše, a 1 litar ostaje u kanisteru. Slično i za ostale kanistere.
19. FUDBALSKA GRUPA - TABELA
Potrebno predznanje: Podaci u c++, Operatori u C++, Skraćena if-else naredba
Na svetskom prvenstvu u fudbalu svaka grupa se sastoji od 4 ekipe koje igraju svaka sa svakom. U narednu fazu takmičenja plasiraju se dve najbolje plasirane ekipe. Za svaku pobedu dobijaju se 3 poena, a za nerešen rezultat 1 poen. Napiši program koji na osnovu rezultata 6 utakmica određuje broj poena svake ekipe i gol razliku (razliku između broja datih i broja primljenih golova).
Ulaz
Sa standardnog ulaza se unose rezultati svih mečeva i to redom AB, CD, AC, BD, AD, BC. Svaki rezultat se unosi u obliku dva broja razdvojena razmakom.
Izlaz
Na standardni izlaz ispisati broj poena i gol razliku redom za ekipe A, B, C i D.
Primer 1
Ulaz
3 2
2 1
4 2
1 3
3 0
1 0
Izlaz
9 6
3 -2
3 -2
3 -2
Primer 2
Ulaz
0 0
2 0
6 2
1 1
3 0
1 0
Izlaz
7 7
5 1
3 -3
1 -5
20. NAJVIŠE ODLIČNIH
Potrebno predznanje: Podaci u c++, Operatori u C++, Nizovi, određivanje maksimuma, kad je element isti kao pozicija
Napisati program koji za dati razred i uspeh svakog od n učenika ispisuje razred u kome ima najviše odličnih učenika.
Ulaz
U prvom redu standardnog ulaza je ceo broj n(1≤n≤100). U svakom od narednih n redova nalazi se jedan prirodan i jedan realan broj razdvojeni razmakom. Prirodan broj je iz intervala[1,8] i predstavlja razred, a realan broj je iz intervala [1.0,5.0] i predstavlja uspeh. Broj jednak ili veći od 4.5 predstavlja odličan uspeh.
Izlaz
Na standardni izlaz ispisati jedan ceo broj, broj razreda sa najviše odličnih učenika. Ukoliko odgovr nije jednoznačan, ispisati broj najvećeg razreda sa najviše odličnih učenika.
Primer
Ulaz
6
4 3.58
4 4.67
5 4.83
6 4.5
4 4.93
6 5.0
Izlaz
6
21. DOLINE
Ulaz
Sa standardnog ulaza se unosi broj delova terena n (1≤n≤150). U narednoj liniji se unosi n brojeva odvojenih razmakom koji predstavljaju nadmorske visine terena. Sve visine su celi brojevi iz intervala [0,100]
Izlaz
Na standardni izlaz ispisati jedan ceo broj koji predstavlja broj dolina.
Primer 1
Ulaz
8
5 3 3 7 4 4 4 8
Izlaz
2
Objašnjenje: Doline su 5 3 3 7 i 7 4 4 4 8.
Primer 2
Ulaz
5
4 3 1 2 4
Izlaz
1
Objašnjenje: Jedina dolina je 3 1 2.
Primer 3
Ulaz
11
2 2 3 4 4 2 2 2 5 4 5
Izlaz
2
Objašnjenje: Doline su 4 2 2 2 5 i 5 4 5.
22. DOPUNA MEJLOVA
Zadatak za 7. razred.
Potrebno predznanje: Podaci u c++, Operatori u C++, Grananje u programu u C/C++, Petlje , stringovi
Napiši program koji efikasno implementira ovu funkcionalnost.
Ulaz: Sa standardnog ulaza se učitava broj mejl adresa n (1 ≤ n ≤ 105), a zatim u n narednih redova po jedna mejl adresa. Nakon toga se unosi broj različitih upita (započetih mejl adresa) m (1 ≤ m ≤ 105), a nakon toga m upita.
Izlaz: Na stadardni izlaz za svaki upit ispisati broj mejl adresa koje počinju tim upitom
Primer
Ulaz
9
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
3
laz
milica@
a
23. NOTE
Potrebno predznanje: Podaci u c++, Operatori u C++, Grananje u programu u C/C++, Petlje , stringovi ,Nizovi,
C, C#, D, D#, E, F, F#, G, G#, A, A#, H, C, C#, D, D#, E, F, ....
Transponovanje neke melodije znači njeno pomeranje za određeni broj tonova naviše ili naniže. Napiši
program koji transponuje unetu melodiju tj. uneti niz tonova.
Opis ulaza
Sa standardnog ulaza se unosi niska od najviše 1000 karaktera koja sadrži niz tonova koje treba transponovati, a zatim i broj između -11 i 11 koji označava za koliko tonova je potrebno transponovati taj niz
tonova.
Opis izlaza
Na standardni izlaz transponovani niz tonova.
Primer 1
Ulaz
GDGHDCAF#D
5
Izlaz
CGCEGFDHG
Objašnjenje
Pomeranjem od tona G za 5 mesta udesno u odnosu na redosled
C, C#, D, D#, E, F, F#, G, G#, A, A#, H, C, C#, D, D#, E, F, ....
dobija se ton C. Pomeranjem od tona D za 5 mesta udesno dobija se ton G itd.
Primer 2
Ulaz
C#F#AG
-3
Izlaz
A#D#F#E
24. GREŠKA U TEKSTU
Potrebno predznanje: Podaci u c++, Operatori u C++, Grananje u programu u C/C++, Petlje , stringovi ,Nizovi,
Opciono: Dinamički niz-vector
Na pozicijama na kojima na osnovu primljenih poruka SA SIGURNOŠĆU MOŽE da se ustanovi slovo originalne poruke, rekonstruisana poruka ima slovo originalne poruke, a na ostalim mestima zvezdice.
Ulaz
U svakom od tri reda standardnog ulaza nalaze se po 4 velika slova engleske abecede.
Izlaz
U prvi i jedini red standardnog izlaza ispisati 4 karaktera. Na mestu svakog rekonstruisanog slova ispisati to slovo,
a na mestu na kome slovo nije moglo da bude rekonstruisano ispisati zvezdicu.
Primer 1
Ulaz
AXCD
ABYD
ABCZ
Izlaz
ABCD
Primer 2
Ulaz
AXCD
AYCD
AZCD
Izlaz
A*CD
25. BROJ TROCIFRENIH PARNIH
Potrebno predznanje: Podaci u c++, Operatori u C++, Grananje u programu u C/C++, Petlje , Nizovi,
Opciono: Dinamički niz-vector
Ulaz
U prvom redu standardnog ulaza se nalazi broj cifara
N, takav da 3≤N≤50000. U drugom redu je N cifara razdvojenih po jednim razmakom.
Izlaz
Na standardni izlaz ispisati samo jedan broj, traženi broj trocifrenih brojeva.
Primer 1
Ulaz
4
2 4 2 2
Izlaz
4
Objašnjenje
Od cifara 2, 4, 2, 2 mogu da se sastave 4 različita trocifrena parna broja, a to su 222, 224, 242, 422.
Primer 2
Ulaz
3
0 1 0
Izlaz
1
Objašnjenje
Od cifara 0, 1, 0 može da se sastavi samo 1 trocifren paran broj, a to je 100.
Primer 3
Ulaz
3
4 1 2
Izlaz
4
Objašnjenje
Od cifara 4, 1, 2 mogu da se sastave 4 različita trocifrena parna broja, a to su 124, 142, 214, 412.
26. PUŽ
Potrebno predznanje: Podaci u c++, Operatori u C++, Grananje u programu u C/C++, Petlje , stringovi ,Nizovi,
Opciono: Dinamički niz-vector
Nemanja ima 6 godina i počeo je da uči da čita i piše. Od strica je dobio vežbanku za učenje slova u kojoj se nalazi vežbica "Puž". Naime u ovoj vežbici postoji tabela dimenzija n x m u koju je potrebno upisati neku rečenicu na sledeći način:
Kreće se iz gornjeg levog ugla tabele i upisuju se slova ka desnoj ivici tabele dokle može. Kada se stigne do ivice onda se nastavlja
upisivanje na dole do ivice, zatim na desno do ivice, pa na gore dok ima mesta, onda opet na desno i tako dok se ne popuni cela tabela (slika).
U tabelu se upisuju samo slova, ignorišu se razmaci, znakovi interpunkcije i slično. Pošto je Nemanja suviše mali za ovu vežbu, tabelu je popunio stric. Nemanju sada zanima da li se u rečenici koja je korišćena da se popuni tabela nalazi ime njegovog omiljenog superheroja. Pošto Nemanja još ne zna sva slova, pomozite mu da ovo otkrije.
Ulaz
U prvom redu standardnog ulaza se nalaze dva cela broja n i m (2≤n,m≤50) koja redom predstavljaju broj redova i broj kolona ove tabele. U narednih n redova se nalazi po m karaktera (mala slova engleske abecede) koji svi zajedno predstavljaju popunjenu tabelu. U narednom redu se nalazi niska karaktera (dužine do 30) koja predstavlja ime Nemanjininog omiljenog superheroja (takođe mala slova engleske abecede, bez razmaka i znakova interpunkcije). Izlaz U jedinom redu standardnog izlaza ispisati jedan ceo broj koji predstavlja poziciju u rečenici od koje počinje ime traženog superheroja. U slučaju da ime ne postoji ispisati -1. Ukoliko se ime pojavljuje više puta, ispisati početnu poziciju prvog pojavljiavanja. Primer 1 Ulaz 4 5 mnogo jdrmv aaneo psmil spajdrmen Izlaz 11 Objašnjenje Kada se tabela razvije dobija se niska karaktera mnogovolimspajdrmena, tako da se reč spajdrmen pojavljuje počevši od 11. mesta. Primer 2 Ulaz 5 5 dalis rnuui ccudt oivoi adelg crnaudovica Izlaz -1 Objašnjenje Iako se u rečenici priča o Crnoj udovici, niz karaktera crnaudovica se ne pojavljuje jer je njeno ime u rečenici u padežu (akuzativu). |
27. Najmanji dobitak
Potrebno predznanje: Podaci u c++, Operatori u C++, Grananje u programu u C/C++, Petlje , stringovi ,Nizovi,
Opciono: Dinamički niz-vector
Ulaz
U prvom redu standardnog ulaza je broj poteza n(1≤n≤50000). U svakom od narednih n redova su po tri prirodna broja, ai, bi, ci, razdvojeni po jednom razmakom. Vrednosti ai, bi nisu veće od milijardu, a zbir svih ci ne prelazi dve milijarde. Smatrati da matrica ima više od milijardu redova i više od milijardu kolona.
Izlaz
Na standardni izlaz ispisati jedan ceo broj, traženu minimalnu pozitivnu vrednost.
Primer 1
Ulaz
4
2 3 1
4 5 2
1 2 1
4 5 1
Izlaz
3
Objašnjenje
Nakon sva 4 poteza, ova "beskonačna" matrica izgleda ovako:
5 5 4 3 3 0 0 ...
4 4 4 3 3 0 0 ...
3 3 3 3 3 0 0 ...
3 3 3 3 3 0 0 ...
0 0 0 0 0 0 0 ...
0 0 0 0 0 0 0 ...
...
Najmanja pozitivna vrednost u matrici je 3.
Primer 2
Ulaz
2
3 7 3
4 5 2
Izlaz
2
Objašnjenje
Nakon oba poteza, beskonačna matrica izgleda ovako:
5 5 5 5 5 3 3 0 0 ...
5 5 5 5 5 3 3 0 0 ...
5 5 5 5 5 3 3 0 0 ...
2 2 2 2 2 0 0 0 0 ...
0 0 0 0 0 0 0 0 0 ...
0 0 0 0 0 0 0 0 0 ...
...
Najmanja pozitivna vrednost u matrici je 2.
28. Seča drva
Potrebno predznanje: Podaci u c++, Operatori u C++, Grananje u programu u C/C++, Petlje ,Nizovi,
Opciono: Dinamički niz-vector
Biljana treba da odluči gde da postavi testeru tako da se svo drvo podeli što bolje. Ana i Biljana su odlučile da nakon što se završi sečenje, Ana će uzeti sve što je palo sa leve strane, a Biljana sve što je palo sa desne strane. Biljana hoće da postavi testeru tako da ona i Ana dobiju što sličniju količinu drveta.
Biljana ima prilično naprednu mašinu za sečenje koja je slikala sve komade drveta kad su bili postavljeni i zabeležila oblike približno kao kvadratiće.
Biljana može postaviti testeru na pozicije: 0,1,2,...,k
. Na primer, na prethodnoj slici Biljana može postaviti testeru na pozicije 0,1,2,3 i 4. Ukoliko postavi testeru na poziciju 2 drvo će biti podeljeno na sledeći način:
Ana će u ovom slučaju dobiti 4+4+3+3=14 komada drveta, a Biljana: 4+6+2+2=14
Pomozite Biljani i napišite program koji će za date oblike drveta pronaći najbolje mesto za testeru tako da je apsolutna razlika komada drveta koje Ana i Biljana dobiju što manja.
U prvom redu standardnog ulaza unosi se prirodan broj n≤10^7 - broj komada drveta na traci.
U drugom redu standardnog ulaza unosi se prirodan broj k≤10^7 - najveća dimenzija drveta.
Zatim se unosi n matrica dimenzije k×k. Svaka od matrica sačinjena je od k redova od po k brojeva (0 - mašina nije detektovala drvo na tom mestu ili
1 - mašina je detektovala drvo na tom mestu). U svim test primerima važi n∗k∗k≤10^7.
Izlaz
U jedom redu standardnog izlaza ispisati minimalnu apsolutnu razliku između komada drveta koje će Ana i Biljana dobiti ako se testera postavi optimalno.
Primer 1
Ulaz
4
4
1 1 0 0
1 1 0 0
1 1 0 0
1 1 0 0
0 0 1 0
1 1 1 0
1 1 1 0
1 1 1 0
0 1 0 0
1 1 0 0
1 1 0 0
0 0 0 0
0 0 0 0
1 1 1 0
1 0 1 0
0 0 0 0
Izlaz
0
Objašnjenje
Ovo je primer iz teksta zadatka.
Primer 2
Ulaz
4
3
1 1 1
1 0 1
0 0 0
1 0 1
1 0 1
1 1 0
0 0 0
0 1 1
0 0 1
0 0 0
1 1 0
1 1 0
Izlaz
8
Objašnjenje
Razlika 8 se postiže ako se testera postavi na poziciju 1 ili na poziciju 2.
Primer 3
Ulaz
3
5
1 0 0 0 0
1 1 0 0 1
0 0 0 0 1
0 0 0 0 1
0 0 0 0 0
0 1 1 0 1
0 1 0 0 0
0 0 0 0 0
0 1 0 0 0
0 0 0 0 0
0 1 1 1 0
0 0 0 0 0
0 0 1 1 0
0 0 1 1 1
0 0 0 1 0
Izlaz
2
Objašnjenje
Razlika 2 se postiže ako se testera postavi na poziciju 3.
29. Kontrolna cifra
Potrebno predznanje: Podaci u c++, Operatori u C++, Grananje u programu u C/C++, Petlje , stringovi ,Nizovi,
Opciono: Dinamički niz-vector
Ulaz
Sa standardnog ulaza se unosi niz od 15 cifara.
Izlaz
Na standardni izlaz ispisati kontrolnu cifru.
Primer 1
Ulaz
430239720231900
Izlaz
7
Objašnjenje
Cifre na parnim pozicijama su
4.0.3.7.0.3.9.0, a na neparnim pozicijama su .3.2.9.2.2.1.0. Cifre na parnim pozicijama se transformišu i dobija se 8.0.6.5.0.6.9.0
(množenjem sa 2 broja 7 dobija se 14, pa se sabiranjem njegovih cifara dobija 5, dok se množenjem sa 2 broja 9 dobija 18, pa se sabiranjem njegovih cifara dobija 9). Zatim izračunavamo zbir cifara na neparnim pozicijama i transformisanih cifara na parnim pozicijama i dobijamo
3+2+9+2+2+1+0 i 8+0+6+5+0+6+9+0
i tako dobijamo zbir
19+34=53
19+34=53.
Odatle sledi da kontrolna cifra mora da bude 7 da bi se njenim dodavanjem na 53 dobio broj deljiv sa 10.Kreditne kartice imaju 16 cifara, od kojih se poslednja koristi kao kontrolna i izračunava se na osnovu ostalih 15 na osnovu sledećeg algoritma. Cifre se dele u dve grupe: 8 cifara koje su na parnim pozicijama (kada se pozicije broje od nule, sleva nadesno) i 7 cifara koje su na neparnim pozicijama. Svaka od cifara na parnim pozicijama se množe sa dva, pa ako se tako dobije dvocifreni broj, onda se sabiraju cifre tog dvocifrenog broja. Cifre na neparnim pozicijama se ne menjaju. Na kraju se izračunava zbir svih tako transformisanih cifara. Kontrolna cifra se određuje tako da se kada se ona sabere sa dobijenim zbirom dobije broj koji je deljiv sa 10.
Ulaz
Sa standardnog ulaza se unosi niz od 15 cifara.
Izlaz
Na standardni izlaz ispisati kontrolnu cifru.
Primer 1
Ulaz
430239720231900
Izlaz
7
Objašnjenje
Cifre na parnim pozicijama su
4.0.3.7.0.3.9.0, a na neparnim pozicijama su .3.2.9.2.2.1.0.
Cifre na parnim pozicijama se transformišu i dobija se 8.0.6.5.0.6.9.0 (množenjem sa 2 broja 7 dobija se 14, pa se sabiranjem njegovih cifara dobija 5, dok se množenjem sa 2 broja 9 dobija 18, pa se sabiranjem njegovih cifara dobija 9). Zatim izračunavamo zbir cifara na neparnim pozicijama i transformisanih cifara na parnim pozicijama i dobijamo
3+2+9+2+2+1+0 i 8+0+6+5+0+6+9+0 i tako dobijamo zbir
19+34=53.
Odatle sledi da kontrolna cifra mora da bude 7 da bi se njenim dodavanjem na 53 dobio broj deljiv sa 10.
30. Obrtanje
Potrebno predznanje: Podaci u c++, Operatori u C++, Grananje u programu u C/C++, Petlje , stringovi ,Nizovi,
Opciono: Dinamički niz-vector
Obrtanjem broja se dobija broj koji se piše istim ciframa u obrnutom redosledu. Na primer, obrtanjem broja 310 se dobija broj 13, a obrtanjem broja 2227 se dobija broj 7222.
Ulaz
U prvom redu standardnog ulaza se nalazi broj N, a u drugom broj r. Oba broja su neoznačeni i celi, i važi 0≤N<10^50000, 0≤r<1 000 000.
U testovima vrednim 60% poena važi 0≤N<200 000, 0≤r<15.
Izlaz
Na standardni izlaz ispisati samo reč DA ili reč NE.
Primer 1
Ulaz
1239999999999999999999321
787657
Izlaz
DA
Primer 2
Ulaz
1000000020000000300000004
458698
Izlaz
DA
Primer 3
Ulaz
10000000200000003000000040
2
Izlaz
NE
31. Naizmenična podela
Potrebno predznanje: Podaci u c++, Operatori u C++, Grananje u programu u C/C++, Petlje
Štanglica ima n kockica. Bogovi su odlučili da će igrati jednu igru u kojoj će naizmenično seći i uzimati delove štanglice. Bog Ek Chuah igra prvi i seče štanglicu jednim rezom na dva dela. Zatim bog Kʼawiil bira koji od ta dva dela želi za sebe.
Štangla čokolade je već podeljena na kockice, bogovi će seći po kockicama, neće preseći neku kockicu na pola. Ek Chuah i Kʼawiil naizmenično seku i uzimaju delove dok ne ostane samo jedna kockica, taj deo ide onome ko je na redu da uzima sledeći.
Ek Chuah i Kʼawiil oboje žele da dobiju što veći broj kockica čokolade. Vi posmatrate ovu borbu, ali pošto štanglica može biti veoma dugačka i imati do 10^9 kockica (što je skoro 34 obima Zemlje) postali ste nestrpljivi. Zanima vas da odredite koliko kockica će dobiti drevno božanstvo Ek Chuah, ako i Ek Chuah i Kʼawiil igraju optimalno.
Ulaz
U jednom redu standardnog ulaza se unosi prirodan broj n≤10^9.
Izlaz
Na standardni izlaz ispisati jedan prirodan broj koji predstavlja broj parčića koje će drevno božanstvo Ek Chuah dobiti.
Primer 1
Ulaz
7
Izlaz
2
Objašnjenje
Jedan način na koji se igra može odviti je sledeći - štanglica je na početku:
#######
Ek Chuah pravi rez:
KKKK|###
Kʼawiil uzima levi deo. Sada je preostalo za podelu:
###
Kʼawiil pravi rez:
#|EE
Ek Chuah uzima desni deo. Sada je preostalo za podelu:
#
Preostala je 1 kockica, Ek Chuah je poslednji uzeo deo, dakle sada je Kʼawiil na redu i on uzima ovu kockicu. Ek Chuah je ukupno uzeo 2 dela, a Kʼawiil je uzeo 5.
Primetimo da na primer sledeće ne bi moglo da se desi jer Kʼawiil igra optimalno: KK|##### -> EEEE|# -> # (ovde bi Ek Chuah dobio 4 kockice, a Kʼawiil 3)
Primer 2
Ulaz
13
Izlaz
4
Primer 3
Ulaz
2
Izlaz
1
Primer 4
Ulaz
1
Izlaz
0
32. Ko prvi igra
Ulaz
Sa standardnog ulaza se unose tri broja a, b i v odvojena razmakom, čije su vrednosti između 1 i 6. Oni predstavljaju brojeve na kockici koje su dobili Ana, Boban i Vlada, tim redom. Poznato je da će svi brojevi biti različiti.
Izlaz
Na standardni izlaz ispisati slova A, B i V. Redosled ispisa treba da odgovara redosledu kojim igrači igraju. Slova ispisati bez razmaka.
Primer 1
Ulaz
2 6 3
Izlaz
BVA
Primer 2
Ulaz
5 4 3
Izlaz
ABV
Primer 3
Ulaz
2 1 4
Izlaz
VAB
Zadaci za 6 razred sa kvalifikacija 2023-24 godina
33. Zbir izdvojenih grupa cifara iz broja
Npr. ako je unet broj 123456, na izlazu treba da se dobije broj:
12+56=68
Ako izvršimo celobrojno deljenje početnog broja, sa npr. broja 678341, dobićemo:
678341/10000
Ako izvršimo celobrojno deljenje početnog broja, sa 10(6-2) npr. broja 678341, dobićemo:
678341/10000=67, s obzirom da su brojevi i reyultat tipa int, pa bi se decimale u broju 67.8341, odbacile, odnosno došlo bi do zaokruživanja na prvi manji ceo broj.
S druge strane, ako potražimo ostatak deljenja sa brojem 100(102), dobili bi
678341 % 100= 41, što predstavlja prve dve cifre početnog broja
Dakle traženi zbir je: 67+41=108
34. Preklapanje cifara
a Paja poslednje tri. Pomozite im da pređu na sledeći nivo tako što ćete za njih odrediti traženi petocifren broj. Pretpostaviti da je svako od njih ispravno zapamtio cifre, odnosno da su uneti podaci ispravni.
Ulaz
U prvom redu se nalazi trocifren broj - deo koji je zapamtio Mare. U drugom redu se nalazi trocifren broj - deo koji je zapamtio Paja.
Izlaz
Ispisati traženi petocifren broj.
Primer 1
Ulaz
145
563
Izlaz
14563
Objašnjenje
Mare je zapamtio prve tri cifre, tako da su prve tri cifre broja 145.
Paja je zapamtio poslednje tri cifre, tako da su poslednje tri cifre broja 563.
Jedini petocifreni broj za koji ovo važi je 14563.
Primer 2
Ulaz
788
851
Izlaz
78851
Od prvog trocifrenog broja uzeti prve tricifre, a od drugog poslednje dve
Napraviti novi broj tako što ce prve 3 cifre momnože sa 100, da bi se dobio petocifreni broj i na to dodati poslednje dve cifre.
Koristiti operatore modul(%) za nalaženje ostatka dva broja, a za određivanja poslednje dve cifre i podeljeno(/) za određivanje prve tri ulaznog broja
35. Najveća prednost domaćih
Ulaz
U svakom od četiri reda standardnog ulaza nalaze se po dva cela nenegativna broja razdvojena razmakom.
Svaki red ulaza odgovara rezultatu nakon jedne četvrtine redom. Prvi broj u redu je broj poena koje je postigla domaća ekipa, a drugi broj je broj poena koje je postigla gostujuća ekipa. Nijedan od brojeva na ulazu nije veći od 200.
Izlaz
Na standardni izlaz ispisati samo jedan ceo broj, najveću moguću prednost domaće ekipe.
Ako domaća ekipa ni u jednom trenutku nije mogla da ima prednost, ispisati 0.
Primer 1
Ulaz
21 18
39 40
63 54
78 77
Izlaz
24
Obrazloženje
Rezultat je u jednom trenutku mogao da bude
78:54, što je 24 poena prednosti.
Primer 2
Ulaz
0 1
1 3
2 5
4 9
Izlaz
0
Obrazloženje
Domaća ekipa nikada nije bila u vodstvu, najpovoljniji rezulatat za nju je bio na početku utakcmice (0:0).
36. Promena škole
Videli su da se k Ivaninih predmeta iz medicinske škole neće računati u prosek u gimnaziji. Odrediti Ivanin prosek ocena u gimnaziji ako je poznat prosek ocena iz medicinske škole, ukupan broj predmeta koje je slušala u medicinskoj školi (n) i broj predmeta koje joj se neće računati u prosek (k). Pretpostaviti da je Ivana završila razred, tj. da nije imala nijednu zaključenu jedinicu.
Prosek ocena a1,a2,...,an računa se na sledeći način:
(a1+a2+…+an)/n.
Ulaz
U prvom redu standardnog ulaza nalazi se prirodan broj n, a u drugom redu broj k (1≤k<n≤50).
U narednih k redova je dato k Ivaninih zaključnih ocena (prirodni brojevi od 2 do 5) iz predmeta koji se ne računaju. U poslednjem redu se nalazi broj p koji predstavlja Ivanin prosek iz medicinske škole koji je zaokružen na dve decimale.
Izlaz
Ispisati novi Ivanin prosek, zaokružen na 2 decimale.
Primer 1
Ulaz
3
1
4
4.33
Izlaz
4.50
Primer 2
Ulaz
12
3
4
5
4
4.58
Izlaz
4.67
Zadaci za 8 razred sa kvalifikacija 2024-25 godina
38. Pin aplikacije od pina telefona
Zato je smislio da taj PIN izračuna na osnovu njemu dobro poznatog PIN-a telefona. Sabraće PIN svog telefona, sa brojem koji dobije kada tom PIN-u zameni prvu i poslednju cifru i sa brojem koji dobije kada tom PIN-u zameni dve središnje cifre. Novi PIN će biti poslednje 4 cifre tako dobijenog zbira. Na primer, ako je PIN telefona 1234, sabraće brojeve
1234 + 4231 + 1324 i dobiće zbir 6789, koji je ujedno novi PIN.
Ulaz
Sa standardnog ulaza se unosi četvorocifreni PIN telefona (može da ima i vodeće nule).
Izlaz
Na standardni izlaz ispisati četvorocifreni PIN aplikacije (uključujući i vodeće nule ako ih ima).
Napomena: prikaz vodećih nula u broju p se u jeziku C++ može postići naredbom
cout << setw(4) << setfill('0') << p << endl;
a u jeziku Python naredbom
print(str(p).zfill(4))
Primer 1
Ulaz
1234
Izlaz
6789
Primer 2
Ulaz
9999
Izlaz
9997
Objašnjenje
Ako je PIN telefona 9999, tada će dobiti zbir 9999 + 9999 + 9999 = 29997, pa je novi PIN 9997.
Napisati program koji na osnovu unetog četvorocifrenog PIN-a telefona određuje novi četvorocifreni
PIN koji će se koristiti za aplikaciju.
Pogledati kako se izdvajaju cifre iz nekog celog broja u zadacima: 1-3 sa web strane: Operatori-primeri
HOROSKOP-Zadatak sa 2. kruga kvalifikacija:
Postavka: Jedinstveni matični broj građana (skraćeno JMBG) je niz od 13 cifara, koji u našoj zemlji svako dobija još kao sasvim mali. Prve dve cifre ovog niza predstavljaju dan, a sledeće dve mesec rođenja. Na primer, ako nečiji JMBG počinje sa 0904, on je rođen devetog aprila, a ako počinje sa 3112 on je rođen trideset prvog decembra.
Perica voli da se zabavlja čitajući razne horoskope, a u jednom trenutku se zapitao koliko ima ljudi rođenih u svakom od horoskopskih znakova, za koje bi trebalo da važi ono što piše u horoskopu. Perica je nekako uspeo da dođe do poveće liste matičnih brojeva, a zna i početne i završne datume za svaki znak:
• OVAN – od 21. marta do 20. aprila
• BIK – od 21. aprila do 21. maja
• BLIZANCI – od 22. maja do 21. juna
• RAK – od 22. juna do 22. jula
• LAV – od 23. jula do 22. avgusta
• DEVICA – od 23. avgusta do 22. septembra
• VAGA – od 23. septembra do 23.oktobra
• ŠKORPIJA – od 24. oktobra do 22. novembra
• STRELAC – od 23. novembra do 21. decembra
• JARAC – od 22. decembra do 20. januara
• VODOLIJA – od 21. januara do 19. februara
• RIBE – od 20. februara do 20. marta
Perica sada želi da prebroji rođenja u svakom od horoskopskih znakova. Napišite program koji pomaže Perici u brojanju.
Ulaz: Na standardnom ulazu se u prvom redu nalazi broj N (1 ≤ N ≤ 200), broj matičnih brojeva koje je Perica nabavio. U svakom od N narednih redova je po jedan matični broj (13 cifara bez razmaka).
Izlaz: Na standardni izlaz ispisati 12 celih brojeva, svaki u posebnom redu. Prvi broj je broj osoba rođeni u znaku ovna, drugi - u znaku bika, itd. Poslednji, dvanaesti broj je broj osoba rođenih u znaku ribe.
Primer 1
Ulaz
5
1504279718463
0412622712918
1903326718649
0710262713307
0104646719372
Izlaz
2
0
0
0
0
0
1
0
1
0
0
1
ARTIMOGRIF-Zadatak sa 2. kruga kvalifikacija:
da li je zamena slova ciframa pravilno izvedena. Na primer, ponuđeno “rešenje” 4832 + 5962 == 10794 nije ispravno (iako je, uzgred rečeno, jednakost tačna) zato što je slovo S na jednom mestu zamenjeno ciftom 4, a na drugom cifrom 1. Takođe, cifra 4 odgovara dvama različitim slovima (S i T).
Napisati program koji proverava da li je u ovom tipu rebusa zamena slova ciframa pravilno izvedena.
Ulaz: Sa standardnog ulaza se u prvom redu unosi string, koji predstavlja opisaniaritmetički rebus. String može da sadrži velika slova engleske abecede, razmake, znake matematičkih operacija i i znak jednakosti. Ukupna dužina stringa nije većav od 100 a broj različitih slova koja se pojavljuju u stringu nije veći od 10.
U drugom redu se unosi string koji predstavlja ponuđeno rešenje rebusa iz prvog reda.
Drugi string se od prvog razlikuje isključivo po tome što je svako slovo zamenjeno nekom cifrom.
Izlaz: Na standardni izlaz ispisati “da” ako je zamena pravilna (bez obzira na to da li je jednakost tačna), a “ne” ako zamena nije pravilna.
Primer 1
Ulaz
SNEG + KRUG = SPORT
2341 + 8751 = 20679
Izlaz
da
Primer 2
Ulaz
SNEG + KRUG = SPORT
4832 + 5962 = 10794
Izlaz
ne
DVE POLICE-Zadatak sa 2. kruga kvalifikacija:
tiniju varijantu.
Napiši program koji određuje najveću moguću dužinu dela zida koja se može popuniti policama i najmanju cenu po kojoj se to može uraditi.
Ulaz: U prvom redu standardnog ulaza se nalazi broj z (1 ≤ z ≤ 106) koji predstavlja
dužinu zida. U dva naredna reda se nalaze opisi polica: dužina (prirodan broj
između 1 i 106) i cena (prirodan broj između 1 i 1000).
Izlaz: Na standardni izlaz ispisati najveću moguću dužinu dela zida koji se može
popuniti policama i najmanju moguću cenu, razdvojene jednim razmakom.
Primer
Ulaz
24
3 10
5 8
Izlaz
24 54
NAJVEĆI BROJ OD DATIH CIFARA-Zadatak sa 3. kruga kvalifikacija:
Ulaz: Sa standardnog ulaza se u prvom redu unosi broj N (1 ≤ N ≤ 1030).
Izlaz: Na standardni izlaz ispisati traženi broj.
Primer 1
Ulaz
90123
Izlaz
93210
Primer 2
Ulaz
777
Izlaz
777
RIZIKO-Zadatak sa 3. kruga kvalifikacija:
Napiši program koji na osnovu rezultata bacanja kockica određuje broj poena koje
gube jedan i drugi igrač.
Ulaz: Prvi red standardnog ulaza sadrži broj bačenih kockica napadača (1, 2 ili 3),
a naredni red sadrži brojeve (od 1 do 6) na kockicama koje je napadač bacio. Naredni
red standardnog ulaza sadrži broj bačenih kockica odbrambenog igrača (1, 2 ili 3), a
naredni red sadrži brojeve (od 1 do 6) na kockicama koje je odbrambeni igrač bacio.
Izlaz: Na standardni izlaz ispisati broj poena koje gubi napadač i broj poena koje
gubi odbrambeni igrač, razdvojene jednim razmakom.
Primer 1
Ulaz
3
5 6 3
3
5 3 4
ATP POBEDNIK-Zadatak sa 3. kruga kvalifikacija:
Ulaz: Sa standardnog ulaza se unosi broj n, a zatim u narednih n redova podaci o osvojenim poenima tenisera: prezime tenisera i zatim broj osvojenih poena.
Izlaz: Na standardni izlaz ispisati prezime i ukupan broj poena pobednika.
Primer 1
Ulaz
9
Djokovic 1000
Nadal 800
Federer 600
Nadal 1000
Federer 800
Djokovic 600
Djokovic 1000
Cicipas 800
Nadal 600
Izlaz
Djokovic 2600
Primer 2
Ulaz
6
Zverev 1000
Cicipas 800
Medvedev 700
Thiem 1000
Cicipas 800
Medvedev 600
Izlaz
Cicipas 1600
Sledeće
Opštinska takmičenja >| |