某学校组织教师插花。桌子上依次放着n朵花。这些花只有两种:红玫瑰和白玫瑰。颜色相同的连续放在一起的花称为一个“块”。老师们依次挑花,挑完为止。每个老师挑选的方法为:每次都把每一个“块”中最左边的花同时挑出,组成一个花篮。重复这一操作,直到花全部挑完。注意,当一个块被挑完后,相邻颜色相同的花可能合并为一个块。
例如:num=[1,1,0,0,1,1,1,0,1,1,0,0]。数字0和1分别表示红玫瑰和白玫瑰。第1次挑出的花的编号为:0、2、4、7、8、10。当编号为7(值为0)的花被挑出后,左右两边可以合并为一个块。则第2次挑出的花的编号为:1、3、5、11。
小明同学编写了一个 Python 程序,来模拟这一过程。程序输出每次挑选的花的编号。程序运行界面如图所示。

(1)若花的排列为[1,1,1,0,0,1,0,0],挑
______次能挑花完成,第3次挑出的花的编号为:
_______(2)Python程序如下,其中que用于存放每一块的左右端点及该块的值,例如[1,3,0],表示该块从编号1至3,每个值为0。完善代码
num=[1,1,0,0,1,1,1,0,1,1,0,0]
que=[[0]*3 for i in range(10)]
tmp=[[0]*3 for i in range(10)]
tail=0
used=[0]*100
#标记是否已被挑出
print("花的摆放:",num)
#将花按颜色进行分块
num.append(2)
#向列表num中添加一个元素2
l=r=0
#标记每一块的左右端点
for i in range(1,len(num)):
if num[i]!=num[i-1]:
que[tail]=[l,r,num[i-1]]
tail+=1
_______ else:
r=i
while tail>0:
for i in range(0,tail):
#输出结果
x=que[i][0]
if used[x]==0:
print(que[i][0],end=" ")
used[x]=1
if i==tail-1:
print()
#如果是最后一个换行
_______ k=0
#去掉挑完的
for i in range(0,tail):
if que[i][0]>que[i][1]:
#当前块取完了
continue
else:
#放入临时数组
if k==0:
tmp[k]=que[i]
k+=1
else:
#看能否合并
if que[i][2]==tmp[k-1][2]:
________ else:
tmp[k]=que[i]
k+=1
for i in range(k):
#将 tmp 再赋值给 que
que[i]=tmp[i]
tail=k