Informatika gyűjtemény

Egy szinttel feljebb Fal

2004050607080910

NézetNyomtat

Fal

A mohó Király megbízta Főépítészét, hogy építsen falat a kastély köré. A Király annyira mohó volt, hogy nem fogadta el a Főépítész tervét, a tökéletes formájú téglafalat, tornyokkal, hanem azt parancsolta, hogy a lehető legolcsóbban készüljön el a fal, de azért nem mehet túl közel (egy adott távolságnál közelebb) a kastélyhoz.
Ha a Király úgy látja, hogy a Főépítész nem teljesítette maradéktalanul a parancsot, annak könnyen fejvesztés lehet a következménye.
Az egyetlen segítség, hogy a kastély alaprajza sokszög alakú, és a sokszög csúcsainak koordinátáit már az előző uralkodó alatt meghatározták, a birodalomban használt derékszögű koordinátarendszerben.

Feladat

Segítsünk a Főépítésznek, írjunk programot, ami kiszámolja a lehetséges legrövidebb fal hosszát, ami megfelel a feltételeknek.

Bemenet

A wall.in bemenet első sora az N és L egészeket tartalmazza.N (3 $\le$ N $\le$ 1000) a kastélyalaprajz csúcsainak száma, L (1 $\le$ L $\le$ 1000) pedig a megengedett minimális távolság a fal és a kastély között, méterben.
A következő N sor a kastélyalaprajz csúcsainak koordinátáit adja meg, az óramutató járása szerinti körüljárási irányban. (-10000 $\le {\tt X}_i, {\tt Y}_i \le$ 10000) Minden csúcs különbözik, és a sokszög oldalai a csúcsokon kívül nem metszik egymást.

Kimenet

A wall.out kimeneti fájl egyetlen számot tartalmaz, a minimális szükséges falhossz értékét méterben megadva. A kerekítésnél figyeljünk arra, hogy fél méternél nagyobb pontatlanság a Főépítész fejébe kerülhet.

Példa

wall.in wall.out
9 100
200 400
300 400
300 300
400 300
400 400
500 400
500 200
350 200
200 200
1628

Tesztadatok