#x1050. CF818G Four Melodies
CF818G Four Melodies
Four Melodies
题面翻译
定义一个 Melody 子序列为,子序列中任意两个相邻元素差为 或模 同余,这里的子序列不要求连续。
给定一个长度为 的序列,求出一种选出 个互不相交的 Melody 子序列的方案,使得它们的并的大小尽量大。输出这个大小。
题目描述
Author note: I think some of you might remember the problem "Two Melodies" from Eductational Codeforces Round 22. Now it's time to make it a bit more difficult!
Alice is a composer, and recently she had recorded two tracks that became very popular. Now she has got a lot of fans who are waiting for new tracks.
This time Alice wants to form four melodies for her tracks.
Alice has a sheet with notes written on it. She wants to take four such non-empty non-intersecting subsequences that all of them form a melody and sum of their lengths is maximal.
Subsequence is a sequence that can be derived from another sequence by deleting some elements without changing the order of the remaining elements.
Subsequence forms a melody when each two adjacent notes either differ by 1 or are congruent modulo 7.
You should write a program which will calculate maximum sum of lengths of such four non-empty non-intersecting subsequences that all of them form a melody.
输入格式
The first line contains one integer number ( ).
The second line contains integer numbers ( ) — notes written on a sheet.
输出格式
Print maximum sum of lengths of such four non-empty non-intersecting subsequences that all of them form a melody.
样例 #1
样例输入 #1
5
1 3 5 7 9
样例输出 #1
4
样例 #2
样例输入 #2
5
1 3 5 7 2
样例输出 #2
5
提示
In the first example it is possible to compose melodies by choosing any notes (and each melody will consist of only one note).
In the second example it is possible to compose one melody with notes — . Remaining notes are used in other three melodies (one note per each melody).