Nemzetközi Informatikai Diákolimpia 1994

Stockholm-Haninge, Svédország



2. napi 1. feladat (30 pont)
Egy 3x3-as mátrixban 9 óra van elhelyezve. A cél az, hogy az összes óra mutatóját a 12-es állásba vigyük. A mutatókat 9-féle módon mozgathatjuk. Ezeket lépéseknek nevezzük, és 1 és 9 közötti számokkal kódoljuk. A kóddal jelölt lépés hatására a szürke területtel jelzett órák mutatója az óra járásával megegyező irányban 90 fokkal elfordul.
 
     
 
1
 
     
     
 
2
 
     
     
 
3
 
     
     
 
4
 
     
     
 
5
 
     
     
 
6
 
     
     
 
7
 
     
     
 
8
 
     
     
 
9
 
     

Bemenet

Az INPUT.TXT állomány 9 egész számot tartalmaz. Ezek a számok az egyes órák mutatóinak kezdőállását adják meg. (0=12 óra, 1=3 óra, 2=6 óra, 3=9 óra).
Kimenet
Az OUTPUT.TXT állományba olyan lépések egy lehetséges legrövidebb sorozatát kell írni, amely az összes mutatót a 12 órás állásba viszi. Több megoldás esetén csak egyet kell megadni.
Példa
 
INPUT.TXT OUTPUT.TXT
3 3 0
2 2 2
2 1 2
5 4 8 9


2. napi 2. feladat (30 pont)
Egy ember 12.00-kor érkezik a buszmegállóba és 12.59-ig marad ott. A megállót különböző buszjáratok használják. Az ember feljegyzi a buszok érkezési idejét. A buszok menetrend szerint közlekednek. A bemenő adatok alapján határozd meg, hogy minimálisan hány buszjárat halad át ezen a megállón! Minden járatra add meg az első busz érkezési idejét és a követési időt!

Bemenet

Az INPUT.TXT állomány első sora az érkezési idők számát adja meg (n<=300). A következő sor a buszok érkezési idejét tartalmazza.
Kimenet
Az OUTPUT.TXT állomány egy-egy sorába az egyes buszjáratok adatait kell írni. Minden sor első száma a járat első busza érkezésének időpontja, a második pedig a követési idő(köz) legyen! A járatok kiírásának sorrendje közömbös. Ha több megoldás is van, akkor elég egyet megadni.
Példa
 
INPUT.TXT OUTPUT.TXT
17
0 3 5 13 13 15 21 26 27 29 37 39 39 45 51 52 53
0 13
3 12
5 8


2. napi 3. feladat (40 pont)
Adott egy kör, amely szektorokra van osztva. A bemenő adat három szám: k (k<=20), n (n<=6) és m (m<=20), ahol n a szektorok száma. Minden szektorba egy k-nál nem kisebb egész számot kell írni. A szektorok kitöltése után új számokat úgy hozhatsz létre, hogy vagy egyetlen szektorból veszed ki a számot, vagy két vagy több szomszédos szektorban levő számot adsz össze. Az így előállított új számokból folytonos sorozat hozható létre m és i között (m, m+1, ..., i).

A feladat az, hogy a szektorokat olyan számokkal töltsd fel, amelyekkel a lehető leghosszabb számsorozat állítható elő (azaz amelyre i értéke a lehető legnagyobb). Egy-egy ilyen feltöltést elrendezésnek nevezünk.

Az alábbi ábra mutatja, hogyan kell előállítani a számokat 2 és 21 között. Szürke színnel azokat a szektorokat jelöljük, amelyeket felhasználunk a soronkövetkező szám előállítására.
 

Bemenet

Az INPUT.TXT állományban három egész szám van, n, m, k
Kimenet
Az OUTPUT.TXT állományba a következő adatokat kell írni: Ha egy tesztesetre az (1 1 2 3) helyes megoldás, akkor az (1 3 2 1), (1 2 3 1) és (1 1 3 2) megoldásokat is ki kell írni.
Példa
 
INPUT.TXT OUTPUT.TXT
5
2
1
21
1 3 10 2 5
1 5 2 10 3
2 4 9 3 5
2 5 3 9 4