#P2127. Greatest Common Increasing Subsequence

    ID: 1128 传统题 1000ms 256MiB 尝试: 1 已通过: 1 难度: 10 上传者: 标签>动态规划字符串Northeastern Europe 2003Northern Subregion

Greatest Common Increasing Subsequence

题目描述

给定两个整数序列。编写一个程序,找出它们的最长公共递增子序列。

长度为 N 的序列 S₁, S₂, ..., Sₙ 被称为长度为 M 的序列 A₁, A₂, ..., Aₘ 的递增子序列,如果存在 1 ≤ i₁ < i₂ < ... < iₙ ≤ M,使得对于所有 1 ≤ j ≤ N,有 Sⱼ = Aᵢⱼ,并且对于所有 1 ≤ j < N,有 Sⱼ < Sⱼ₊₁。

输入格式

每个序列的描述包括:

  • M —— 序列的长度(1 ≤ M ≤ 500)。
  • M 个整数 Aᵢ(-2³¹ ≤ Aᵢ < 2³¹)—— 序列本身。

输出格式

输出的第一行是 L —— 两个序列的最长公共递增子序列的长度。第二行输出该子序列。如果有多个可能的答案,输出其中任意一个。

示例输入 1

5
1 4 2 5 -12
4
-12 1 2 4

示例输出 1

2
1 4

来源

Northeastern Europe 2003, Northern Subregion