洛谷-P1614 爱与愁的心痛

洛谷-P1614 爱与愁的心痛

原题链接:https://www.luogu.com.cn/problem/P1614


题目背景

(本道题目隐藏了两首歌名,找找看哪~~~)

《爱与愁的故事第一弹·heartache》第一章。

《我为歌狂》当中伍思凯神曲《舞月光》居然没赢给萨顶顶,爱与愁大神心痛啊~~~而且最近还有一些令人伤心的事情,都让人心痛(最近真的很烦哈)……

题目描述

最近有 (n) 个不爽的事,每句话都有一个正整数刺痛值(心理承受力极差)。爱与愁大神想知道连续 (m) 个刺痛值的和的最小值是多少,但是由于业务繁忙,爱与愁大神只好请你编个程序告诉他。

输入格式

第一行有两个用空格隔开的整数,分别代表 (n)(m)

(2) 到第 ((n + 1)) 行,每行一个整数,第 ((i + 1)) 行的整数 (a_i) 代表第 (i) 件事的刺痛值 (a_i)

输出格式

输出一行一个整数,表示连续 (m) 个刺痛值的和的最小值是多少。

输入输出样例

输入 #1

8 3
1
4
7
3
1
2
4
3

输出 #1

6

说明/提示

数据规模与约定

  • 对于 (30\%) 的数据,保证 (n leq 20)
  • 对于 (60\%) 的数据,保证 (n leq 100)
  • 对于 (90\%) 的数据,保证 (n leq 10^3)
  • 对于 (100\%) 的数据,保证 (0 leq m leq n leq 3 imes 10^3)(1 leq a_i leq 100)

C++代码

#include <iostream>
using namespace std;

int main() {
    int n, m, ans=300000;
    cin >> n >> m;
    int a[n];
    for (int i=0; i<n; ++i)
        cin >> a[i];
    for (int i=0; i<=n-m; ++i) {
        int sum = 0;
        for (int j=0; j<m; ++j)
            sum += a[i+j];
        if (sum < ans)
            ans = sum;
    }
    cout << ans << endl;
    return 0;
}
原文地址:https://www.cnblogs.com/yuzec/p/13358800.html