Informatika gyűjtemény

Egy szinttel feljebb Robot

2004050607080910

NézetNyomtat

Robot

Egy gyárban a munkagépek négyzetrácsos elrendezésben vannak. A futószalagon érkező tárgyakat egy robotnak kell elszállítania a rendeltetési helyére. A robot a (0,0) mezőről indul, a tárgyakat érkezési sorrendjükben veheti le a futószalagról és egyszerre legfeljebb 3 tárgyat szállíthat. Ha több tárgyat szállít, akkor azokat tetszőleges sorrendben adhatja le a rendeltetési helyre. A robot a munkagépek felett mozoghat, egy lépésben szomszédos mezőre léphet egyet: balra, jobbra, felfelé, vagy lefelé. Egy lépése egy időegységet igényel. Miután leadta az egy menetben szállított tárgyakat, vissza kell térnie a kiindulási helyére, a (0,0) mezőre.

Feladat

Készíts programot, amely kiszámítja, hogy legkevesebb mennyi idő alatt tudja a robot elszállítani az összes tárgyat, és meg is ad egy szállítási ütemezést!

Bemenet

A ROBOT.BE szöveges állomány első sorában a tárgyak N (1≤N≤10000) száma van. A következő N sor mindegyikében két pozitív egész szám van; X és Y (1≤X, Y≤1000) egy szóközzel elválasztva, egy tárgy rendeltetési helyének koordinátái. Ugyanarra a helyre több tárgy is érkezhet.

Kimenet

A ROBOT.KI szöveges állomány első sorába azt a legkisebb M számot kell írni, amely alatt a robot az összes tárgyat el tudja szállítani a rendeltetési helyére. A második sorba egy számsorozatot kell írni (egy-egy szóközzel elválasztva), amely megadja, hogy a robot egy-egy menetben hány tárgyat szállít. Tehát a számsorozat minden eleme 1,2, vagy 3 lehet.

Példa

ROBOT.BE			ROBOT.KI
6				54
1 2				3 3
3 2
4 7
8 3
5 7
9 2

Tesztadatok

robot.zip (készítette Fehér Gábor)