Preparing NOJ

After receiving your program from Problem 1, the scientists used it to try to verify their conjecture

(that the sizes of stacked floating mountains formed a generalized Fibbonacci sequence). However,

although they were able to verify the conjecture for a large number of cases, they discovered that there

were stacked structures that did not satisfy the property. Further, they also discovered that floating

mountains may have negative weights (they conjecture that this has to do with some unique properties

of “Unobtainium”).

The scientists now believe that the sizes of the stacked mountains did follow generalized Fibbonacci

sequence property originally (when they were formed), but they believe that some of the mountains

in the structures may have been destroyed or may have drifted apart. They further observed that at

most 9 consecutive mountains in the stack may be removed without compromising the stability of the

structure. They are now trying to verify this new conjecture.

You are to write a program for this purpose. Specifically, given a sequence of numbers, some

of which may be negative, you must determine if the numbers are part of a generalized Fibbonacci

sequence (let’s call it the original sequence), such that all consecutive pairs of numbers in the input

sequence are less than 10 apart (i.e., fewer than 9 items between any consecutive pair of numbers) in

the original generalized Fibbonacci sequence.

As an example, the sequence: 0 6 16, follows this property because the numbers are from the

following generalized Fibbonacci sequence:

0 2 2 4 6 10 16

and 0 & 6 are only 4 numbers apart in the generalized sequence.

As another example: the sequence -22 8 77 125, also satisfies the property. Here is the corresponding

generalized Fibbonacci sequence:

37 -22 15 -7 8 1 9 10 19 29 48 77 125

The first line in the test data file contains the number of test cases, n. After that, each line

contains one test case. The test case begins with the number of elements in the sequence, k (k < 50),

and then we have k numbers which form the sequence. Assume the numbers are all > −230 and < 230.

For each test case, you are to output ”STABLE” (if the sequence satisfies the property)

followed by the first five elements of the generalized Fibbonacci sequence (beginning with the first

number in the input sequence), or ”UNSTABLE” (if it does not). If multiple generalized Fibbonacci

sequences are possible, select the sequence with the smallest gap (i.e., number of missing numbers)

between the first two numbers.

3

3 0 6 16

4 -22 8 77 125

4 1 1 1 1

STABLE 0 2 2 4 6

STABLE -22 15 -7 8 1

UNSTABLE

undefined

本题由旧版NOJ导入，来源：Internet