Nemes Tihamér OKSzTV'99

Döntő

9-10. osztályosok

1999. március 1000-1600



1. feladat: Hálózati felügyelőprogram (23 pont)
 
Egy számítógép-hálózaton a szerver nyomon követheti a felhasználók be- és kijelentkezését, melynek alapján naponta többféle jellemzőt kiszámíthatunk. Minden felhasználó a munkája végén köteles kijelentkezni, valamint egyszerre csak egyetlen gépen jelentkezhet be. Ha az első adata egy kijelentkezés, akkor azt úgy kell érteni, hogy még az előző napon jelentkezett be, s ha nem jelentkezett ki, az azt jelenti, hogy még a következő napon is folyatatja a munkáját.

Feladat:

Készíts programot, amely egy napi be- és kijelentkezési adatok alapján megadja a rendszer egy napi statisztikáját.
Bemenet:
A SZERVER.BE állomány minden sorában egy-egy be- vagy kijelentkezés adatai vannak. A sor első két karaktere a BE vagy a KI szó, majd ezt követi egy-egy szóközzel elválasztva a felhasználó azonosítója (legfeljebb 6 karakter), a művelet óra és perc adata. Az állomány legfeljebb 3200 sort tartalmazhat, s legfeljebb 1500 felhasználói azonosítót adnak ki.
Kimenet:
A SZERVER.KI állomány első sorába azon legkevesebb intervallumok számát kell írni, amely intervallum minden percében használta a rendszert legalább 1 felhasználó, s tőle egy-egy szóközzel elválasztva az intervallumok kezdetét és végét.
A második sorba azon intervallumok számát kell írni, amelyekben a rendszert a legtöbb felhasználó használta, s tőle egy-egy szóközzel elválasztva az intervallumok kezdetét és végét.
A harmadik sorba a legtöbb összesített rendszeridőt használó felhasználó azonosítóját kell írni. Ha több ilyen van, akkor mindet meg kell adni, egy-egy szóközzel elválasztva.
Példa:
SZERVER.BE SZERVER.KI
BE ALFA 3 15
KI BETA 4 50
KI ALFA 5 30
BE GAMMA 6 30
BE ALFA 6 35
KI GAMMA 6 55
KI GAMMA 7 55
KI ALFA 11 45
2 0 0 5 30 6 30 11 45
2 3 15 4 50 6 35 6 55
ALFA
KI GAMMA 7 55

2. feladat: Katonák (28 pont)
Terepen NxN-es négyzetrácsos elrendezésben N katona helyezkedik el, különböző helyeken. A parancsnok olyan elrendezésbe kívánja parancsolni a katonákat, hogy minden sorban és minden oszlopban legyen katona. Egy időpontban egyszerre csak egy katona léphet a négy szomszédos mező valamelyikére, és minden egyes lépést egy időegység alatt hajt végre a katona. Az a cél, hogy a legrövidebb időn belül elérjenek egy kívánt elhelyezkedést. A parancsnok négy adatot: x y ih, tartalmazó parancsot adhat ki a katonáknak annak érdekében, hogy a kívánt elrendezést elérje, ahol
x y: a mozgatandó katona koordinátái

i: a mozgás iránya, ami lehet

L: lefelé, y irányban csökkenően
F: felfelé, y irányban növekvően
B: balra, x irányban csökkenően
J: jobbra, x irányban növekvően
h: a lépések száma a megadott irányban
Tehát mindegy egyes  x y i h parancs végrehajtása h ideig tart.
Csak olyan parancsot lehet kiadni, amely végrehajtása során nem kerül két katona ugyanabba a pozícióba, és a mozgó katona nem léphet át másik katonán.

Feladat:

Írj programot, amely megoldja az alábbi 3 részfeladatot
A. A legkisebb idő, amely a feladat megoldásához kell
B. A katonák egy lehetséges elhelyezkedése, ami a legrövidebb idő alatt elérhető.
C. A parancsok sorozata, amely a megoldást adja.
Bemenet:
A KATONAK.BE állomány első sorában a katonák (2<=N<=200) száma van. A következő N sor a katonák kezdeti elhelyezkedését adja meg, egy sorban egy katona x,y  koordinátái vannak egy szóközzel elválasztva.
Kimenet:
A KATONAK.KI állomány első sora az A. részfeladat megoldását, azaz a legrövidebb időt tartalmazza. Az állomány második sorában a B. részfeladat megoldását adó N számot kell írni egy-egy szóközzel elválasztva. Az i-edik szám azon katona y-koordinátája legyen, amelynek x koordinátája i a kívánt elhelyezkedésben. A harmadik sorba a parancsok P számát kell írni, amivel elérhető, hogy minden sorban és minden oszlopban legyen katona. A negyedik sortól P sorban kell megadni a parancsokat.
Példa:
 
KATONAK.BE KATONAK.KI
6
1 2
2 4
3 4
3 5
4 3
3 2
8
1 5 6 4 2 3
6
4 3 J 2
3 2 J 2
3 4 J 1
1 2 L 1
3 5 F 1
2 4 F 1

3. feladat: Fogadás (24 pont)
Byteland ország követsége fogadást rendezett. A fogadásra N számú ország nagykövetét hívták meg. A vendégek különböző időpontokban érkeztek, és minden vendég azonos ideig volt jelen a fogadáson. A házigazda feljegyezte, hogy ki-kivel találkozott a fogadás során. Az előbb érkezett A vendég találkozott a később érkezett B vendéggel, ha A később távozott, mint B érkezett. Azt is tudjuk, hogy az első vendég érkezésétől az utolsó távozásáig minden időpontban jelen volt legalább egy vendég.
A feladat annak kiderítése, hogy a vendégek milyen sorrendben érkezhettek a fogadásra.

Feladat:

Írj programot, amely kiszámítja a vendégek egy lehetséges érkezési sorrendjét (nem az érkezési időpontokat).
Bemenet:
A FOGAD.BE állomány első sora a vendégek (2<N<=200) számát tartalmazza. A második sorban a fogadás alatt találkozott vendégpárok száma áll (1<=M<=10000). A következő M sor mindegyike egy X Y számpárt (1<=X,Y<=N) tartalmaz egy szóközzel elválasztva, ami azt jelenti,  hogy az X és az Y vendég találkozott a fogadás során.
Kimenet:
A FOGAD.KI állomány első és egyetlen sorába N számot kell írni egy-egy szóközzel elválasztva, ami a vendégek egy lehetséges érkezési sorrendje.
Példa:
 
FOGAD.BE FOGAD.KI
4
3
1 2
2 4
3 4
1 2 4 3
(3 4 2 1 is jó)

Elérhető összpontszám: 75 pont + 25 pont a 2. fordulóból