P7690 [CEOI 2002] A decorative fence
题目描述
理查德刚刚盖完他的新房子。现在房子唯一缺少的是一个可爱的小木栅栏。他不知道如何制作木栅栏,所以他决定订购一个。不知何故,他拿到了 $\texttt{ACME Fence Catalog 2002}$――可爱的小木栅栏的旗舰版资源(注:ACME 是一家什么都造的公司)。看完它的前言,他已经知道,什么使小木栅栏变得可爱。
一个木栅栏由 $N$ 块木板组成,每块木板垂直排成一排。除此之外,当且仅当满足以下条件时,围栏看起来很可爱:
- 木板有不同的长度,即 $1,2,\cdots,N$ 为木板长度单位。
- 每块有两个相邻的木板,它要么比它的相邻的都大,要么比它相邻的都小。(即,这会使得围栏顶部交替上升和下降(高低起伏))。
因此,我们可以将每个用 $N$ 块木板的可爱的栅栏唯一地描述为一个排列 $a_1,\cdots,a_N$($\forall i$,$1 < i < N$)$(a_i - a_{i−1}) × (a_i - a_{i+1}) > 0$。反之亦然,每个这样的排列都描述了一个可爱的围栏。
很明显,可能有许多不同的可爱木栅栏由 $N$ 块木板制成。ACME 的销售经理决定以下列方式排列可爱围栏并放入清单:栅栏 A(由排列 $a_1,\cdots,a_N$ 表示)在栅栏 B 之前(由 $b_1,\cdots,b_N$ 表示),当且仅当存在这样的 $i$,使得($\forall j < i$)$a_j = b_j$ 和 ($a_i < b_i$)。(也就是说,比较两个围栏中哪个在清单中更早相当于取它们对应的排列,找出它们第一个不同的地方,并比较这个地方的值。)所有 $N$ 块木板的可爱围栏都被按照它们在清单中出现的顺序编号(从 $1$ 开始)。这个号码被称为他们的清单号。

仔细检查所有的可爱的小木栅栏后,理查德决定要它们中的一些。他记下木板的数量 $N$ 和清单号 $C$。后来,他遇到了他的朋友,他想向他们展示他围栏,但他失去了清单。他得到的唯一的事情是他的笔记。请帮助他查明,他的围栏将为何等样子。
输入格式
无
输出格式
无
说明/提示
#### 数据规模与约定
对于 $100 \%$ 的数据,$1 \leq K \leq 100$,$1 \leq N \leq 20$。你可以认为,$20$ 块木板的可爱小木栅栏的总数适合转换为 $64$ 位有符号整数变量(C/C++ 中的 `long long`,FreePascal 中的 `int64`)。你也可以认为输入是正确的,特别是 $C$ 最小是 $1$ 并且它不超过有 $N$ 块木板的可爱围栏的数量。
#### 题目说明
来源于 CENTRAL-EUROPEAN OLYMPIAD IN INFORMATICS 2002 的 [A decorative fence](https://web.ics.upjs.sk/ceoi/documents/tasks/fence-tsk.pdf)。
由 @[求学的企鹅](/user/271784) 翻译整理。