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.

弗拉迪克在回家的路上感到无聊,决定玩一个游戏。他取了 nn 张卡片,并将它们排成一列放在自己面前。每张卡片上都写有一个不超过 8 的正整数。他想找出满足以下两个条件的最长子序列:

  • 子序列中数字 11 到 88 各自出现的次数之差至多为 11。形式化地说,若子序列中数字 kk 出现了 ckc_k 次,则对任意一对整数 ,必须满足 ∣ci−cj∣≤1|c_i - c_j| \leq 1。
  • 若子序列中至少存在一张数字为 xx 的卡片,则子序列中所有数字为 xx 的卡片必须构成一个连续段(但该连续段在原序列中不一定是连续的)。例如,子序列 [1, 1, 2, 2][1,\,1,\,2,\,2] 满足该条件,而子序列 [1, 2, 2, 1][1,\,2,\,2,\,1] 不满足。注意:[1, 1, 2, 2][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.

第一行包含一个整数 nn(1≤n≤10001 \leq n \leq 1000)—— 表示弗拉迪克序列中卡片的数量。

第二行包含 nn 个正整数(每个数均不超过 88)组成的序列—— 描述弗拉迪克的序列。

输出格式

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测评打分。不知道怎么写?

首页