CF743E.Vladik and cards
提高+/省选-
通过率:0%
时间限制:2.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Vladik was bored on his way home and decided to play the following game. He took n cards and put them in a row in front of himself. Every card has a positive integer number not exceeding 8 written on it. He decided to find the longest subsequence of cards which satisfies the following conditions:
- the number of occurrences of each number from 1 to 8 in the subsequence doesn't differ by more then 1 from the number of occurrences of any other number. Formally, if there are c__k cards with number k on them in the subsequence, than for all pairs of integers
the condition |c__i - c__j| ≤ 1 must hold. - if there is at least one card with number x on it in the subsequence, then all cards with number x in this subsequence must form a continuous segment in it (but not necessarily a continuous segment in the original sequence). For example, the subsequence [1, 1, 2, 2] satisfies this condition while the subsequence [1, 2, 2, 1] doesn't. Note that [1, 1, 2, 2] doesn't satisfy the first condition.
Please help Vladik to find the length of the longest subsequence that satisfies both conditions.
弗拉迪克在回家的路上感到无聊,决定玩一个游戏。他取了 n 张卡片,并将它们排成一列放在自己面前。每张卡片上都写有一个不超过 8 的正整数。他想找出满足以下两个条件的最长子序列:
- 子序列中数字 1 到 8 各自出现的次数之差至多为 1。形式化地说,若子序列中数字 k 出现了 ck 次,则对任意一对整数
,必须满足 ∣ci−cj∣≤1。 - 若子序列中至少存在一张数字为 x 的卡片,则子序列中所有数字为 x 的卡片必须构成一个连续段(但该连续段在原序列中不一定是连续的)。例如,子序列 [1,1,2,2] 满足该条件,而子序列 [1,2,2,1] 不满足。注意:[1,1,2,2] 并不满足第一个条件。
请帮助弗拉迪克找出满足上述两个条件的最长子序列的长度。
输入格式
The first line contains single integer n (1 ≤ n ≤ 1000) — the number of cards in Vladik's sequence.
The second line contains the sequence of n positive integers not exceeding 8 — the description of Vladik's sequence.
第一行包含一个整数 n(1≤n≤1000)—— 表示弗拉迪克序列中卡片的数量。
第二行包含 n 个正整数(每个数均不超过 8)组成的序列—— 描述弗拉迪克的序列。
输出格式
Print single integer — the length of the longest subsequence of Vladik's sequence that satisfies both conditions.
输出一个整数——即弗拉迪克序列中满足两个条件的最长子序列的长度。
输入输出样例
输入#1
3 1 1 1
输出#1
1
输入#2
8 8 7 6 5 4 3 2 1
输出#2
8
输入#3
24 1 8 1 2 8 2 3 8 3 4 8 4 5 8 5 6 8 6 7 8 7 8 8 8
输出#3
17
说明/提示
In the first sample all the numbers written on the cards are equal, so you can't take more than one card, otherwise you'll violate the first condition.
在第一个样例中,所有卡片上写的数字都相等,因此你最多只能取一张卡片,否则将违反第一个条件。
输入解题思路,AI测评打分。不知道怎么写?