În preajma Crăciunului, pentru transportul celor porci de la ferma proprie la piață pentru vânzare, un gospodar are la dispoziție un singur mijloc de transport — o remorcă. Această remorcă poate transporta doar o greutate maximă , număr natural. Gospodarul știe greutatea a fiecărui porc (), număr natural.
Cerință
Să se realizeze o repartizare a porcilor în grupuri astfel încât mijlocul de transport să poată realiza trei drumuri până la piață, iar diferența de greutate dintre cele transporturi să fie minimă.
Date de intrare
Fișierul de intrare ferma.in conține pe prima linie trei valori , , , separate prin câte un spațiu, reprezentând cerința (, sau ), numărul de porci și greutatea maximă permisă în remorcă. Următoarea linie conține valori naturale nenule separate prin câte un spațiu, , reprezentând greutățile celor porci.
Date de ieșire
Dacă cerința este 1, fișierul de ieșire ferma.out va conține pe prima linie numere naturale separate prin câte un spațiu, reprezentând sumele greutăților din cele transporturi, scrise în ordine crescătoare.
Dacă cerința este 2, fișierul de ieșire va conține pe prima linie valori din mulțimea , indicând transportul din care face parte fiecare porc; în cazul în care există mai multe soluții se va afișa soluția minimă din punct de vedere lexicografic.
Dacă cerința este 3, fișierul de ieșire va conține pe prima linie un sigur număr natural reprezentând diferența de greutate dintre cele transporturi.
Restricții și precizări
- , pentru
- Pentru toate testele există soluție.
Exemplul 1
ferma.in
1 10 238
106 58 73 48 64 64 61 77 62 98
ferma.out
237 237 237
Explicație
Suma greutăților este în fiecare transport.
Exemplul 2
ferma.in
2 10 238
106 58 73 48 64 64 61 77 62 98
ferma.out
1 1 1 2 2 2 2 3 3 3
Explicație
Primii porci în transportul , următorii porci în transportul , ultimii porci în transportul .
Alte soluții corecte:
- ;
- ;
- etc.
Exemplul 3
ferma.in
3 10 238
106 58 73 48 64 64 61 77 62 98
ferma.out
0
Explicație
Diferența este .
Exemplul 4
ferma.in
1 7 33
9 1 8 2 7 3 4
ferma.out
11 11 12
Explicație
Transporturile și au fiecare greutatea , iar transportul are greutatea .
Exemplul 5
ferma.in
2 7 33
9 1 8 2 7 3 4
ferma.out
1 1 2 1 3 2 3
Explicație
O altă soluție corectă este , dar nu este minimă lexicografic.
Exemplul 6
ferma.in
3 7 33
9 1 8 2 7 3 4
ferma.out
1
Explicație
Cea mai mare diferență între cele transporturi este .