Jewel Pair


Submit solution

Points: 20
Time limit: 1.0s
Memory limit: 64M

Author:
Problem type

題目說明

你手上有一條由 n 顆寶石組成的長鏈,其中每顆寶石都有一個正整數編號代表其種類,
你的任務是從這條長鏈中切出最多組成對小段。切割規則如下:

  • 一個連續子序列的第一顆與最後一顆寶石編號必須相同
  • 兩組序列之間除了端點可以重合外,內部區間不可重疊。
    例如:若第一組選取範圍為第i到第j顆寶石,
    第二組選取範圍為第a到第b顆,
    則必須滿足 a >= j 或 i >= b。

請撰寫一個程式:計算出在不違反規則的前提下,最多可以切出多少組成對小段。

輸入

由鍵盤輸入寶石數量整數 n (1 <= n <= 100000),
以及 n 個代表寶石種類的正整數。

輸出

請由螢幕輸出該組測試資料中最多能切出的成對小段數量。

樣本測資

輸入 輸出 說明
DataSet1 5
1 2 3 4 5
0 數字完全不重複,無法切出任何一段
DataSet2 6
1 2 1 2 1 2
2 最多可切出2段。 [1,2,1] 與 [1,2,1],其中index 2的1同時為兩段端點。
DataSet3 5
1 1 1 1 1
4 最多可切出4段。相鄰的 1, 1 皆可成對:[1,1], [1,1], [1,1], [1,1]
DataSet4 8
10 20 10 30 40 30 50 50
3 最多可切出3段。[10,20,10], [30,40,30], [50,50]

Comments

There are no comments at the moment.