KVALIFIKACIJE ZA OKRUŽNA TAKMIČENJA IZ INFORMATIKE - 2019/2020
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
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:
Postavka: Pri rešavanju jedne poznate vrste aritmetičkih rebusa potrebno je ista slova zameniti istim ciframa, a različita slova različitim ciframa, tako da se dobije tačna jednakost. Na primer, za rebus SNEG + KRUG = SPORT jedno od rešenja je 1937 + 8627 == 10564. Možemo se uveriti da je navedena jednakost zaista tačna, ali to nije tema ovog zadatka. Ovde nas interesuje drugi uslov, a to je
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
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:
Postavka: U prodavnici se prodaju dve vrste polica čije su cene i dužine poznate. Želimo da postavimo police duž jednog zida tako da popunimo što veći deo dužine zida. Pri tom, ako se ista dužina zida može popuniti na više načina, biramo jef-
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
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:
Postavka: Za dati broj ispisati najveći broj koji se piše istim ciframa.
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
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:
Postavka: Tokom igre riziko napadački i odbrameni igrač ulaze u bitke bacajući kockice. Svaki od njih ima 3 kockice a na osnovu trenutnog stanja igre određuje se koliko od njih sme da baci. Kada se bace kockice, upoređuju se najjača kockica napadača (ona sa najvećim brojem) sa najačom kockicom odbrambenog igrača, zatim druga po jačini sa drugom po jačini i najmanja sa najmanjom. Ako je neki igrač bacio manje kockica, tada se najslabije kockice onog drugog igrača zanemaruju (onaj ko je bacao više kockica je u prednosti). Kada se dve kockice upoređuju, ako napadač ima strogo jaču kockicu (kocikcu na kojoj je broj strogo veći) odbrana gubi jedan poen, dok u suprotnom napad gubi jedan poen (time je odbrambeni igrač u blagoj prednosti).
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
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:
Postavka: Tokom godine igraju se mnogi teniski turniri na kojima teniseri osvajaju poene. Poeni se sabiraju i na kraju godine objavljuje se završna lista na kojoj su teniseri rangirani na osnovu ukupnog broja poena tokom te godine. Napiši program koji na osnovu rezultata svih turnira određuje najboljeg tenisera i njegove poene (pretpostaviti da će pobednik imati strogo veći broj poena od svih ostalih).
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
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