洛谷-P1614 爱与愁的心痛
洛谷-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 \times 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;
}