双指针 小红统计区间 牛客周赛 Round 28

双指针 小红统计区间 牛客周赛 Round 28_第1张图片 

双指针 小红统计区间 牛客周赛 Round 28_第2张图片 

#include
using namespace std;
using ll = long long;
const int N = 1e5 + 10;
ll a[N];

int main(){
	ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    ll n,k;
    cin >> n >> k;
    for(int i = 1; i <= n; i++) cin >> a[i];
    int left = 1;
    ll sum = 0;
    ll ans = 0;
    for(int right = 1; right <= n; right++){
        sum += a[right];
        while(sum >= k){
            sum -= a[left];
            left++;
        }
        ans += left - 1;
    }
    cout << ans;
	return 0;
}

你可能感兴趣的:(c++,算法)