Istorie: “În 29 septembrie 1474 Ștefan cel Mare a cerut ajutor papei Sixtus al IV-lea în vederea apropiatului război care bătea la ușă”. Apropiindu-se toamna și fiind în criză de timp din cauza războiului iminent, Ștefan a hotărât să supravegheze personal recoltarea strugurilor de la viile Huși, din apropiere de Vaslui, vie la care Ștefan ținea foarte mult. Strugurii recoltați au fost depozitați în grămezi la marginea fiecărui rând de vie. Se cunoaște, pentru fiecare dintre cele rânduri, cantitatea (în ocale) recoltată de pe rândul respectiv. Ștefan a hotărât ca transportul strugurilor la cramă să se facă cu ajutorul unor căruțe, o căruță putând transporta orice cantitate de struguri. Recolta fiind foarte bogată, transportul se va face în una sau mai multe ture. Ștefan, care supraveghea atent activitatea, a constatat că la fiecare tură dispune de exact atâtea căruțe câte grămezi au mai rămas de transportat. Ștefan era un conducător corect astfel încât a hotărât ca toate căruțele disponibile la un moment dat să transporte aceeași cantitate de struguri.
Cerințe
- Determinați cea mai lungă secvență de grămezi pe care le pot transporta cele căruțe în prima tură.
- Determinați o modalitate de transport a tuturor strugurilor la cramă, conform cerințelor lui Ștefan.
Date de intrare
Fișierul de intrare struguri.in
conține pe prima linie două numere naturale și , separate printr-un spațiu, reprezentând cerința ( sau ) și numărul de grămezi de struguri care trebuie transportate. Linia a doua conține numere naturale nenule, separate prin câte un spațiu, reprezentând cele cantități de struguri.
Date de ieșire
Dacă cerința este , în fișierul de ieșire struguri.out
se vor afișa pe prima linie trei numere naturale, separate prin câte un spațiu, reprezentând lungimea secvenței de grămezi, numărul de ordine al primei grămezi din secvență, respectiv numărul de ordine al ultimei grămezi din secvență.
Dacă cerința este , în fișierul de ieșire se vor afișa: pe prima linie numărul de ture; fiecare dintre următoarele linii are aceeași structură:
- primele trei valori reprezintă:
- numărul de căruțe care transportă struguri în tura respectivă
- cantitatea de struguri pe care o transportă fiecare căruță
- numărul de grămezi transportate;
- următoarele valori de pe linia respectivă reprezintă numerele de ordine ale grămezilor transportate în tura respectivă; valorile vor fi afișate ordonate crescător și separate prin câte un spațiu.
Restricții și precizări
- ;
- Cantitățile sunt mai mici ca ;
- Pentru ambele cerințe orice soluție corectă este acceptată;
- Pentru cerința se acordă puncte, iar pentru cerința se acordă puncte.
# | Punctaj | Restricții |
---|---|---|
1 | 12 | , din care 5 puncte se acordă pentru cerința 1 |
2 | 30 | , din care 12 puncte se acordă pentru cerința 1 |
3 | 14 | , din care 8 puncte se acordă pentru cerința 1 |
4 | 27 | , din care 21 de puncte se acordă pentru cerința 1 |
5 | 17 |
Exemplul 1
struguri.in
1 10
2 1 3 4 5 10 6 8 9 7
struguri.out
5 6 10
Explicație
De la grămada a șasea până la a zecea sunt în total ocale; fiecare dintre cele căruțe va transporta câte ocale.
Exemplul 2
struguri.in
2 5
7 8 11 2 5
struguri.out
3
5 4 3 1 2 5
2 1 1 4
1 11 1 3
Explicație
O soluție posibilă poate fi următoarea:
Tura 1: există grămezi, deci sunt căruțe (fiecare căruță transportă câte oca din grămezi ())
Tura 2: au mai rămas grămezi deci sunt căruțe, fiecare transportă câte oca din grămada
Tura 3: a mai rămas o grămadă deci dispunem de căruță, ce va transporta ocale din grămada
O altă soluție corectă poate fi descrisă în fișierul de ieșire astfel:
2
5 3 2 1 2
3 6 3 3 4 5
În această situație sunt 2 ture, în prima se transportă cu fiecare din cele căruțe, câte ocale, din grămezile și . La a două tură se vor folosi căruțe care transportă fiecare câte ocale din grămezile , și