Közép-európai Informatikai Olimpia 1995

Szeged, Magyarország



Kert - 2. Nap, 1. feladat (30 pont, időlimit: 30 mp)
Egy kertben N fa van. A kert alakja egy 1000 méter oldalhosszúságú négyzet. Keressük azt a legnagyobb területű téglalapot, amelynek belsejében nincs fa. A téglalap oldalai párhuzamosak a kert megfelelő oldalaival. A téglalap oldalai tartalmazhatják a kert oldalait és tartalmazhatnak fákat.
A fákat helyzetük (x, y) koordinátájával adjuk meg. A fákat kiterjedés nélküli pontoknak tekintjük. A koordinátarendszer origója a kert bal alsó sarka, tengelyei párhuzamosak a kert oldalaival.

Bemenet:

A DAY2A.DAT állomány első sora a fák számát tartalmazza (1<=N<=600). A következő N sorban a fák helyét megadó egész koordináták következnek (x, y) (0<x<1000, 0<y<1000).
Kimenet:
A DAY2A.SOL állományba a legnagyobb területű téglalap területét írd.
Példa:
 
DAY2A.DAT DAY2A.SOL
7
280 100
200 600
400 200
135 800
800 400
600 800
900 210
360000


Party - 2. Nap, 2. feladat (30 pont, időlimit: 30 mp)
Egy vállalat igazgatója partyt rendez az alkalmazottaknak. A vállalatnak hierarchikus felépítése van: A főnök-beosztott kapcsolatrendszer egy fát alkot, melynek gyökerében az igazgató található. A célból, hogy a partyn mindenki jól érezze magát, az igazgató elrendelte, hogy egy beosztott egyetlen főnökével se kerüljön egy asztalhoz.
Számítsd ki, minimálisan hány asztal szükséges az előző feltételnek megfelelő ülésrend kialakításához. A program inputja a cég közvetlen főnök-beosztott kapcsolatait tartalmazza. A főnök-beosztott kapcsolatot a közvetlen főnök-beosztott kapcsolatok segítségével a következő módon definiáljuk: Egy  P személy főnöke a Q -nak, ha P közvetlen főnöke Q-nak, vagy létezik P1, ... ,Pk (1<k)  személy, melyre  P=P1, Q=Pk és Pi közvetlen főnöke Pi+1 (i=1, ... ,k-1).
A résztvevők száma  N (1<=N<=200),  és minden asztalnál T (2<=T<=10) szék van.

Bemenet:

A vállalat dolgozóit az első N (1<=N<=200) természetes szám azonosítja. A vállalat igazgatójának azonosítója 1 és neki nincs főnöke. A DAY2B.DAT első sora az egy asztalnál lévő székek számát T (2<=T<=10), a második sor pedig a party résztvevőinek számát N (1<=N<=200)  tartalmazza. A résztvevőket az 1..N természetes számok azonosítják. A harmadik sorban N szám következik. Az i. szám az i. személy közvetlen főnökének sorszámát jelzi. A sor első száma 0, jelezve, hogy az igazgatónak nincs főnöke.
Kimenet:
A DAY2B.SOL állományba a fent megadott ülésrendhez minimálisan szükséges asztalszámot írd.
Példa:
 
DAY2B.DAT DAY2B.SOL
4
13
0 1 9 9 9 2 2 1 1 7 8 8 10 
5


Mérőedények - 2. Nap, 3. feladat (40 pont, időlimit: 30 mp)
Van három edényünk. Mindhárom térfogata 100 egység (cm3). Az első két edényen teljesen egyforma beosztások vannak, minden beosztás egy, az edény aljától mért térfogatot jelöl. Ezt a térfogatot a beosztás mellé írtuk (lásd az ábrán). Kezdetben az első edényben 100 egység folyadék van, a másik kettő pedig üres. Írj programot, amely eldönti, hogy ki tudunk-e venni 1 egység folyadékot a harmadik edénybe, és ha igen, számítsd ki, minimum hány lépés szükséges ehhez. Minden lépésben, a művelet elvégzése után a felhasznált edények közül legalább az egyikben a folyadéknak valamelyik beosztásig kell érnie vagy valamelyik edénynek ki kell ürülnie. A műveletek során végig tudjuk, hogy az egyes edényekben mennyi folyadék van.

Bemenet:

A DAY2C.DAT szövegállomány első sora az első két edényen lévő beosztások számát tartalmazza (1<=N<=20). Az állomány további részében N egész szám következik növekvő sorrendben: az egyes beosztásokhoz tartozó térfogatértékek. Minden V térfogatértékre igaz, hogy (1<=V<=100) és a legnagyobb érték 100.
Kimenet:
A DAY2C.SOL szövegállomány első sorába írd a "YES"  szöveget, ha 1 egység kitölthető a harmadik edénybe, "NO"-t ha nem. Ha a válasz az első kérdésre igen, a második sorba írd a kitöltéshez szükséges minimális lépésszámot.
Példa:
 
DAY2C.DAT DAY2C.SOL
13  37  71  100 YES
8