CEOI/IOI VALIKVÕISTLUS 17.05.1998 1. ÜLEUJUTUS 40 punkti 10 sekundit Misso-Masso maad tabas enneolematult tugev ja pikaajaline vihmahoog. Kogu maapind oli paksu veekihi all. Pärast vihma lõppemist valgus vesi mööda mäekülgi allapoole ja suurem osa sellest jõudis jõgedesse. Osa veest kogunes aga lohkudesse ja moodustas veekogud. Et Misso-Masso maal tavaliselt järvi ei olnud, siis oli Otto-Triin sündmuste sellisest käigust vaimustatud ja ta otsustas paadiga sõitma minna. Selleks, et üles otsida kõige suurema pindalaga veekogu, otsis ta välja omatehtud kaardi ja jäi seda pikaks ajaks silmitsema... Otto-Triinu abistamiseks on vaja kirjutada programm, mis etteantud kaardi andmete põhjal leiaks üles kõige suurema pindalaga veekogu. Kui leidub mitu sama pindalaga veekogu, siis on eelistatum see, mis on sügavam. Kui ka siis tuleb valida mitme veekogu vahel, siis tuleb valida see, mis on Otto-Triinu asukohale kõige lähemal. Misso-Masso maa kaart on koostatud nii, et maa on jaotatud ruutudeks, mille külje pikkus on 10 meetrit ning iga ruudu kohta on teada selle kõrgus merepinnast meetrites. Veekogude leidmisel tuleb arvestada, et kui kõrvuti asetsevate ruutude kõrgused on erinevad, siis voolab vesi kõrgemalt ruudult madalamale ruudule ning kaardistatud maa-ala servad on kaardistamata maast niipalju kõrgemal, et "üle serva" voolanud vesi on jäädavalt läinud. Sisend: Sisendfailis UPUTUS.SIS on esitatud andmed järgmiselt. Esimesel real on kaardi suurus ruutudes – ridade arv M (2 < M <= 100) ja veergude arv N (2 < N <= 100). Järgneval M real on kaardi ridade kaupa esitatud täisarvudena maapinna kõrgused Kij, kus 1 <= i <= M, 1 <= j <= N ja Kij <= 1000. Sisendfaili viimasel real on esitatud Otto-Triinu asukoha koordinaadid X, Y (1 <= X <= N ja 1 <= Y <= M). Väljund: Programm peab kirjutama faili UPUTUS.VAL esimesele reale valitud veekogu pindala suuruse ruutmeetrites, teisele reale selle veekogu sügavuse meetrites ja kolmandale reale selles veekogus Otto-Triinu asukohale kõige lähemal oleva ruudu indeksid. Kui veekogu ei moodustu, siis tuleb väljundfaili esimesele reale kirjutada "VEEKOGU PUUDUB". Näide: UPUTUS.SIS UPUTUS.VAL 8 5 600 7 8 10 10 10 4 8 9 10 9 11 2 5 9 9 11 11 12 10 6 7 11 11 10 8 6 10 10 9 9 9 5 10 10 10 9 6 10 11 11 9 9 10 1 7 Hindamine: Hindamisel arvestatakse ka osaliselt õigeid vastuseid: 1) ainult õige pindala: 1/2 punkte 2) õige pindala ja sügavus: 3/4 punkte 3) õige pindala ja ruudu asukoht: 3/5 punkte Testimisel kasutatakse andmeid, mille korral õige vastus on ühene. 2. JOOKSUVÕISTLUS 60 punkti 10 sekundit Kui järved ära kuivasid ja paadiga sõita enam ei saanud, otsustas Otto-Triin korraldada spordipäeva. Spordipäeva naelaks oli metsaelanike võidujooks ümber Otto-Triinu koopa. Kuna pressi esindajad üritusest õigel ajal teada ei saanud, pidid nad tulemuste selgitamiseks osavõtjate kommentaaridele toetuma. Metsarahvas aga otsustas ennast reporterite kulul pisut lõbustada ja iga võistlusel osalenu esitas võistluse kohta kaks väidet, millest üks oli õige, teine aga vale. Õnnetute reporterite aitamiseks on vaja kirjutada programm, mis leiab esitatud väidete põhjal kõik võimalikud lõpuprotokollid. Sisend: Sisendfaili JOOKS.SIS esimesel real on võistlusel osalenute arv N (1 <= N <= 10) ja järgneval 3*N real iga osavõtja kohta tema nimi (sõna pikkusega 5 kuni 20 sümbolit) ja tema kaks väidet lõppjärjestuse kohta. Väited on kujul subjekt1 suhe subjekt2 kus subjektid võivad olla kas jooksust osavõtjad (üks sisendfailis antud N nimest või asesõna "mina" tähistamaks väite esitajat) või nende saavutatud kohad (täisarvud vahemikus 1...N) ja suhe võib olla üks märkidest "<", ">", "==", "!=". Lisaks on teada, et kõik võistlejad lõpetasid erinevate aegadega. Väljund: Väljundfaili JOOKS.VAL väljastada kõik võimalikud lõppjärjestused, üks järjestus real. Igal real peab olema täpselt N tühikutega eraldatud nime. Näide: JOOKS.SIS JOOKS.VAL 3 Kriimsilm Karuott Rebane Kriimsilm mina < Karuott Rebane == 2 Karuott Karuott == 3 Rebane > Kriimsilm Rebane Kriimsilm == 2 Kriimsilm < Karuott