#CSES1191. 循环数组

循环数组

题目背景

翻译自 CSES-1191 题。

题目描述

给定一个包含 nn 个元素的循环数组。每个元素有两个邻居,位置 nn 和位置 11 的元素也被视为邻居。

你的任务是将数组划分成若干个子数组,使得每个子数组的和不超过 kk。请你计算出最少需要多少个子数组。

输入格式

第一行包含两个整数 nnkk,表示数组的长度和每个子数组的最大和。

第二行包含 nn 个整数 x1,x2,,xnx_1, x_2, \dots, x_n,表示数组的内容。

保证数组中至少有一个划分(即数组中没有任何一个值大于 kk)。

输出格式

输出一个整数,表示最小的子数组个数。

样例

8 5
2 2 2 1 3 1 2 1
3

样例1解释

我们可以将数组划分为三个子数组: [2,2,1][2, 2, 1][3,1][3, 1][2,1,2][2, 1, 2](注意数组是循环的)。

说明/提示

1n2×1051 \leq n \leq 2 \times 10^5

1xi1091 \leq x_i \leq 10^9

1k10181 \leq k \leq 10^{18}