#JP3. 检查头发(hair)

检查头发(hair)

题目背景

dl24jp的学生都非常优秀 他们秀外慧中 积极向上

学校为了让学生看上去更加精神抖擞 气质出众 会限制头发的长度并不定期检查

所以当你头发过长时 别忘了去剪头发

题目描述

dl24jp的老师们是这样检查头发长度的

他们会让 nn 个学生站成一排 第 ii 个学生的头发长度为 aia_i 厘米

老师并不会检查单独一个同学的头发长度

而是检查相邻两个同学的头发长度之和

相邻两个同学的头发长度之和超过了限制 xx 厘米

那么这次检查头发便不合格

这样有些同学就需要剪掉一定长度的头发

现在班长想知道 同学们至少一共要剪掉多少厘米的头发 才能使检查合格

即使得任意相邻的两个同学的头发长度之和都不大于 xx 厘米

由于答案可能很大 请你输出对998244353取模的结果

输入格式

输入的第一行是两个用空格隔开的整数,代表同学的个数 nn 和给定的限制长度 xx

第二行有 nn 个用空格隔开的整数,第 ii 个整数代表第 ii 个同学的头发长度 aia_i

输出格式

输出一行一个整数,代表至少要剪掉的头发数量。

对998244353取模

样例

3 4
3 2 3
1
6 1
1 4 1 2 0 4
9
5 9
3 1 4 1 5
0

样例 1 解释

第二位同学剪掉 11 厘米即可


样例 2 解释

第 2 个同学剪掉 44 厘米,第 4 个同学剪掉 22 厘米,第 6 个同学剪掉 33 厘米。


样例 3 解释

任何同学都不需要剪头发

数据规模与约定

  • 对于 20%20\% 的数据,保证 n=2n=2
  • 对于另 20%20\% 的数据,保证 n=3n=3
  • 对于另 20%20\% 的数据,保证 2aix 2*a_i \leq x
  • 对于 100%100\% 的数据,保证 2n1062 \leq n \leq 10^60ai,x1090 \leq a_i, x \leq 10^9

提示

请留意本题时间限制与内存空间限制。

程序运行超时将导致部分测试点 TLE 而损失部分分, 数组开得太大将导致所有测试点 MLE 而损失所有分。 建议数组总长度不超过 10610^6 (如 int a[10000][10000] / int a[100000000] 等定义将导致你获得 0 分的超高分)

本题使用文件输入输出!!!