OKTV 2006/2007. Informatika II. kategória döntő forduló Feladatlap

Hasonló dokumentumok
OKTV 2007/2008 Informatika II. kategória döntő forduló Feladatlap. Oktatási Hivatal

O k t a t á si Hivatal

A 2014/2015 tanévi Országos Középiskolai Tanulmányi Verseny döntő forduló javítási-értékelési útmutató. INFORMATIKA II. (programozás) kategória

OKTV 2005/2006 döntő forduló

Országos Középiskolai Tanulmányi Verseny, 2004/2005-ös tanév INFORMATIKA, II. (programozói) kategória második fordulójának javítási útmutatója

A 2010/2011 tanévi Országos Középiskolai Tanulmányi Verseny második fordulójának megoldása. II. (programozás) kategória

A 2012/2013 tanévi Országos Középiskolai Tanulmányi Verseny második fordulójának megoldása. informatika II. (programozás) kategória

A 2013/2014 tanévi Országos Középiskolai Tanulmányi Verseny második forduló javítási-értékelési útmutató. INFORMATIKA II. (programozás) kategória

A 2013/2014 tanévi Országos Középiskolai Tanulmányi Verseny döntő forduló javítási-értékelési útmutató. INFORMATIKA II. (programozás) kategória

A 2014/2015 tanévi Országos Középiskolai Tanulmányi Verseny második forduló javítási-értékelési útmutató. INFORMATIKA II. (programozás) kategória

A 2016/2017 tanévi Országos Középiskolai Tanulmányi Verseny döntő forduló javítási-értékelési útmutató. INFORMATIKA II. (programozás) kategória

A 2016/2017 tanévi Országos Középiskolai Tanulmányi Verseny második forduló javítási-értékelési útmutató. INFORMATIKA II. (programozás) kategória

Országos Középiskolai Tanulmányi Verseny 2006/2007-os tanév INFORMATIKA, II. (programozás) kategória második fordulójának feladatai

A 2010/2011 tanévi Országos Középiskolai Tanulmányi Verseny döntő fordulójának megoldása. II. (programozás) kategória

Oktatási Hivatal. A 2014/2015 tanévi Országos Középiskolai Tanulmányi Verseny döntő fordulójának feladatai. II. (programozás) kategória

Időjárási csúcsok. Bemenet. Kimenet. Példa. Korlátok. Nemes Tihamér Nemzetközi Informatikai Tanulmányi Verseny, 2-3. korcsoport

A 2016/2017 tanévi Országos Középiskolai Tanulmányi Verseny második fordulójának feladatai. INFORMATIKA II. (programozás) kategória

Nemes Tihamér Nemzetközi Informatikai Tanulmányi Verseny 2-3. korcsoport. Maximális növekedés

2. forduló. MEGOLDÁSOK Pontszerző Matematikaverseny 2014/2015 tanév. 1. Számkeresztrejtvény:

Dinamikus programozás vagy Oszd meg, és uralkodj!

A következő táblázat tartalmazza az egyes fajták jellemzőit.

Megjegyzés: A programnak tartalmaznia kell legalább egy felhasználói alprogramot. Példa:

43. ORSZÁGOS TIT KALMÁR LÁSZLÓ MATEMATIKAVERSENY MEGYEI FORDULÓ HATODIK OSZTÁLY JAVÍTÁSI ÚTMUTATÓ

Gráfelméleti alapfogalmak

Esettanulmányok és modellek 2

A 2017/2018 tanévi Országos Középiskolai Tanulmányi Verseny második fordulójának feladatai. INFORMATIKA II. (programozás) kategória

2. Készítsen awk szkriptet, amely kiírja az aktuális könyvtár összes alkönyvtárának nevét, amely februári keltezésű (bármely év).

Programozási módszertan. Dinamikus programozás: A leghosszabb közös részsorozat

Programozási technológia I. 1. beadandó feladatsor

A 2011/2012 tanévi Országos Középiskolai Tanulmányi Verseny első forduló feladatainak megoldása. INFORMATIKÁBÓL II. (programozás) kategóriában

Dinamikus programozás II.

200) 10000) A B A, B 200 Megjegyzés [SzP1]: nem

Gyakorló feladatok az 1. nagy zárthelyire

Tájékoztató. Használható segédeszköz: -

HORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport

Dinamikus programozás - Szerelőszalag ütemezése

Matematika. Az emberek csak azért gondolják, hogy a matematika nehéz, mert még nem döbbentek rá, hogy az élet maga milyen bonyolult.

44. ORSZÁGOS TIT KALMÁR LÁSZLÓ MATEMATIKAVERSENY. Megyei forduló április mal, így a számjegyeinek összege is osztható 3-mal.

Minden feladat teljes megoldása 7 pont

I. Internetes keresési feladatok (ajánlott idő: 20 perc)

Programozási módszertan. Mohó algoritmusok

Írd le, a megoldások gondolatmenetét, indoklását is!

A 2013/2014 tanévi Országos Középiskolai Tanulmányi Verseny első forduló javítási-értékelési útmutató. INFORMATIKA II. (programozás) kategória

2015. évi Bolyai János Megyei Matematikaverseny MEGOLDÁSI ÉS ÉRTÉKELÉSI ÚTMUTATÓ 9. osztály

Tájékoztató. Használható segédeszköz: -

A 2017/2018 tanévi Országos Középiskolai Tanulmányi Verseny döntő fordulójának feladatai. INFORMATIKA II. (programozás) kategória

Operációkutatás vizsga

bármely másikra el lehessen jutni. A vállalat tudja, hogy tetszőlegesen adott

EuroOffice Professzionális Vonalkód és QR kód generátor

Gábor Dénes Számítástechnikai Emlékverseny 2014/2015 Alkalmazói kategória, I. korcsoport 2. forduló

Arany Dániel Matematikai Tanulóverseny 2012/2013-as tanév 1. forduló haladók III. kategória

43. ORSZÁGOS TIT KALMÁR LÁSZLÓ MATEMATIKAVERSENY MEGYEI FORDULÓ HARMADIK OSZTÁLY JAVÍTÁSI ÚTMUTATÓ. Minden feladat helyes megoldása 7 pontot ér.

OEP Gregorics Tibor: Minta dokumentáció a 3. házi feladathoz 1. Feladat. Elemzés 1

Regionális forduló november 18.

26. MINIMÁLIS KÖLTSÉGŰ UTAK MINDEN CSÚCSPÁRRA

PYTAGORIÁDA. 1. Két szám összege 156. Az első összeadandó a 86 és a 34 különbsége. Mekkora a másik összeadandó?

Infóka verseny. 1. Feladat. Számok 25 pont

Algoritmuselmélet. Legrövidebb utak, Bellmann-Ford, Dijkstra. Katona Gyula Y.

Gráfelméleti feladatok. c f

48. ORSZÁGOS TIT KALMÁR LÁSZLÓ MATEMATIKAVERSENY Megyei forduló HETEDIK OSZTÁLY MEGOLDÁSOK = = 2019.

1. beadandó feladat: Programozási tételek alkalmazása. Közös követelmények:

Tájékoztató. Használható segédeszköz: -

Informatika feladatmegoldó verseny. Kiss Elemér Szakkollégium február 19. Dr. Kovács Lehel István

2014. évi Bolyai János Megyei Matematikaverseny MEGOLDÁSI ÉS ÉRTÉKELÉSI ÚTMUTATÓ 11. évfolyam

Informatikai tehetséggondozás:

Lakóház tervezés ADT 3.3-al. Segédlet

Amortizációs költségelemzés

3. Előadás. Megyesi László: Lineáris algebra, oldal. 3. előadás Lineáris egyenletrendszerek

Értékelési útmutató 1. oldal

Programozási nyelvek II. JAVA

A továbbiakban Y = {0, 1}, azaz minden szóhoz egy bináris sorozatot rendelünk

A 2010/2011 tanévi Országos Középiskolai Tanulmányi Verseny első forduló feladatainak megoldása. INFORMATIKÁBÓL II. (programozás) kategóriában

Válogatott versenyfeladatok programozásból

A 2015/2016 tanévi Országos Középiskolai Tanulmányi Verseny első forduló javítási-értékelési útmutató. INFORMATIKA II. (programozás) kategória

Informatikai tehetséggondozás:

Egy játék 2-3 aranyra éhes játékosnak, 8 éves kortól.

Algoritmizálás, adatmodellezés tanítása 8. előadás

Formális nyelvek és automaták

Számelmélet. 4. Igazolja, hogy ha hat egész szám összege páratlan, akkor e számok szorzata páros!

Megoldások 4. osztály

PLUSZ ügyességi versenyeken használt akadály típusok.

Matematikai érdekességek a Mindennapokban

BÖLCS BAGOLY LEVELEZŐS MATEMATIKAVERSENY IV. forduló MEGOLDÁSOK

5 labda ára 5x. Ez 1000 Ft-tal kevesebb, mint a nyeremény 1p. 7 labda ára 7x. Ez 2200Ft-tal több, mint a nyeremény 1p 5 x x 2200

Feladatsor 2012/13 2. félév a Programozási alapismeretek tárgyhoz

Minden feladat teljes megoldása 7 pont

2014. évi Bolyai János Megyei Matematikaverseny MEGOLDÁSI ÉS ÉRTÉKELÉSI ÚTMUTATÓ 9. osztály

Programozási módszertan. Dinamikus programozás: szerelőszalag ütemezése Mátrixok véges sorozatainak szorzása

Tájékoztató. Használható segédeszköz: -

JELENTKEZÉSI LAP. Név: Osztály: cím (továbbjutásról itt is értesítünk): Iskola: Felkészítő tanár: cím:

Adatszerkezetek II. 1. előadás

Algoritmizálás és adatmodellezés tanítása 1. előadás

1. feladat Készítse el szövegszerkesztővel, majd mentse osztály.txt néven a következő tartalmú szöveges fájlt:

Diszkrét matematika 2.C szakirány

29. Visszalépéses keresés 1.

Geometriai valo szí nű se g

út hosszát. Ha a két várost nem köti össze út, akkor legyen c ij = W, ahol W már az előzőekben is alkalmazott megfelelően nagy szám.

Programozási módszertan. Dinamikus programozás: Nyomtatási feladat A leghosszabb közös részsorozat

Útmutató az asc-ben készített órarend importálásához

Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT- 4. kurzus. 3. Előadás: A mohó algoritmus

Átírás:

Feladatlap Kedves Versenyző! A megoldások értékelésénél csak a programok futási eredményeit vesszük tekintetbe. Ezért igen fontos a specifikáció pontos betartása. Ha például a feladat szövege adatok valamilyen állományból történő beolvasását írja elő, és a program ezt nem teljesíti, akkor a feladatra nem adunk pontot (akkor sem, ha egyébként tökéletes lenne a megoldás); az objektív értékelés érdekében ugyanis a pontozóknak a programszövegekben egyetlen karaktert sem szabad javítaniuk, s az előre megadott javítási útmutatótól semmiben nem térhetnek el. A programokat csak a feladatkiírásban leírt szabályoknak megfelelő adatokkal próbáljuk ki, emiatt nem kell ellenőrizni, hogy a bemenő adatok helyesek-e, illetve a szükséges állományok léteznek-e (sőt ezért plusz pont sem jár). Ha a programnak valamilyen állományra van szüksége, akkor azt mindig az aktuális könyvtárba kell rakni. Az állományok neve minden esetben rögzített. 1. feladat: Madár (15 pont) Egyes madarak a fészkelő helyüktől adott távolságra saját területet, ún. territóriumot tartanak. Ha két madár territóriuma átfedő, akkor ott összeverekedhetnek egymással. Készíts programot (MADAR.PAS, MADAR.C, ), amely megadja A. a senki mással nem verekedő madarakat; B. a legtöbb másik madárral verekedő madarat; C. azon madarak számát, amelyek territóriuma része valamely más madár territóriumának! A MADAR.BE szöveges állomány első sorában a madarak száma (1 M 1000) és egy, a fészkeket tartalmazó négyzet alakú terület mérete (1 N 10000) van. A következő M sorban egy-egy madarat leíró 3 szám szerepel egy-egy szóközzel elválasztva. Az első két szám a madár fészkének helye (1 X,Y N), a harmadik pedig a territórium mérete (1 R 100), ami azt jelenti hogy a territórium az (X-R,Y-R) ponttól az (X+R,Y+R) pontig tart. A MADAR.KI szöveges állomány három sorába a három részfeladat megoldását kell írni. Ha valamelyik részfeladatra nincs megoldás, egy üres sort akkor is ki kell írni! Az első a senki mással nem verekedő madara sorszáma kerüljön, egy-egy szóközzel elválasztva! A második sorba a legtöbb másik madárral verekedő madár sorszámát kell írni (ha több megoldás van, akkor bármelyik kiírható)! A harmadik sorba azon madarak száma kerüljön, amelyek territóriuma teljes egészében része valamely más madár territóriumának! MADAR.BE MADAR.KI 7 100 6 7 7 7 4 3 7 7 2 1 20 15 5 14 21 4 19 22 2 20 5 2 23 23 1 2. feladat: Málna (15 pont) Egy gyümölcslevet gyártó üzem naponta K kg málnát tud feldolgozni. N termelő ajánlotta fel a málnáját, az is lehet, hogy eltérő árakon. Mivel a málna romlandó, ezért az árusok naponta egységesen F forintot engednek az árból. Az üzem a lehető leghamarabb fel akarja dolgozni a beérkezett málnát, de ezen belül azért arra törekszik, hogy a lehető legkevesebb pénzt kelljen fizetnie a termelőknek. Feltehető, hogy az ár az engedményekkel sem megy le 0 forintra. Készíts programot (MALNA.PAS, MALNA.C, ), amely megadja, hogy az üzem melyik napon melyik termelőtől vegyen málnát, hogy a kiadása a lehető legkisebb legyen! 1. oldal

Feladatlap A MALNA.BE szöveges állomány első sorában az üzem napi kapacitása (100 K 1000), a termelők száma (1 N 5000), valamint a napi engedmény (1 F 100) szerepel. A következő N sor mindegyikében két egész szám van egy szóközzel elválasztva, az adott termelő által felajánlott málna mennyisége (1 mennyiség 200), illetve kilónkénti ára (500 ár 1500). A MALNA.KI szöveges állomány első sorába az összes málna feldolgozásához szükséges napok M számát és az üzem által kifizetett teljes vételárat kell írni! A következő M sor mindegyikében egy-egy nap adatai szerepeljenek, egy-egy szóközzel elválasztva: azon termelők sorszáma és a vásárolt mennyisége, akiktől azon a napon vesz málnát az üzem! MALNA.BE MALNA.KI 100 5 100 3 144000 40 800 3 20 4 70 2 10 120 600 2 100 20 500 2 10 5 30 1 40 70 500 30 700 3. feladat: DNS (15 pont) A biológiai szekvenciák, különösen a DNS szekvenciák vizsgálata nagyon fontos kutatási terület. Minden DNS szekvencia leírható olyan karaktersorozattal, amely csak az A, C, G és T karaktereket tartalmazhatja. Két DNS szekvencia hasonlóságára különböző mértékeket használnak. Az egyik leggyakrabban alkalmazott mérték a következőt jelenti. Adott S1 és S2 szekvenciához keresnek olyan S szekvenciát, hogy mind S1, mind S2 előállítható S-ből karakterek beszúrásával, illetve átírásával. Mivel biológiailag nagyobb hasonlóságot jelent egy karakter átírása, mint egy beszúrás, ezért az átírást 1, a beszúrást 2 súllyal számítják. Tehát a hasonlóság vizsgálatánál olyan S szekvenciát keresnek, amelyből a lehető legkisebb összsúllyal előállítható S1 és S2. Ezt az értéket a két szekvencia hasonlósági értékének nevezik. Például az S1=ATGCGTTT és az S2=ATCCGCGTC esetén az S=ATCCGGTC szekvenciából S1 3 átírással, az S2 pedig egy beszúrással kapható, tehát a hasonlósági érték 5, mert nincs ennél jobb előállítás. Készíts programot (DNS.PAS, DNS.C, ), amely kiszámítja két DNS szekvencia hasonlósági értékét, és meg is ad egy optimális előállítást! A DNS.BE szöveges állomány első sorában az S1, a második sorában az S2 DNS szekvencia van. Mindkettő legfeljebb 100 karaktert tartalmaz. A DNS.KI szöveges állomány első sorába azt a K egész számot kell írni, ami az S1 és S2 hasonlósági értéke! A második sor tartalmazza azt az S DNS szekvenciát, amelyből S1 és S2 előállítható pontosan K összsúlyú módosítással! A harmadik sorba egy olyan karaktersorozatot kell írni, amely azt adja meg, hogy az S1 hogyan állítható elő S-ből, a negyedikbe pedig olyat, amely az S2 előállítását adja! Az előállítások leírásában a _ aláhúzás jel jelölje a beszúrást, az X karakter pedig az átírást. Több megoldás esetén bármelyik megadható. DNS.BE DNS.KI ATGCGTTT 5 ATCCGCGTC ATCCGGTC ATXCGXTX ATCCG_GTC 2. oldal

Feladatlap 4. feladat: Vidámpark (15 pont) Egy vidámpark N részlegből áll, a részlegeket az 1,,N számokkal azonosítják, az 1. részleg a bejárat, az N. részleg a kijárat. Minden részlegbe ugyanazzal az egységes jeggyel lehet bemenni. A részlegeket egyirányú utak kötik össze. Ha egy részlegben elhasználunk egy jegyet, akkor el kell hagyni azt a részleget, tehát át kell menni egy másik részlegbe. Ha K darab jegyünk van, és mindet el akarjuk használni, akkor meg kell határoznunk egy olyan R 1 =1,, R k =N sétát, amely a részlegeknek egy olyan felsorolása, amely a bejárattal kezdődik, a kijárattal végződik, és minden i-re (1 i<k) az R i részlegből közvetlenül át lehet menni az R i+1 részlegbe. (Ugyanazon részleg természetesen többször is előfordulhat a sétában.) Készíts programot (VIDAM.PAS, VIDAM.C, ), amely meghatároz egy olyan pontosan K részleget tartalmazó sétát, amely a bejárattal kezdődik, a kijárattal végződik! A VIDAM.BE szöveges állomány első sora három egész számot tartalmaz egy-egy szóközzel elválasztva. Az első a részlegek száma (2 N 100), a második a részlegeket összekötő közvetlen utak száma (1 M 5000), a harmadik pedig a jegyek száma (2 K 200). A további M sor mindegyike két egész számot tartalmaz egy szóközzel elválasztva (1 U,V N, U V), ami azt jelenti, hogy az U részlegből van közvetlen út a V részlegbe. A VIDAM.KI szöveges állomány egyetlen sort tartalmazzon! A sor az egyetlen 0 számot tartalmazza, ha nincs megoldás! Egyébként pontosan K egész számot egy-egy szóközzel elválasztva, ami egy K hosszúságú séta a bejárattól a kijáratig! 1 2 VIDAM.BE VIDAM.KI 6 10 7 1 5 6 4 3 5 6 1 2 2 1 3 2 6 1 5 1 3 3 5 5 4 5 4 5 6 4 3 6 4 6 5. feladat: Labirintus (15 pont) Tekintsük azt a labirintust, amely egy MxN-es négyzetrács, amelynek minden mezője lehet: Üres (0) Fal (1) Kapcsoló (2) Ajtó, amely vagy nyitva van (3), vagy zárva van (4) Ha kapcsoló mezőre lépünk, akkor minden nyitott ajtó bezáródik, és minden zárt ajtó kinyílik. A labirintus (1,1) koordinátájú bal felső sarkából a lehető legkevesebb lépéssel el kell jutni a jobb alsó (M,N) koordinátájú mezőjére. Minden lépésben a szomszédos mezőre léphetünk balra, jobbra, lefelé vagy felfelé, feltéve, hogy az nem fal és nem zárt ajtó. Készíts programot (LABI.PAS, LABI.C, ), amely kiszámítja, hogy legkevesebb hány lépésben lehet kijutni a labirintusból, és meg is ad egy kivezető utat! 3. oldal

Feladatlap A LABI.BE szöveges állomány első sora két egész számot tartalmaz egy-egy szóközzel elválasztva, az első a labirintus sorainak (2 M 100), a második pedig a labirintus oszlopainak száma (2 N 100). A további M sor mindegyike N egész számot tartalmaz egy-egy szóközzel elválasztva. Az állomány i+1-edik sorában a j-edik szám a labirintus (i,j) koordinátájú mezőjét adja meg, a fenti kódolás szerint. A LABI.KI szöveges állomány első sor az egyetlen 0 számot tartalmazza, ha nem lehet kijutni a labirintusból, egyébként a kijutáshoz minimálisan szükséges lépések K számát! A következő sor pontosan K karaktert tartalmazzon (szóközök nélkül), amely a kijutást eredményező egy legrövidebb lépéssorozat! A balra lépés jele a B, a jobbra lépésé a J, a felfelé lépésé az F, a lefelé lépésé az L. Több megoldás esetén bármelyik megadható. LABI.BE LABI.KI 4 5 9 0 4 2 1 0 LJLFJJLLJ 2 2 2 3 0 1 0 4 3 1 0 0 1 0 0 Elérhető összpontszám: 75 pont + 25 pont a 2. fordulóból 4. oldal

1. feladat: Madár (15 pont) Egyes madarak a fészkelő helyüktől adott távolságra saját területet, ún. territóriumot tartanak. Ha két madár territóriuma átfedő, akkor ott összeverekedhetnek egymással. Készíts programot (MADAR.PAS, MADAR.C, ), amely megadja A. a senki mással nem verekedő madarakat; B. a legtöbb másik madárral verekedő madarat; C. azon madarak számát, amelyek territóriuma része valamely más madár territóriumának! A MADAR.BE szöveges állomány első sorában a madarak száma (1 M 1000) és egy, a fészkeket tartalmazó négyzet alakú terület mérete (1 N 10000) van. A következő M sorban egy-egy madarat leíró 3 szám szerepel egy-egy szóközzel elválasztva. Az első két szám a madár fészkének helye (1 X,Y N), a harmadik pedig a territórium mérete (1 R 100), ami azt jelenti hogy a territórium az (X-R,Y-R) ponttól az (X+R,Y+R) pontig tart. A MADAR.KI szöveges állomány három sorába a három részfeladat megoldását kell írni. Ha valamelyik részfeladatra nincs megoldás, egy üres sort akkor is ki kell írni! Az első a senki mással nem verekedő madarak sorszáma kerüljön, egy-egy szóközzel elválasztva! A második sorba a legtöbb másik madárral verekedő madár sorszámát kell írni (ha több megoldás van, akkor bármelyik kiírható)! A harmadik sorba azon madarak száma kerüljön, amelyek territóriuma teljes egészében része valamely más madár territóriumának! MADAR.BE MADAR.KI 7 100 6 7 7 7 4 3 7 7 2 1 20 15 5 14 21 4 19 22 2 20 5 2 23 23 1 Nincs átfedés a territóriumok között 1+ Egy territórium tartalmazza az összeset 1+ Vannak páronkénti átfedések, van két teljesen megegyező 1+ Többszörös átfedés is van, többszörös tartalmazás is van 1+ Véletlen nagy teszt 1+ 2. feladat: Málna (15 pont) Egy gyümölcslevet gyártó üzem naponta K kg málnát tud feldolgozni. N termelő ajánlotta fel a málnáját, az is lehet, hogy eltérő árakon. Mivel a málna romlandó, ezért az árusok naponta egységesen F forintot engednek az árból. Az üzem a lehető leghamarabb fel akarja dolgozni a beérkezett málnát, de ezen belül azért arra törekszik, hogy a lehető legkevesebb pénzt kelljen fizetnie a termelőknek. Feltehető, hogy az ár az engedményekkel sem megy le 0 forintra. Készíts programot (MALNA.PAS, MALNA.C, ), amely megadja, hogy az üzem melyik napon melyik termelőtől vegyen málnát, hogy a kiadása a lehető legkisebb legyen! A MALNA.BE szöveges állomány első sorában az üzem napi kapacitása (100 K 1000), a termelők száma (1 N 5000), valamint a napi engedmény (1 F 100) szerepel. A következő 1. oldal

N sor mindegyikében két egész szám van egy szóközzel elválasztva, az adott termelő által felajánlott málna mennyisége (1 mennyiség 200), illetve kilónkénti ára (500 ár 1500). A MALNA.KI szöveges állomány első sorába az összes málna feldolgozásához szükséges napok M számát és az üzem által kifizetett teljes vételárat kell írni! A következő M sor mindegyikében egy-egy nap adatai szerepeljenek, egy-egy szóközzel elválasztva: azon termelők sorszáma és a tőlük vásárolt málnamennyiség, akiktől azon a napon vesz málnát az üzem! MALNA.BE MALNA.KI 100 5 100 3 144000 40 800 3 20 4 70 2 10 120 600 2 100 20 500 2 10 5 30 1 40 70 500 30 700 Egyetlen termelő van 1+0 pont Egy nap minden termelőtől felvásárolja Minden nap pontosan kijön a felvásárolt mennyiség Van töredékfelvásárlás is Van olyan termelő, aki egyedül többet ad, mint a napi felvásárolható Van olyan termelő, akitől 3 napon is kell vásárolni Véletlen közepes teszt Véletlen nagy teszt 3. feladat: DNS (15 pont) A biológiai szekvenciák, különösen a DNS szekvenciák vizsgálata nagyon fontos kutatási terület. Minden DNS szekvencia leírható olyan karaktersorozattal, amely csak az A, C, G és T karaktereket tartalmazhatja. Két DNS szekvencia hasonlóságára különböző mértékeket használnak. Az egyik leggyakrabban alkalmazott mérték a következőt jelenti. Adott S1 és S2 szekvenciához keresnek olyan S szekvenciát, hogy mind S1, mind S2 előállítható S-ből karakterek beszúrásával, illetve átírásával. Mivel biológiailag nagyobb hasonlóságot jelent egy karakter átírása, mint egy beszúrás, ezért az átírást 1, a beszúrást 2 súllyal számítják. Tehát a hasonlóság vizsgálatánál olyan S szekvenciát keresnek, amelyből a lehető legkisebb összsúllyal előállítható S1 és S2. Ezt az értéket a két szekvencia hasonlósági értékének nevezik. Például az S1=ATGCGTTT és az S2=ATCCGCGTC esetén az S=ATCCGGTC szekvenciából S1 3 átírással, az S2 pedig egy beszúrással kapható, tehát a hasonlósági érték 5, mert nincs ennél jobb előállítás. Készíts programot (DNS.PAS, DNS.C, ), amely kiszámítja két DNS szekvencia hasonlósági értékét, és meg is ad egy optimális előállítást! A DNS.BE szöveges állomány első sorában az S1, a második sorában az S2 DNS szekvencia van. Mindkettő legfeljebb 100 karaktert tartalmaz. A DNS.KI szöveges állomány első sorába azt a K egész számot kell írni, ami az S1 és S2 hasonlósági értéke! A második sor tartalmazza azt az S DNS szekvenciát, amelyből S1 és S2 előállítható pontosan K összsúlyú módosítással! A harmadik sorba egy olyan karaktersorozatot kell írni, amely azt adja meg, hogy az S1 hogyan állítható elő S-ből, a negyedikbe pedig olyat, amely az S2 előállítását adja! Az előállítások leírásában a _ aláhúzás jel jelölje a be- 2. oldal

szúrást, az X karakter pedig az átírást. Több megoldás esetén bármelyik megadható. DNS.BE DNS.KI ATGCGTTT 5 ATCCGCGTC ATCCGGTC ATXCGXTX ATCCG_GTC Egyetlen átírás kell 1+1+0 pont Egyetlen beszúrás kell 1+1+0 pont Sok átírás kell 1+1+0 pont Sok beszúrás kell 1+ Közepes véletlen bemenet 1+ 1+ 4. feladat: Vidámpark (15 pont) Egy vidámpark N részlegből áll, a részlegeket az 1,,N számokkal azonosítják, az 1. részleg a bejárat, az N. részleg a kijárat. Minden részlegbe ugyanazzal az egységes jeggyel lehet bemenni. A részlegeket egyirányú utak kötik össze. Ha egy részlegben elhasználunk egy jegyet, akkor el kell hagyni azt a részleget, tehát át kell menni egy másik részlegbe. Ha K darab jegyünk van, és mindet el akarjuk használni, akkor meg kell határoznunk egy olyan R 1 =1,, R k =N sétát, amely a részlegeknek egy olyan felsorolása, amely a bejárattal kezdődik, a kijárattal végződik, és minden i-re (1 i<k) az R i részlegből közvetlenül át lehet menni az R i+1 részlegbe. (Ugyanazon részleg természetesen többször is előfordulhat a sétában.) Készíts programot (VIDAM.PAS, VIDAM.C, ), amely meghatároz egy olyan pontosan K részleget tartalmazó sétát, amely a bejárattal kezdődik, a kijárattal végződik! A VIDAM.BE szöveges állomány első sora három egész számot tartalmaz egy-egy szóközzel elválasztva. Az első a részlegek száma (2 N 100), a második a részlegeket összekötő közvetlen utak száma (1 M 5000), a harmadik pedig a jegyek száma (2 K 200). A további M sor mindegyike két egész számot tartalmaz egy szóközzel elválasztva (1 U,V N, U V), ami azt jelenti, hogy az U részlegből van közvetlen út a V részlegbe. A VIDAM.KI szöveges állomány egyetlen sort tartalmazzon! A sor az egyetlen 0 számot tartalmazza, ha nincs megoldás! Egyébként pontosan K egész számot egy-egy szóközzel elválasztva, ami egy K hosszúságú séta a bejárattól a kijáratig! 1 2 VIDAM.BE VIDAM.KI 6 10 7 1 5 6 4 3 5 6 1 2 2 1 3 2 6 1 5 1 3 3 5 5 4 5 4 5 6 3. oldal 6

4 3 6 4 Nincs megoldás 1 pont K=2 1 pont K=3 1 pont K a legrövidebb út hossza Egyetlen kör a gráf Közepes véletlen bemenet Közepes véletlen bemenet 5. feladat: Labirintus (15 pont) Tekintsük azt a labirintust, amely egy MxN-es négyzetrács, amelynek minden mezője lehet: Üres (0) Fal (1) Kapcsoló (3) Ajtó, amely vagy nyitva van (3), vagy zárva van (4) Ha kapcsoló mezőre lépünk, akkor minden nyitott ajtó bezáródik, és minden zárt ajtó kinyílik. A labirintus (1,1) koordinátájú bal felső sarkából a lehető legkevesebb lépéssel el kell jutni a jobb alsó (M,N) koordinátájú mezőjére. Minden lépésben a szomszédos mezőre léphetünk balra, jobbra, lefelé vagy felfelé, feltéve, hogy az nem fal és nem zárt ajtó. Készíts programot (LABI.PAS, LABI.C, ), amely kiszámítja, hogy legkevesebb hány lépésben lehet kijutni a labirintusból, és meg is ad egy kivezető utat! A LABI.BE szöveges állomány első sora két egész számot tartalmaz egy-egy szóközzel elválasztva, az első a labirintus sorainak (2 M 100), a második pedig a labirintus oszlopainak száma (2 N 100). A további M sor mindegyike N egész számot tartalmaz egy-egy szóközzel elválasztva. Az állomány i+1-edik sorában a j-edik szám a labirintus (i,j) koordinátájú mezőjét adja meg, a fenti kódolás szerint. A LABI.KI szöveges állomány első sor az egyetlen 0 számot tartalmazza, ha nem lehet kijutni a labirintusból, egyébként a kijutáshoz minimálisan szükséges lépések K számát! A következő sor pontosan K karaktert tartalmazzon (szóközök nélkül), amely a kijutást eredményező egy legrövidebb lépéssorozat! A balra lépés jele a B, a jobbra lépésé a J, a felfelé lépésé az F, a lefelé lépésé az L. Több megoldás esetén bármelyik megadható. LABI.BE LABI.KI 4 5 9 0 4 2 1 0 LJLFJJLLJ 2 2 2 3 0 1 0 4 3 1 0 0 1 0 0 4. oldal

Nincs megoldás Nincs ajtó Nincs kapcsoló Kevés ajtó, sok kapcsoló Kevés kapcsoló, sok ajtó Közepes véletlen bemenet 1+0 pont Elérhető összpontszám: 75 pont + 25 pont a 2. fordulóból 5. oldal