27. 序列极限
成绩 | 10 | 开启时间 | 2016年09月22日 星期四 12:00 |
折扣 | 0.8 | 折扣时间 | 2016年09月26日 星期一 23:00 |
允许迟交 | 否 | 关闭时间 | 2016年10月10日 星期一 23:55 |
题目描述
给出一个长度为n的序列ai(ai=0或1),对a进行一种奇怪的操作变成b序列:b[1]=a[1],b[n]=a[n],b[i]取a[i-1],a[i],a[i+1]三者的中位数(i=2,3,...,n-1)。如果对a进行若干次操作之后a序列不再变化则称a序列极限存在,输出操作步数和该极限序列,否则不存在,输出-1
输入
单组用例,首先输入一整数n表示序列长度,之后n个01值表示该序列(n<=500000)
输出
如果a序列有极限则输出该将该序列变成其极限序列所需的最少操作步数以及其期限序列(相邻两元素用空格隔开),否则输出-1
样例输入
5
0 1 0 1 0
样例输出
2
0 0 0 0 0
样例解释
第一次操作后序列变成0 0 1 0 0,第二次操作后序列变成0 0 0 0 0,第三次操作后序列仍为0 0 0 0 0,故操作数是2,序列极限是0 0 0 0 0
没有思路的时候需要做的就是准备好纸笔,手写尝试一个小的测试样例。哇哈哈哈,这个方法对我有用~
结果: