Administratorul rețelei cu calculatoare de la SRI împarte, din motive strategice, aceste calculatoare în mai multe grupuri. De fapt, important este doar numărul de grupuri și numărul de calculatoare din fiecare grup, așa că împarțirea este descrisă prin șirul numerelor de calculatoare din fiecare grup, ordonat crescător.
Periodic, el procedează la o nouă împarțire pe grupe a calculatoarelor. Dintre toate împarțirile posibile ale calculatoarelor în grupuri putem alege ca urmatoare împarțire doar aceea a cărei descriere precede sau succede lexicografic imediat împarțirii curente.
Nota: Spunem că șirul precede lexicografic șirul dacă:
- există un indice , astfel încât pentru toți indicii și
SAU
- și pentru toți indicii
Exemple:
- precede lexicografic
- precede lexicografic
Cerință
Dându-se o împarțire în grupe a celor calculatoare, determinați cele două variante candidate pentru împartirea următoare.
Date de intrare
Fișier de intrare: grup.in
Linia : , , numere naturale nenule, reprezentând numărul total () al calculatoarelor din rețea și numărul () de grupe.
Linia : , , , , numărul calculatoarelor din fiecare grupă.
Date de ieșire
Fișier de ieșire: grup.out
Linia : , numărul de grupe din împarțirea care precede lexicografic imediat împartirea dată;
Linia : , , , , numărul de calculatoare din cele grupe ale împarțirii precedente;
Linia : , numărul de grupe din împarțirea care succede lexicografic imediat împarțirea dată;
Linia : , , , , numărul de calculatoare din cele grupe ale împarțirii următoare.
Restricții și precizări
- ;
Exemplu
grup.in
14 3
2 6 6
grup.out
3
2 5 7
2
2 12