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

cpp 复制代码
#include<bits/stdc++.h>
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;
}
相关推荐
粉红色回忆8 小时前
用链表实现了简单版本的malloc/free函数
数据结构·c++
登山人在路上9 小时前
Nginx三种会话保持算法对比
算法·哈希算法·散列表
写代码的小球10 小时前
C++计算器(学生版)
c++·算法
AI科技星10 小时前
张祥前统一场论宇宙大统一方程的求导验证
服务器·人工智能·科技·线性代数·算法·生活
k***921610 小时前
【C++】继承和多态扩展学习
java·c++·学习
序属秋秋秋10 小时前
《Linux系统编程之进程控制》【进程等待】
linux·c语言·c++·进程·系统编程·进程控制·进程等待
Fuly102410 小时前
大模型剪枝(Pruning)技术简介
算法·机器学习·剪枝
Xの哲學11 小时前
Linux网卡注册流程深度解析: 从硬件探测到网络栈
linux·服务器·网络·算法·边缘计算
bubiyoushang88811 小时前
二维地质模型的表面重力值和重力异常计算
算法
l木本I11 小时前
Reinforcement Learning for VLA(强化学习+VLA)
c++·人工智能·python·机器学习·机器人