#C1021. [CSP-J 2021T4] 小熊的果篮

    ID: 4495 传统题 1000ms 256MiB 尝试: 32 已通过: 0 难度: 3 上传者: 标签>模拟数据结构链表CSP-J入门级2021年结构体数组排序连续性问题循环结构顺序结构

[CSP-J 2021T4] 小熊的果篮

题目描述

小熊的水果店里摆放着一排 nn 个水果。每个水果只可能是苹果或橘子,从左到右依次编号为 1,2,,n1,2,\ldots,n。连续排在一起的同一种水果称为一个“块”。

小熊要把这一排水果挑到若干个果篮里。每次都把每一个块中最左边的水果同时挑出,组成一个果篮。重复这个操作,直到水果用完。注意,每次挑完后,块可能会发生变化;例如两个苹果块之间唯一的橘子被挑走后,两个苹果块会合并成一个块。

请输出每个果篮里包含的水果编号。

输入格式

第一行一个正整数 nn,表示水果数量。

第二行 nn 个用空格分隔的整数,第 ii 个数表示编号为 ii 的水果种类:11 表示苹果,00 表示橘子。

输出格式

输出若干行。第 ii 行表示第 ii 次挑出的水果组成的果篮。从小到大输出该果篮中所有水果编号,相邻编号之间用一个空格分隔。

样例

12
1 1 0 0 1 1 1 0 1 1 0 0
1 3 5 8 9 11
2 4 6 12
7
10
20
1 1 1 1 0 0 0 1 1 1 0 0 1 0 1 1 0 0 0 0
1 5 8 11 13 14 15 17
2 6 9 12 16 18
3 7 10 19
4 20

样例解释
样例 #1 中,初始水果序列为 [1,1,0,0,1,1,1,0,1,1,0,0][1,1,0,0,1,1,1,0,1,1,0,0],共有 66 个块,因此第一次挑出编号 1,3,5,8,9,111,3,5,8,9,11。之后块会重新合并并继续操作,直到所有水果被挑完。

数据范围与提示

  • 对于 10%10\% 的数据,n5n\le 5
  • 对于 30%30\% 的数据,n1000n\le 1000
  • 对于 70%70\% 的数据,n50000n\le 50000
  • 对于 100%100\% 的数据,1n2×1051\le n\le 2\times 10^5

建议 C/C++ 选手使用 scanfprintf 进行输入、输出。

附件下载

fruit.zip