#P1206. 试炼之塔
试炼之塔
题目描述
考古学教授小可发现了一本古代冒险者的游历日志。日志中按时间顺序记录了冒险者每天所在的塔层。已知冒险者在游历途中挑战了多座不同的试炼之塔,每座塔都有其固定的层数。在挑战某座塔时,他一定从第 层开始,此后每天上升 层,直到抵达该塔的顶层并完成挑战。随后他会前往下一座试炼之塔,再次从第 层开始挑战。
现在小可得到了这样一份连续的日志数字序列,你的任务是反推出每一座试炼之塔的层数,从而还原冒险者的完整游历路线。
输入格式
第一行一个整数 ,表示日志序列的长度。
第二行 个正整数,用空格隔开,表示按时间顺序记录的塔层序列。
输出格式
第一行输出一个整数 ,表示挑战的试炼之塔数量。
第二行输出 个整数,表示每座塔的层数,按照序列中的挑战顺序输出。
样例
7
1 2 3 1 2 3 4
2
3 4
4
1 1 1 1
4
1 1 1 1
5
1 2 3 4 5
1
5
5
1 2 1 2 1
3
2 2 1
样例解释
- 样例 :序列为 。可分成两段: 和 ,分别对应两座试炼之塔,层数为 和 。
- 样例 :序列为 。每个 都是单独的一段,表示四座层数为 的塔。
- 样例 :序列为 。这是一个完整的递增段,只有一座层数为 的塔。
- 样例 :序列为 。可分成三段:、 和 ,层数依次为 。
数据范围
对于 的数据,。
对于 的数据,。