#10009. 徐老师的波动序列

    ID: 10009 传统题 文件IO:number 1000ms 256MiB 尝试: 0 已通过: 0 难度: (无) 上传者: 标签>CSP-J复赛模拟2026T3哈希表前缀和数学计数

徐老师的波动序列

题目描述

徐老师有一个包含 nn 个数字的序列 a1ana_1\sim a_n 和一个波动值 mm

对于这个序列和波动值,徐老师会按照以下规则依次生成一个波动序列 bib_i,其中 b1=a1b_1=a_1。对于 i1i\ne1,分类讨论:

  1. ai>ai1a_i>a_{i-1},则 bi=bi1+mb_i=b_{i-1}+m
  2. ai=ai1a_i=a_{i-1},则 bi=bi1b_i=b_{i-1}
  3. ai<ai1a_i<a_{i-1},则 bi=bi1mb_i=b_{i-1}-m

徐老师认为序列 aa 和序列 bb 的相似度越高,则这个波动值 mm 就越准确。

这里的相似度是指有多少个 aia_i 满足 ai=bia_i=b_i

现在徐老师想知道,波动值为多少时序列 aa 和序列 bb 的相似度最高?

输入格式

本题采用文件读写。

  • 读入文件名:number.in
  • 写出文件名:number.out

输入第一行包含一个整数 nn,表示序列长度。

输入第二行包含 nn 个整数,分别表示 aia_i

输出格式

输出第一行包含一个整数,表示最高的相似度。

输出第二行包含一个整数,表示最高相似度时的波动值 mm。如果有多个正整数 mm 可以使得相似度最高,则输出最小的 mm

样例

5
1 2 3 2 1
5
1
7
2 0 -6 -2 3 5 10
4
4

数据范围与提示

  • 对于 30%30\% 的数据,n103n\le10^3
  • 对于 50%50\% 的数据,n104n\le10^4
  • 对于 70%70\% 的数据,n105n\le10^5
  • 对于 100%100\% 的数据,n106n\le10^62×109ai2×109-2\times10^9\le a_i\le2\times10^9