#8277. 序列恢复 (ssr)
序列恢复 (ssr)
序列恢复 (ssr)
本题使用文件输入输出,请在程序开头加入:
freopen("ssr.in", "r", stdin); freopen("ssr.out", "w", stdout);
题目描述
Y 同学最近在研究一种特殊的信号处理设备。该设备记录了一组长度为 的离散信号序列 。为了分析信号的自相关性,Y 同学计算了该序列的 自匹配强度序列 (在算法竞赛中通常被称为 函数)。
对于长度为 的序列 ,其自匹配强度序列 的第 个元素 定义为:满足 的最大非负整数 。根据定义, 始终等于 。
然而,Y 同学在完成计算后发现,记录的原始信号序列 的第一个信号 实际上是由于传感器预热产生的随机噪声,并非有效数据。为了获得准确的分析结果,他需要求出剔除噪声后的有效信号序列 的自匹配强度序列 。
不幸的是,由于存储空间限制,原始信号序列 在计算完 后已被销毁,目前仅保留了长度为 的序列 。请你根据已知的 序列,推导出序列 的自匹配强度序列 。
由于原始信号序列 可能并不唯一,如果对于 的某个位置 ,其对应的 无法通过已知信息唯一确定,请在该位置输出 。
输入格式
从 ssr.in 文件读入数据。
第一行包含一个整数 ,表示原始信号序列 的长度。
第二行包含 个整数 ,表示序列 的自匹配强度序列。
输出格式
输出到 ssr.out 文件。
输出一行 个整数 ,表示序列 的自匹配强度序列。对于无法唯一确定的位置,输出 。
样例
样例输入 #1
5
5 4 3 2 1
样例输出 #1
4 3 2 1
样例输入 #2
7
7 2 1 0 2 1 0
样例输出 #2
6 1 0 -1 1 0
样例输入 #3
7
7 0 1 0 3 0 1
样例输出 #3
6 0 0 0 2 0
数据范围与约定
对于 的数据,保证 ,,且至少存在一个符合条件的字符串。
| 测试点编号 | 分值 | 特殊性质 | |
|---|---|---|---|
| 10 | 无 | ||
| 20 | |||
| 特殊性质 A | |||
| 特殊性质 B | |||
| 30 | 无 |
- 特殊性质 A:保证对于所有 ,有 。
- 特殊性质 B:保证输入的 序列中,除 外所有项均为 。
大样例
点击链接 [bigdata1.in](file://bigdata1.in) 和 [bigdata1.out](file://bigdata1.out) 下载大样例 1 的输入输出数据。
点击链接 [bigdata2.in](file://bigdata2.in) 和 [bigdata2.out](file://bigdata2.out) 下载大样例 2 的输入输出数据。
点击链接 [bigdata3.in](file://bigdata3.in) 和 [bigdata3.out](file://bigdata3.out) 下载大样例 3 的输入输出数据。
点击链接 [bigdata4.in](file://bigdata4.in) 和 [bigdata4.out](file://bigdata4.out) 下载大样例 4 的输入输出数据。