Az S. 59. feladat (2011. január) |
S. 59. Egy befektető Manhattan szívében új luxus bevásárlóközpont építését tervezi. Jól tudja, hogy a legnagyobb látogatottság úgy érhető el, ha a helyszín minél közelebb esik a lehetséges vásárlókhoz.
Ezért részletesen felmérte, hogy a város mely részéből hány vásárlóra lehet számítani, most pedig -- mint legjobb tanácsadóját -- minket kért meg, hogy javasoljunk számára olyan helyszínt, melynek eléréséhez átlagosan a lehető legkevesebbet kell utazniuk a vásárlóknak.
Írjunk programot a feladat megoldására. A megoldás során a hagyományokhoz hűen Manhattan úthálózatát tekintsük egy (kétirányú utakból álló) szabályos rácsnak, melynek kereszteződései az egész koordinátájú pontokban vannak.
Az egyszerűség kedvéért azonosítsuk a hozzájuk legközelebb eső kereszteződéssel mind a bevásárlóközpont, mind a vásárlók lakásainak helyét, a , koordinátájú kereszteződések távolsága pedig rács menti legkisebb távolságuk, azaz a következő legyen:
A program a felmérés eredményét a standard bemenetről olvassa. Ennek első sora a felmért kereszteződések számát tartalmazza, az ezt követő N darab sora pedig egy-egy kereszteződést ír le. Az i+1-edik sorban egy-egy szóközzel elválasztva három egész szám, az i-edik kereszteződés koordinátái, illetve az onnan várható vásárlók 1wi1000 száma található.
A fenti jelölésekkel tehát a bevásárlóközpont számára azt az optimális kereszteződést keressük, melytől a felmért kereszteződések -- az egy kereszteződésben lakók számával súlyozott -- átlagos távolsága minimális:
A standard kimenet egyetlen sorába mindössze három, szóközzel elválasztott szám kerüljön: a bevásárlóközpont optimális helyszínének x0, y0 koordinátái, illetve az ehhez tartozó átlagos távolság, 4 tizedes pontossággal. Több megoldás esetén bármelyik megadható.
Értékelés: a maximális 8 pont eléréséhez a programnak a legnagyobb teszteseteket is egy percen belül meg kell oldania, ugyanakkor már 5 pont szerezhető az N1000 feltételnek eleget tevő tesztesetek megoldásával is. További 2 pontot ér a dokumentáció.
Beküldendő a feladat megoldását tartalmazó forrás és projektállományok (az .exe és más a fordító által generált kiegészítő állományok nélkül), valamint a megoldás menetét röviden bemutató dokumentáció (s59.txt, s59.pdf, ...) egy tömörített mappában (s59.zip).
(10 pont)
A beküldési határidő 2011. február 10-én LEJÁRT.
Megoldásvázlat
A megoldáshoz azt kellett észrevenni, hogy az átlagos távolság épp akkor minimális, amikor a súlyozott távolságösszeg minimális (hisz egymás konstansszorosai), ennek pedig függőleges és vízszintes összetevői egymástól teljesen függetlenek, így külön-külön minimalizálhatóak.
Tehát két egydimenziós problémát kaptunk: két, abszolútérték-függvények összegeiből felépített függvény minimumhelyét kell meghatároznunk. Az ilyen függvények konvexek, és egyenes szakaszokra bonthatóak: minimumhelyük tehát ott van, ahol ezen szakaszok meredeksége negatívból pozitívba fordul, amely egy rendezés után lineáris időben meghatározható.
Statisztika:
8 dolgozat érkezett. 10 pontot kapott: Borsos 607 Zalán, Nagy 111 Miklós, Szabó 928 Attila. 9 pontot kapott: Nagy Róbert. 8 pontot kapott: 1 versenyző. 7 pontot kapott: 1 versenyző. 5 pontot kapott: 1 versenyző. 4 pontot kapott: 1 versenyző.
A KöMaL 2011. januári informatika feladatai