Numbers of interval
现在有一个数组,请计算有多少的区间[l,r](l≤r)满足 ∑ri=lai≥k.
输入格式
第一行输入n,k(1≤n,k≤106).
接下来输入n个数,第i个数为ai(1≤ai≤103).
输出格式
输出满足条件的区间个数
样例
input
3 5 2 3 5
output
4
这一题我读半天才知道啥意思 然后发现思路其实很简单,可是当时没有写出来 就是先求出最下线的i到 k 然后n-k就是以l为起点的所以区间 然后i+1重新进行便利
代码超级简单
如下
#include <bits/stdc++.h>
using namespace std;
long long a[1000000];
int main()
{
long long n,k,sum,num=0,j=1;
cin>>n>>k;
for(int i=0;i<n;i++)
{
cin>>a[i];
}
for(int i=0;i<n;i++)
{
sum+=a[i];
if(sum>=k)
{
num+=n-i;
sum=0;
i=j-1;
j++;
}
}
cout<<num;
}