CF743E Vladik and cards
题目描述
Vladik 在回家路上感到无聊,决定玩如下游戏。他拿了 $n$ 张牌,并把它们排成一行放在自己面前。每张牌上都写有一个不超过 $8$ 的正整数。他决定找出一组满足以下条件的最长子序列:
- 子序列中从 $1$ 到 $8$ 的每个数出现的次数,两两之间之差不超过 $1$。形式化地说,若子序列中数字 $k$ 的个数为 $c_k$,那么对于所有整数对 $(i,j)$,都有 $|c_i-c_j| \leq 1$。
- 若子序列中存在数字 $x$,则所有带数字 $x$ 的牌在该子序列中必须构成一个连续的区间(但在原序列中不要求连续)。例如,子序列 $[1,1,2,2]$ 满足该条件,而 $[1,2,2,1]$ 不满足。注意,$[1,1,2,2]$ 不满足第一个条件。
请你帮 Vladik 找出同时满足上述两个条件的最长子序列的长度。
输入格式
第一行包含一个整数 $n$($1 \leq n \leq 1000$),表示 Vladik 序列中的牌的数量。
第二行包含 $n$ 个不超过 $8$ 的正整数,表示 Vladik 的序列。
输出格式
输出一个整数,表示 Vladik 的序列中满足条件的最长子序列的长度。
说明/提示
在第一个样例中,所有牌上的数字都相同,因此无法选取多于一张的牌,否则会违反第一个条件。
由 ChatGPT 5 翻译