Átjáró

Egy iskolai számítógépteremben a munkaállomások hosszú sorban helyezkednek el. Elhatározták, közülük pontosan M darabból átjárót készítenek, amely közvetlenül kapcsolódik az Internet gerincvezetékre. A többi munkaállomást a hozzá legközelebb eső átjáróhoz kapcsolják. A hatékonyság érdekében az átjárókat úgy kell megválasztani, hogy a munkaállomás - legközelebbi átjáró távolságok legnagyobbika a lehető legkisebb legyen. A munkaállomásokat egy egyenes mentén képzeljük el, pozíciójukat így egyetlen koordinátával megadhatjuk. Két munkaállomás távolsága az őket jellemző koordináták különbségének abszolút értéke.

Feladat:

Készíts programot, amely megadja az munkaállomás-átjáró távolságok maximumát és az átjáróként használt munkaállomások pozícióját.

Bemenet:

A bemeneti állomány néhány teszt adatsort tartalmaz. Az állomány első sorában lévő (T) egész szám a tesztesetek számát adja meg. Minden tesztesethez két sor tartozik. Az első sorban két egész szám, az N és az M található. Az N (1<=N<=100) a munkaállomások, M (1<=M<=N) pedig az átjárók számát adja meg. Az adott tesztesethez tartozó következő sorban N darab pozitív egész szám van, növekvő sorrendben, megadva a munkaállomások pozícióját. A pozíciót megadó X koordináta a [0;30000] intervallumban van.

Kimenet:

A kimeneti állomány tesztesetenként két sort tartalmaz. Az első sor egyetlen egész szám, a D, amely a munkaállomás - legközelebbi átjáró távolságok legnagyobbika az ideális elrendezés esetén. A második sor pontosan M darab egészet, az átjárók pozícióját tartalmazza. Ha több lehetséges pozíciósor van, a kimeneti állományba csak az egyiket kell írni.

Példa:

gate.in

gate.out

2
6 2
1 3 7 10 15 17
4 4
1 3 5 7

5
3 15
0
1 3 5 7

 

 

 

(ACM SZTE csapatverseny 2000)