Notice: Undefined index: name in /usr/www/lib/views/home/viewtitle.html on line 188
-完善程序 第 20 题
(尺取法求区间个数)给n个非负整数a[1]a[2],...,a[n],求区间和小于或等于k的区间个数,即求使SUM= a[L]+a[L+1]+...+a[R-1]+a[R]<=k的区间[L,R]的个数(1≤L≤R≤n),但由于对内存和复杂度有要求,本题已经用尺取法写好部分代码,请补全程序。 输入第一行两个整数 n,k(1 ≤ n ≤ 1000000, 0 ≤ n ≤ 1000000000000000)。 第二行为n个数,表示a[1]~a[n]的值(0≤a[i]≤1000000000)。
#include <bits/stdc++.h>
#define ll long long
using namespace std;
const int mx=1e6+10;
int n,a[mx];
ll k,sum,ans;
int main()
{
	scanf(" %d%lld", &n, &k);
	for (int i=1; i<=n; ++i)
	{
		scanf("%d" ,&a[i]);
	}
	int r=0;
	for (int i=1; i<=n; ++i)
	{
		while (r<n)
		{
			if (___(1)___)   ___(2)___;
			else break;
		}
		___(3)___;
		if (i<=r) ___(4)___;
		else ___(5)___;
	}
	printf("%lld\n",ans);
}
● 单选题
第 1 题 ①处应填( )
第 2 题 ②处应填( )
第 3 题 ③处应填( )
第 4 题 ④处应填( )
第 5 题 ⑤处应填( )

解答部分以后会开放。