An enormous puppy was looking down at her with large round eyes, and feebly stretching out one paw, trying to touch her. "Poor little thing!" said Alice, in a coaxing tone, and she tried hard to whistle to it; but she was terribly frightened all the time at the thought that it might be hungry, in which case it would be very likely to eat her up in spite of all her coaxing.
Hardly knowing what she did, she picked up a little bit of stick, and held it out to the puppy; whereupon the puppy jumped into the air off all its feet at once, with a yelp of delight, and rushed at the stick, and made believe to worry it; then Alice dodged...
"Puzzles from Wonderland." Lewis Carroll
The robots want to saw the stick into several pieces. The length of the stick is N inches. We should help our robots saw the stick. All of the parts should have integer lengths (1, 2, 3 .. inches, but not 1.2). As we love the numerical series and especially the Triangular numbers (read more about Triangular numbers on Wikipedia), you should saw the stick so that the lengths form the consecutive fragment of the Triangular numbers series with the maximum quantity (fragment's length). The parts should have different lengths (no repeating). For example: 64 should be divided at 15, 21, 28, because 28, 36 is shorter and 1, 3, 15, 45 is not a consecutive fragment.
You are given the stick length (N). You should return the list of lengths (integers) for the parts in ascending order. If it's not possible and the problem doesn’t have a solution, then return an empty list.
Input: The length of a stick as an integer.
Output: A fragment of the Triangular numbers as a list of integers (sorted in ascending order) or an empty list.
stick(64) == [15, 21, 28] stick(371) == [36, 45, 55, 66, 78, 91] stick(225) == [105, 120] stick(882) == 
How it is used:
In this task you will learn about triangular numbers.
A triangular number or triangle number counts the objects that form an equilateral triangle.
This is an interesting sequence which has various applications.
Here’s a real world application: In a competitive tournament format that uses a round-robin group stages, the number of matches that need to be played between n teams is equal to the triangular number Tn−1. For example, a group stage with 4 teams requires 6 matches, and a group stage with 8 teams requires 28 matches.
Precondition: 0 < length < 1000