Fie şirul tuturor numerelor naturale de la 1 la un număr oarecare N. Considerând asociate câte un semn (+ sau -) fiecărui număr şi adunând toate aceste numere cu semn se obţine o sumă S. Problema constă în a determina pentru o sumă dată S numărul minim N pentru care, printr-o asociere de semne tuturor numerelor de la 1 la N, se poate obţine S.
Cerința
Pentru un S dat, găsiţi valoarea minimă N şi asocierea de semne numerelor de la 1 la N pentru a obţine S în condiţiile problemei.
Date de intrare
Fișierul de intrare sumaoni.in conține pe prima linie un întreg pozitiv S reprezentând suma ce trebuie obţinută.
Date de ieșire
Fișierul de ieșire sumaoni.out va conține pe prima linie numărul minim N pentru care se poate obţine suma S, iar pe următoarele linii, până la sfârşitul fişierului, numerele care au semn negativ, câte unul pe linie. Ordinea de afişare a numerelor nu are importanţă. Celelalte numere care nu apar în fişier se consideră pozitive.
Restricții și precizări
1 ≤ S ≤ 100.000- Dacă există mai multe soluţii se cere doar una.
Exemplul 1:
sumaoni.in
12
sumaoni.out
7 1 7
Explicație
Suma 12 se poate obţine din minimum 7 termeni astfel: 12 = -1 + 2 + 3 + 4 + 5 + 6 - 7. Atenţie: nu este singura posibilitate de asociere de semne termenilor de la 1 la 7.
Exemplul 2:
sumaoni.in
15
sumaoni.out
5
Explicație
Suma 15 se poate obţine din minimum 5 termeni astfel: 15 = 1 + 2 + 3 + 4 + 5. Pentru că toate numerele din șir au semnul +, atunci se afișează doar valoarea lui N.