第十四届蓝桥杯青少组C++选拔赛[2023.1.15]第二部分编程题(2 、寻宝石)

参考程序:

cpp 复制代码
#include <bits/stdc++.h>
using namespace std;

int main() {
  

    int N;
    cin >> N;        // 读入盒子数
    vector<int> a(N);
    for (int i = 0; i < N; ++i) cin >> a[i];   // 读入每个盒子的宝石数

    // N >= 3(题目保证),先计算第一个长度为3的窗口和
    int curr = a[0] + a[1] + a[2];
    int maxSum = curr;

    // 滑动窗口:从第4个数开始,每次把窗口向右移动一格
    // 新窗口和 = 旧窗口和 + 新进来的数 - 离开的数
    for (int i = 3; i < N; ++i) {
        curr += a[i];         // 加上新进来的盒子的宝石数
        curr -= a[i - 3];     // 减去离开窗口(最左侧)的盒子的宝石数
        if (curr > maxSum) maxSum = curr;
    }

    cout << maxSum << '\n';
    return 0;
}
相关推荐
大锦终2 小时前
【Linux】进程间通信
linux·运维·服务器·c++
闪电麦坤952 小时前
C/C++项目练习:命令行记账本
开发语言·c++
菜就多练,以前是以前,现在是现在2 小时前
Codeforces Round 1048 (Div. 2)
数据结构·c++·算法
野生的编程萌新3 小时前
【C++深学日志】从0开始的C++生活
c语言·开发语言·c++·算法
木心爱编程3 小时前
C++程序员速通C#:从Hello World到数据类型
c++·c#
ulias2124 小时前
单元最短路问题
数据库·c++·算法·动态规划
ajassi20004 小时前
开源 C++ QT Widget 开发(十六)程序发布
linux·c++·qt·开源
图灵信徒5 小时前
2025 ICPC Gran Premio de Mexico 3ra Fecha
c++·算法·codeforcrs
大锦终5 小时前
【算法】栈专题
数据结构·c++·算法·leetcode