#5470. CSES1191 循环数组
0
CSES1191 循环数组
#CS1191. 循环数组
循环数组
题目背景
翻译自 CSES-1191 题。
题目描述
给定一个包含 n 个元素的循环数组。每个元素有两个邻居,位置 n 和位置 1 的元素也被视为邻居。
你的任务是将数组划分成若干个子数组,使得每个子数组的和不超过 k。请你计算出最少需要多少个子数组。
输入格式
第一行包含两个整数 n 和 k,表示数组的长度和每个子数组的最大和。
第二行包含 n 个整数 x1,x2,…,xnx_1, x_2, \dots, x_nx1,x2,…,xn,表示数组的内容。
保证数组中至少有一个划分(即数组中没有任何一个值大于 k)。
输出格式
输出一个整数,表示最小的子数组个数。
样例
8 5
2 2 2 1 3 1 2 1
3
样例1解释 我们可以将数组划分为三个子数组: [2,2,1][2, 2, 1][2,2,1]、[3,1][3, 1][3,1] 和 [2,1,2][2, 1, 2][2,1,2](注意数组是循环的)。
说明/提示
1≤xi≤1091 \leq x_i \leq 10^91≤xi≤109;