测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A5308. 心算挑战

编程题 普及-
知识点

题目描述

小码君最近参加了一个心算挑战,在挑战中小码君会得到 $n$ 个卡牌,编号从 $1\sim n$,每张卡牌上有一个数字,他需要挑出连续的几张卡牌,使得所有卡牌上的数字之和最大,且不超过 $k$。

请你帮小码君计算一下,他能够选出的不超过 $k$ 的最大的数字之和是多少?

输入格式

第一行输入两个整数 $n,k$,分别表示有 $n$ 个卡牌,数字之和不能超过 $k$。
第二行输入 $n$ 个整数,表示每张卡牌上的数字。

输出格式

输出一个整数,表示不超过 $k$ 的最大的数字之和。

输入输出样例

输入 #1
5 3
1 2 3 4 5
输出 #1
3

说明/提示

## 样例解释

输入中有 $5$ 张卡牌(数字分别为 $1, 2, 3, 4, 5$),要求选择连续卡牌且数字和不超过 $3$ 的最大值。满足条件的方案有:

选择区间 $[1,1]$ :数字和 $=1$

选择区间 $[2,2]$ :数字和 $=2$

选择区间 $[3,3]$ :数字和 $=3$

选择区间 $[1,2]$ :数字和 $=1+2=3$

最大和为 $3$(通过选择第 $3$ 张卡牌单独使用,或选择第 $1\sim 2$ 张卡牌组合)。

## 数据范围

$1\le n\le 10^{5} , 1\le k\le 10^{9} , 1\le a_{i}\le 10^{4}$
上一题 去做题 下一题