#seg19. 2026提高组模拟赛19-T3 完整段

2026提高组模拟赛19-T3 完整段

【文件读写】本题使用文件读写:输入文件 seg19.in,输出文件 seg19.out

时间限制:1000ms 内存限制:512MB

项目 内容
输入文件名 seg19.in
输出文件名 seg19.out
可执行文件名 seg19
每个测试点时限 1.0 秒
内存限制 512 MiB
测试点数目 20
是否等分

结果比较方式为全文比较(过滤行末空格及文末换行)。

题目描述

档案馆把编号为 1n1\sim n 的卷宗按某种次序摆成一排,位置 ii 上摆放的卷宗编号记为 pip_i。编号 1n1\sim n 恰好各出现一次,也就是说 p1,p2,,pnp_1,p_2,\dots,p_n1n1\sim n 的一个排列。

档案员把一段连续的位置 [l,r][l,r]lrl\le r)称为一个完整段,如果这段位置里所有卷宗编号的最大值与最小值之差恰好等于段长减一,即 $\max\limits_{i\in[l,r]} p_i-\min\limits_{i\in[l,r]} p_i=r-l$。这等价于说,这段位置里出现的编号恰好构成一段连续的整数。

除了编号的完整性,档案员还关心一段连续位置里的编号之和,记 σ(l,r)=i=lrpi\sigma(l,r)=\sum_{i=l}^{r}p_i

给定一个阈值 SS,档案员想统计一共有多少段连续位置 [l,r][l,r] 同时满足以下两个条件:

  • 条件一:[l,r][l,r]完整段
  • 条件二:编号和 σ(l,r)\sigma(l,r) 不小于 SS

输入格式

从文件 seg.in 中读入数据。

  • 第一行两个整数 n,Sn, S
  • 第二行 nn 个整数 p1,p2,,pnp_1, p_2, \dots, p_n,表示位置 11nn 上的卷宗编号。

输出格式

输出到文件 seg.out 中。

输出一行一个整数,表示同时满足两个条件的连续位置段的个数。

样例

样例 1 输入

4 3
3 1 2 4

样例 1 输出

5

样例 1 解释

逐段核对两个条件。长度 1:[1,1][1,1](编号 33,和 33)、[4,4][4,4](编号 44,和 44)满足,[2,2][2,2](和 11)、[3,3][3,3](和 22)编号和不足。长度 2:[2,3][2,3](编号 1,21,2,和 33)满足,[1,2][1,2][3,4][3,4] 内编号不构成连续整数。长度 3:[1,3][1,3](编号 3,1,23,1,2,和 66)满足,[2,4][2,4](编号 1,2,41,2,4)不构成连续整数。长度 4:[1,4][1,4](编号 3,1,2,43,1,2,4,和 1010)满足。合计 55 段。

样例 2 输入

4 6
3 1 2 4

样例 2 输出

2

样例 2 解释

排列与样例 1 相同,仅将 SS 提高到 66。此时长度 1 的段编号和至多 44,全部被过滤;满足两个条件的只剩 [1,3][1,3](和 66)与 [1,4][1,4](和 1010),共 22 段。

样例 3 输入

4 5
1 2 4 3

样例 3 输出

3

样例 3 解释

S=5S=5 时,[1,2][1,2](编号 1,21,2)是完整段但编号和 33 不足;[2,3][2,3](编号 2,42,4)编号和 66 足够但内编号不构成连续整数,两类都只满足一个条件,均不计入。同时满足两个条件的是 [3,4][3,4](编号 4,34,3,和 77)、[2,4][2,4](编号 2,4,32,4,3,和 99)、[1,4][1,4](编号 1,2,4,31,2,4,3,和 1010),共 33 段。

数据范围

对于所有测试数据,保证:

  • 1n1051 \le n \le 10^5
  • 0S10140 \le S \le 10^{14}
  • p1,p2,,pnp_1,p_2,\dots,p_n1n1\sim n 的一个排列。

各测试点的约束如下:

测试点 nn 特殊性质
131\sim3 300\le 300
484\sim8 2000\le 2000
9119\sim11 105\le 10^5 A
121412\sim14 B
152015\sim20
  • 特殊性质 A:S=0S=0
  • 特殊性质 B:任意完整段的长度都不超过 5050
难度 提高+/省选
通过率 14.3%
尝试 14
已通过 2
ID
709
类型
传统题
Time Limit
1000ms
Memory Limit
512MiB
上传者

相关

在下列比赛中:

暑假CSP-S模拟赛 第4场