1 sadržaj - tehnička Škola...

11
1 Sadržaj

Upload: others

Post on 25-Feb-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1 Sadržaj - Tehnička Škola Splitss-tehnicka-st.skole.hr/upload/ss-tehnicka-st/images/static3/3697/attachment/17-Zadaci...zanimacija preko sata vjeronauka mu je brojanje slova u

1 Sadržaj

Page 2: 1 Sadržaj - Tehnička Škola Splitss-tehnicka-st.skole.hr/upload/ss-tehnicka-st/images/static3/3697/attachment/17-Zadaci...zanimacija preko sata vjeronauka mu je brojanje slova u

2

Sadržaj

Algoritmi trikovi za natjecanje

DUMP Društvo mladih programera

predstavlja ciklus predavanja

www.dump-split.com

Page 3: 1 Sadržaj - Tehnička Škola Splitss-tehnicka-st.skole.hr/upload/ss-tehnicka-st/images/static3/3697/attachment/17-Zadaci...zanimacija preko sata vjeronauka mu je brojanje slova u

3 Sadržaj

Sadržaj

Pravila za natjecanje .................................................................................. 4

Primjer pravilno napisanog programa ........................................................ 5

Zadatak ...................................................................................................................... 5

Rješenje u programskom jeziku C ......................................................................................... 5

Rješenje u programskom jeziku C++ .................................................................................... 5

Priprema za natjecanje .............................................................................. 6

Zadatak: Knjige .......................................................................................... 7

Zadatak ...................................................................................................................... 7

Primjer test podataka ................................................................................................................. 7

Zadatak: Igra .............................................................................................. 8

Zadatak ...................................................................................................................... 8

Primjer test podataka ................................................................................................................. 8

Zadatak: Opstanak ..................................................................................... 9

Zadatak ...................................................................................................................... 9

Primjer test podataka ................................................................................................................. 9

Zadatak: Slovo ......................................................................................... 10

Zadatak ................................................................................................................... 10

Primjer test podataka .............................................................................................................. 10

Zadatak: Trokut ........................................................................................ 11

Zadatak ................................................................................................................... 11

Sadržaj

Page 4: 1 Sadržaj - Tehnička Škola Splitss-tehnicka-st.skole.hr/upload/ss-tehnicka-st/images/static3/3697/attachment/17-Zadaci...zanimacija preko sata vjeronauka mu je brojanje slova u

4

Pravila za natjecanje

Sadržaj

Pravila za natjecanje Kod svakog pojedinog zadatka obratite pozornost na poglavlja ulazni podaci i

izlazni podaci. Tu su definirana pravila vezana za format ulaznih i izlaznih podataka

koji mora biti strogo poštovan kako bi vaša rješenja bila točno evaluirana. Za

ilustraciju i bolje razumijevanje pogledajte poglavlje primjeri test podataka.

Ulaz i izlaz treba se odvijati preko standardnog ulaza i standardnog izlaza (to znači

cin, cout, printf i/ili scanf). Vaš program sa standardnog ulaza (cin ili scanf) mora

očekivati samo ulazne podatke, a na standardni izlaz (cout ili printf) mora ispisivati

samo izlazne podatke. Ako vaš program bude čekao na unos nečeg drugog osim

ulaznih podataka ili ispisivao nešto drugo osim izlaznih podataka(npr. "Unesite

brojeve...", "Rješenje je..." i slično), nećete dobiti bodove za taj zadatak, jer evaluator

to ne očekuje.

Vaš program treba biti pisan u programskom jeziku C ili C++ i mora regularno

završiti svoje izvođenje. Program se treba izvršiti do kraja tj. do return 0; ili } na

kraju funkcije 'main' koja treba biti deklarirana kao int main(). Pogledajte priložene

primjere.

Za dodjelu bodova važan je samo točan ispis rezultata. Prilikom evaluacije nitko

neće gledati vaš izvorni kôd već će on samo biti korišten za izradu izvršne datoteke,

a bodove za pojedini test podatak će dobiti samo oni programi koji budu generirali

točan rezultat.

Obratite pažnju da svi zadaci ne nose jednak broj bodova. Lakši i brže rješivi zadaci

nose manje bodova, a teži zadaci za čije je rješavanje potrebno više vremena, znanja

i koncentracije nose više bodova.

Prilikom rješavanja zadataka preporučuje se korištenje olovke i papira za skiciranje

i razradu algoritma.

Uvod

Page 5: 1 Sadržaj - Tehnička Škola Splitss-tehnicka-st.skole.hr/upload/ss-tehnicka-st/images/static3/3697/attachment/17-Zadaci...zanimacija preko sata vjeronauka mu je brojanje slova u

Pravila za natjecanje 5 Primjer pravilno napisanog programa

Primjer pravilno napisanog programa

Zadatak Napišite program koji će zbrojiti i oduzeti dva cijela broja.

Ulaz

U prvom retku se nalaze dva cijela broja A i B, međusobno odvojena jednim

razmakom.

Izlaz

U prvi redak ispišite zbroj, a u drugi redak razliku brojeva A i B.

Rješenje u programskom jeziku C

Rješenje u programskom jeziku C++

Pravila su preuzeta od Hrvatskog saveza informatičara (www.hsin.hr) i prilagođena

za DUMP-ova natjecanja.

#include <iostream>

using namespace std;

int main()

{

int a, b;

cin >> a >> b;

cout << a+b << endl;

cout << a-b << endl;

}

#include <stdio.h>

int main()

{

int a, b;

scanf("%d%d", &a, &b);

printf("%d\n", a+b);

printf("%d\n", a-b);

return 0;

}

Page 6: 1 Sadržaj - Tehnička Škola Splitss-tehnicka-st.skole.hr/upload/ss-tehnicka-st/images/static3/3697/attachment/17-Zadaci...zanimacija preko sata vjeronauka mu je brojanje slova u

6

Zadatak

Priprema za natjecanje

U tablici možete pogledati ograničenja za zadatke:

Zadatak Naziv

izvornog kôda

Ulazni podaci

Izlazni podaci

Vremensko ograničenje

Memorijsko ograničenje

Broj bodova

Knjige knjige.cpp knjige.c

Standardni ulaz

Standardni izlaz

1 sekunda 32 MB 20

Igra igra.cpp igra.c

Standardni ulaz

Standardni izlaz

1 sekunda 32 MB 30

Opstanak opstanak.cpp opstanak.c

Standardni ulaz

Standardni izlaz

1 sekunda 32 MB 40

Slovo slovo.cpp slovo.c

Standardni ulaz

Standardni izlaz

1 sekunda 32 MB 50

Trokut trokut.cpp trokut.c

Standardni ulaz

Standardni izlaz

1 sekunda 32 MB 60

Natjecanje

Page 7: 1 Sadržaj - Tehnička Škola Splitss-tehnicka-st.skole.hr/upload/ss-tehnicka-st/images/static3/3697/attachment/17-Zadaci...zanimacija preko sata vjeronauka mu je brojanje slova u

7 Zadatak

Zadatak: Knjige

Zadatak Uskoro započinje škola i mali Žan Pjer Del Mondo mora kupiti knjige (zbog

recesije naravno). Kako mali Žan do sada nikada nije kupovao knjige,

zamolilo je vas da mu napišete program koji će mu reći kolika je ukupna

cijena knjiga i kolika je bila prosječna cijena knjige.

Ulaz

U prvoj liniji ulaza nalazi se N (1 <= N <= 100 000), broj knjiga.

U svakoj od slijedećih N linija nalazi se cijena svake knjige.

Izlaz

U prvoj liniji potrebno je ispisati ukupnu cijenu svih knjiga.

U drugoj liniji potrebno je ispisati prosječnu cijenu knjige.

Primjer test podataka

Primjer 1 Primjer 2 Primjer 3

Ulaz Ulaz Ulaz

2 99 78

3 56 73 54

4 55.6 77.3 45.42 42

Izlaz

Izlaz

Izlaz

177 88.5

183 61

220.32 55.08

Zadaci

Page 8: 1 Sadržaj - Tehnička Škola Splitss-tehnicka-st.skole.hr/upload/ss-tehnicka-st/images/static3/3697/attachment/17-Zadaci...zanimacija preko sata vjeronauka mu je brojanje slova u

8

Zadatak: Igra

Zadatak

Zadatak: Igra

Zadatak Svaki dan, prije škole, mali Žan Pjer Del Mondo igra sa svojim prijateljima

poznatu igru Kamen-škare-papir. U igri dva igrača pokazuju jedan od

znakova (kamen, škare ili papir). Škare pobjeđuju papir, papir pobjeđuje

kamen, a kamen pobjeđuje škare. Ako igrači pokažu isti znak, borba se

proglašava neodlučenom.

Žan nije baš dobar u toj igri i stalno gubi, pa moli vas da mu pomognete i

napišete program koji će ga uvježbati. Žan je odlučilo da ćete simulirati jednu

partiju, tako što će se on u R rundi boriti protiv svojih N prijatelja. Svaka

pobjeda nosi mu 2 boda, a neodlučena runda 1 bod.

Potrebno je izračunati koliko Žan na kraju partije ima bodova.

Ulaz

U prvom redu ulaza nalazi se cijeli broj R (1 ≤ R ≤ 1000), broj odigranih rundi.

U drugom redu ulaza nalazi se niz od R znakova 'S', 'P' ili 'K'. Znakovi

predstavljaju simbole koje je Žan pokazao u pojedinoj rundi. Znak 'S'

predstavlja škare, 'P' papir, a 'K' kamen.

U trećem redu ulaza nalazi se cijeli broj N (1 ≤ N ≤ 1000), broj prijatelja.

U svakom od sljedećih N redova nalazi se niz od po R znakova 'S', 'P' ili 'K'. To

su simboli što ih je jedan prijatelj pokazao u svakoj rundi.

Izlaz

U prvoj i jedinoj liniji potrebno je ispisati koliko je bodova osvojio Žan Pjer

Del Mondo.

Primjer test podataka Primjer 1 Primjer 2 Primjer 3

Ulaz Ulaz Ulaz

3 SSP 1 KKK

5 SSKKP 2 KKPPP SSPKP

5 SSKKP 4 PPKKS PPPSS KPPKP PSKKP

Izlaz

Izlaz

Izlaz

2 5 22

Page 9: 1 Sadržaj - Tehnička Škola Splitss-tehnicka-st.skole.hr/upload/ss-tehnicka-st/images/static3/3697/attachment/17-Zadaci...zanimacija preko sata vjeronauka mu je brojanje slova u

Zadatak: Opstanak 9 Zadatak

Zadatak: Opstanak

Zadatak Mali Žan Pjer Del Mondo gledao je film Dr. Strangelove i u filmu prijeti smrt

svima onima koji se ne uspiju sakriti u špilje. Zgrožen tom činjenicom mali

Žan vas moli da mu pomognete i izračunate koliko će parova nastati u

špiljama i tako sačuvati ljudsku vrstu.

U špilje se skrilo N ljudi. Svim ženama u špilji ime završava na 'a', a

muškarcima na 'o'. Pomognite malom Žanu i napišite program koji

izračunava najveći mogući broj parova u špiljama. (Homoseksualne veze nisu

dopuštene i naravno nema varanja partnera).

Ulaz

U prvoj liniji ulaza nalazi se N (1 <= N <= 100 000), broj ljudi.

U svakoj od slijedećih N linija nalazi se ime svakog čovjeka.

Izlaz

U prvoj i jedinoj liniji potrebno je ispisati koliko najviše parova može nastati

u špiljama.

Primjer test podataka Primjer 1 Primjer 2 Primjer 3

Ulaz Ulaz Ulaz

3 Ivana Jelena Nebo

5 Ana Vilma Marko Franjo Jasna

4 Matea Bea Antonio Josko

Izlaz

Izlaz

Izlaz

1 2 2

Page 10: 1 Sadržaj - Tehnička Škola Splitss-tehnicka-st.skole.hr/upload/ss-tehnicka-st/images/static3/3697/attachment/17-Zadaci...zanimacija preko sata vjeronauka mu je brojanje slova u

10

Zadatak: Slovo

Zadatak

Zadatak: Slovo

Zadatak Mali Žan Pjer Del Mondo postao je fasciniran slovima i riječima. Nova

zanimacija preko sata vjeronauka mu je brojanje slova u rečenicama iz Novog

zavjeta i cilj mu je vidjeti koje se slovo najviše puta pojavljuje. Kako to zna biti

jako mukotrpan proces, zamolio je vas da mu napravite program koji ce mu

pomoći u tome.

Potrebno je napisati program koji ispisuje koje se slovo najviše ponavlja u

nekoj rečenici (ili riječi).

Ulaz

U prvoj i jedinoj liniji ulaza nalazi se rečenica(ili riječ). Ni jedna rečenica

(riječ) neće sadržavati više od 1 000 000 velikih slova engleske abecede.

Izlaz

U prvoj i jedinoj liniji potrebno je ispisati slovo koje se ponavlja najviše puta,

ako ima više takvih slova, potrebno je ispisati sva.

Primjer test podataka Primjer 1 Primjer 2 Primjer 3

Ulaz Ulaz Ulaz

PROGRAMIRANJE

ZAN PJER DEL MONDO

STO JE DANAS LIJEP I SUNCAN DAN

Izlaz

Izlaz

Izlaz

R A N

O S T

Page 11: 1 Sadržaj - Tehnička Škola Splitss-tehnicka-st.skole.hr/upload/ss-tehnicka-st/images/static3/3697/attachment/17-Zadaci...zanimacija preko sata vjeronauka mu je brojanje slova u

Zadatak: Trokut 11 Zadatak

Zadatak: Trokut

Zadatak Malom Žan Pjer Del Mondeu, učiteljica je zadala jako težak zadatak. U

koordinatnom sustavu u kojem je upisano N točaka treba naći trokut s

najvećom površinom. Kako mali Žan pojma nema riješiti zadatak, a želi

isprobati svoj najnoviji gadget KillMathTeacher x4800, moli vas da mu

pomognete i riješite zadatak.

Potrebno je napisati program koji izračuna najveću površinu trokuta.

Udaljenost dvije točke u koordinatnom sustavu računa se formulom

(𝑥1 − 𝑥2)2 + (𝑦1 − 𝑦2)2

Površina trokuta računa se formulom 𝑃 = 𝑠 𝑠 − 𝑎 𝑠 − 𝑏 (𝑠 − 𝑐) gdje

𝑠 = 𝑎+𝑏+𝑐

2

Ulaz

U prvoj liniji ulaza nalazi se N (1 <= N <= 100), broj točaka.

U svakoj od slijedećih N linija nalaze se x i y koordinate točke.

Izlaz

U prvoj liniji potrebno je ispisati površinu največeg trokuta.

U iduće tri linije potrebno je ispisati koordinate največeg trokuta.

Primjer test podataka Primjer 1 Primjer 2 Primjer 3

Ulaz Ulaz Ulaz

3 1 2 1 1 2 5

5 2 4 3 1 5 6 7 1 2 8

7 11 1 10 2 1 1 3 5 8 1 7 2 3 3

Izlaz

Izlaz

Izlaz

0.5 1 1 2 5 1 2

14.0 3 1 7 1 2 8

20.0 11 1 3 5 1 1