Ca în mai toate poveștile, Făt-Frumos a căutat o Cosânzeană și a găsit-o, dar tatăl ei i-a cerut să-i paveze drumul de lungime care leagă castelele sale. Dalele cu care va pava drumul au aceeași lățime (egală cu lățimea drumului) și lungimi numere naturale. Fiind un împărat cam sâcâit, acesta dorește ca pavarea să se facă folosind un număr minim de dale, diferența de lungime între două dale vecine să nu fie mai mare ca , iar prima și ultima dală să fie de lungime . Împăratul nu se mulțumește să primească de la Făt-Frumos doar un număr (numărul minim de dale necesare): el vrea și posibilitatea de pavare cea mai mică din punct de vedere lexicografic.
Compararea lexicografică a două șiruri de numere este o extensie la numere a comparării alfabetice a două cuvinte. Astfel, fiind date două șiruri numerice de aceeași lungime, și , acestea sunt egale dacă și numai dacă pentru orice de la la . Șirul este mai mic lexicografic decât șirul dacă există o valoare astfel încât și pentru orice de la la . De exemplu, șirul este mai mare lexicografic decât șirul pentru că prima poziție pe care valorile diferă este poziția (), fără a mai conta valorile aflate după aceasta.
Cerință
Cunoscând lungimea drumului, determinați numărul minim de dale necesare pavării și posibilitatea de pavare cu număr minim de dale, care este cea mai mică din punct de vedere lexicografic.
Date de intrare
Prima linie a fișierului pavare.in
conține un număr natural . Linia a doua conține un număr natural ce reprezintă lungimea drumului.
Date de ieșire
Dacă va avea valoarea , în fișierul pavare.out
se va scrie, pe prima linie, doar numărul minim de dale necesare pavării.
Dacă va avea valoarea , în fișierul pavare.out
se va scrie, pe prima linie, un șir de numere separate prin câte un spațiu, ce reprezintă soluția de pavare a drumului, folosind un număr minim de dale, care este cea mai mică din punct de vedere lexicografic.
Restricții și precizări
- ;
- Pentru % din punctaj .
Exemplul 1
pavare.in
1
7
pavare.out
5
Explicație
Pentru drumul de lungime sunt necesare dale.
Exemplul 2
pavare.in
2
7
pavare.out
1 1 2 2 1
Explicație
Soluțiile cu număr minim de dale sunt: , , .