#6745. 最长的连续子数组

最长的连续子数组

题目描述

给定一个长度为 nn 的正整数序列 a1,a2,,ana_1, a_2, \dots, a_n,以及一个整数 MM

请你找出一个最长的连续子数组,使得它同时满足:

  1. 子数组内所有元素互不相同(即没有重复的数字)。
  2. 子数组的元素之和不超过 MM

输出这个最长长度。

如果不存在这样的子数组(即所有单个元素都大于 MM),输出 00

输入格式

第一行两个整数 n,Mn, M

第二行 nn 个整数 a1,a2,,ana_1, a_2, \dots, a_n

输出格式

一个整数,表示最长的满足条件的连续子数组的长度。

样例 #1

样例输入 #1

6 10
1 2 3 1 4 2

样例输出 #1

4

样例 #2

样例输入 #2

5 5
2 2 2 2 2

样例输出 #2

1

样例 #3

样例输入 #3

4 3
4 5 6 7

样例输出 #3

0

样例 #4

样例输入 #4

7 20
3 1 4 2 5 3 6

样例输出 #4

5

提示

【样例1解释】

子数组 [2, 3, 1, 4] 的和为 2+3+1+4=10M2+3+1+4=10 \le M,且元素互不相同,长度为 44。不存在长度 5\ge 5 的满足条件的子数组。

【样例2解释】

单个元素 2M2 \le M,但任意两个 22 相加等于 4M4 \le M 却违反了元素互不相同的条件,因此最长长度为 11

【样例3解释】

所有元素均大于 MM,不存在满足条件的子数组。

【样例4解释】

子数组 [1, 4, 2, 5, 3] 的和为 152015 \le 20,长度为 55;子数组 [4, 2, 5, 3, 6] 的和为 202020 \le 20,长度也为 55。不存在长度为 66 的满足条件的子数组。


【数据范围】

  • 1n1051 \le n \le 10^5
  • 1ai1041 \le a_i \le 10^4
  • 1M1091 \le M \le 10^9