P7652 [BalticOI 1996] A NICE SEQUENCE (Day 1)

题目描述

有一个由 $N$ 个整数组成的序列 $a_1,a_2, \cdots ,a_N$。序列 $b_1,b_2, \cdots ,b_L$ 是给定序列的子序列,如果 1. 对于每个 $i$ ($1 \leq i \leq L$),存在这样的 $j$ ($1 \leq j \leq N$),使得 $b_i= a_j$; 1. 对于每个 $i_1$ 和 $i_2$ 使得 $i_1 < i_2$,$b_{i1} = a_{j1}$,$b_{i2} = a_{j2}$,关系 $j_1 < j_2$ 是有效的。 序列 $b_1,b_2, \cdots,b_L$ 是非递增的,如果对于每个 $i$($1 \le i < L$),$b_i \le b_{i+1}$。 序列 $b_1,b_2, \cdots,b_L$ 是非递减的,如果对于每个 $i$($1 \le i < L$),$b_i \le b_{i+1}$。 给定的序列称为 **NICE**,如果我们可以选择该序列的 $K$ 个子序列使得: 1. 每个子序列至少有 $2$ 个成员, 1. 每个子序列要么不增加要么不减少, 1. 给定序列的每个成员直接属于一个子序列。 找出给定序列的最小可能 $K$。

输入格式

第一行包含一个整数为 $N$ 的值,接下来的 $N$ 行包含序列成员的值(每行一个整数,对于每个 $j$($1 \le a_j \le 100$))。

输出格式

输出数据必须包含: 1. 第一行中 $K$ 的值, 1. 将给定序列划分为 $K$ 个子序列的一个示例(即必须有 $N$ 行,每行包含子序列的 $a_j$ 和其 $a_j$ 属于的 索引($1 \le$ 索引 $\le K$))。 如果给定的序列不是 **NICE**,则输出文件的第一行必须仅包含 $0$。

说明/提示

#### 数据规模与约定 对于 $100 \%$ 的数据,$1 \le N \le 25$,$0 < K \le N$。 #### 样例说明 样例一中,子序列是 $12,33,33$ 和 $97,18,15$。 #### 分值说明 本题分值按 BOI 原题设置,**满分** $40$ 。 #### 题目说明 来源于 Baltic Olympiad in Informatics 2000] 的 [Day 1:A NICE SEQUENCE](https://boi.cses.fi/files/boi1996_day1.pdf)。 由 @[求学的企鹅](/user/271784) 翻译整理。