#HK5473. 「UOI 2017 Stage 4 Day2」金字塔

「UOI 2017 Stage 4 Day2」金字塔

题目描述

题目译自 Ukrainian Olympiads in Informatics 2017 Stage 4 Day2 T1. Пiрамiдка

佩特里克喜欢玩积木。这次,他想玩一套长方形的积木。这套积木由 nn 个木块组成,其中尺寸为 1×11 \times 1, 1×21 \times 2, \dots, 1×n1 \times n 的木块各有且仅有一个。佩特里克想从这套积木中选出一些木块来搭建一个金字塔。

金字塔由一层或多层组成,每层高度为一个单位;在每一层中,木块都水平放置,紧密相连;每层最左边的木块都紧靠着墙壁;并且从下往上数,每一层的总长度都不能超过其下面一层的总长度。此外,佩特里克认为,要使金字塔更稳定,除了最底层外,每一层的每个木块都必须至少搁在下面一层两个不同的木块上。

例如,左边的结构不是一个金字塔,因为 1×21 \times 2 的木块只搁在一个木块上,而右边的结构是金字塔。

s99daqivch229ak9avgra2vsrk.png

请找出使用这 nn 个木块中的一部分能够搭建出的层数最多的金字塔,并输出该金字塔的结构。如果存在多个这样的金字塔,输出任意一个即可。

输入格式

输入文件的唯一一行包含一个整数 nn (1n105)(1 \leq n \leq 10^5)

输出格式

在输出文件的第一行,输出一个整数 MM,表示层数最多的金字塔的层数。接下来输出 MM 行,从下到上描述每一层的结构,每行以一个数字 kik_i 开始,表示该层的木块数量,后面跟着 kik_i 个数字,表示该层从左到右排列的木块的长度。

5

2
2 1 5
1 4

样例对应于以下金字塔:

sjh0tkovp920n9es13205ssc7s.png

数据范围与提示

  • 对于 30%30\% 的数据,n7n \leq 7
  • 对于 60%60\% 的数据,n100n \leq 100