tren

Vasile organizeaza nunta prietenului sau Ion. Unul dintre elementele specifice zonei folclorice este un dans, denumit “trenul”. Toti invitatii se aseazaîn rând, unul dupa celalalt si fiecare persoana, cu exceptia primeia, pune mâinile pe umerii persoanei din fata sa. Apoi “trenul” astfel format se plimba prin întreaga încapere, în ritmul muzicii. Vasile are un simt estetic deosebit si vrea ca “trenul” sa arate bine. Daca doua persoane care stau una dupa alta au înaltimi foarte diferite, trenul nu arata bine. Familia lui Ion este teribil de conservatoare si nu ar permite ca în fata unui membru al familiei sa fie plasat un alt membru al familiei, mai tânar decât acesta. Sigur, ceilalti invitati pot sa stea cum doresc.

Cerinta

Date fiind înaltimile tuturor invitatilor si ordinea membrilor familiei lui Ion (descrescator dupa vârsta), scrieti un program care sa determine o modalitate de a construi “trenul” astfel încât nici unul dintre membrii familiei lui Ion sa nu aibaîn fata sa pe cineva din familie mai tânar, iar suma diferentelor de înaltime între oricare doi vecini sa fie minima.

Date de intrare

Pe prima linie a fisierului de intrare tren.in se afla doua numere naturale N si K separate prin spatiu (N reprezinta numarul total de invitati, iar K numarul de membri ai familiei lui Ion)Membrii familiei lui Ion sunt primii K invitati si sunt numerotati descrescator dupa vârsta. Deci, persoana 1 este cel mai batrân membru al familiei lui Ion, iar persoana K este cel mai tânar. Fiecare dintre urmatoarele N linii contine un numar natural V, care reprezinta, în ordine, înaltimile invitatilor (mai exact, pe linia i+1 se afla înaltimea invitatului i).

Date de iesire

Fisierul de iesire tren.out contine pe prima linie valoarea minima a sumei diferentelor înaltimilor oricaror doi vecini. Fiecare din urmatoarele N linii contine câte un numar natural reprezentând numarul de ordine al invitatilor în ordinea în care acestia sunt plasati în “tren”.

Observatie: solutia poate sa nu fie unica.

Restrictii

Exemple
 

Exemplul 1

Exemplul 2

Exemplul 3

tren.in

3 2
2000
1200
1500

5 3
1900
1300
1500
1200
1600

6 3
1700
1900
1500
1800
1750
1300

tren.out

800
1
3
2

1000
1
5
4
2
3

800
1
5
4
2
3
6

Timp maxim de executie/test: 0.2 secunde

prof. Serban Marinel
Liceul de Informatica "Gr. C. Moisil" Iasi
Contact: marinel@liis.ro