網際網路程式設計全國大賽

決賽題目


題目(7) 等差數列
輸入檔SEQUENCE.IN
輸出檔SEQUENCE.OUT
執行時間限制30 秒

在範圍 n (n 為正整數,且 n <= 1000) 的限制之下,一個首項為 a0,公差為 d (a、d 為正整數) 的等差數列 ai = a + (i-1)d。今給一範圍 n 以及一正整數序列 (由小至大排列),已知該序列的元素中存在至少一個的等差數列。請於該數列中找出一等差數列,使得此序列中滿足此等差數列的元素數量最多。舉例而言,範圍 n = 25 時,如果序列為 2, 7, 9, 10, 13, 16, 19, 22, 23, 25,則答案為首項 7,公差 3,因為此序列中滿足此等差數列的元素有七個;且無法找到另一個等差數列,使得序列中滿足該等差數列的元素多於七個。 (另一個等差數列:首項 2,公差 7,只有四個元素符合)。如有兩組以上等差數列滿足條件時,則選擇首項最小的那組輸出,首項相同時,選擇公差最小的那組輸出。以下為輸入、輸出格式。(以上述範圍及序列為例)

輸入檔說明

輸入檔中可以包含多組測試資料。第一行是測試資料的個數。接下來,每組測試資料的第一行是數列的範圍,後面是序列,每行一個數字,每個數列均以 0 結束。

輸出檔說明

輸出檔中,每組測試資料有一行輸出。每行包含兩個數字,中間以一個以上空格分開。第一個數字是首項,第二個數字是公差。

範例

SEQUENCE.IN
2
25
2
7
9
10
13
16
19
22
23
25
0
2
1
2
0
SEQUENCE.OUT
7 3
1 1