Ksum

Time limit: 1s Memory limit: 256MB Input: ksum.in Output: ksum.out

Cerință

Se dau două numere nn și kk. Aflați orice șir de kk numere naturale x1,x2,…,xkx_1,x_2,\ldots,x_k care respectă următoarele condiții:

  • x1<x2<…<xkx_1 < x_2 < \ldots < x_k;
  • x1+x2+…+xk=nx_1+x_2+\ldots+x_k=n.
  • Dintre toate șirurile care respectă condițiile anterioare, xk−x1x_k-x_1 este minim.

Date de intrare

Pe prima linie a fișierului de intrare ksum.in se vor afla două numere naturale nn și kk.

Date de ieșire

Fișierul de ieșire ksum.out va conține kk numere naturale x1,x2,…,xkx_1,x_2,\ldots,x_k care respectă condițiile din enunț.

Restricții și precizări

  • 1≤n≤10181 \le n \le 10^{18};
  • 1≤k≤1061 \le k \le 10^6, k⋅(k+1)2≤n\frac{k \cdot (k+1)}{2} \le n;
  • Pentru 1010 puncte, k≤2k \le 2;
  • Pentru încă 3030 de puncte, n≤106n \le 10^6;
  • Pentru încă 3030 de puncte, n≤109n \le 10^9;
  • Pentru restul de 3030 de puncte, nu se impun restricții suplimentare.

Exemplul 1

ksum.in

37 5

ksum.out

5 6 7 9 10

Explicație

37=5+6+7+9+1037=5+6+7+9+10, iar 10−5=510-5=5 este cea mai mică valoare posibilă a lui x5−x1x_5-x_1.

Exemplul 2

ksum.in

1000000000 1

ksum.out

1000000000

Explicație

109=10910^9=10^9

Exemplul 3

ksum.in

14 4

ksum.out

2 3 4 5

Explicație

14=2+3+4+514=2+3+4+5

Log in or sign up to be able to send submissions!