Điểm:
200 (p)
Thời gian:
0.5s
Bộ nhớ:
256M
Input:
bàn phím
Output:
màn hình
Cho dãy số nguyên dương gồm \(N\) phần tử \(a_1,a_2,..,a_N\) và số nguyên dương \(K\). Chọn ra \(K\) phần tử liên tiếp sao cho tổng của chúng là lớn nhất. In ra giá trị đó
Input
- Dòng 1: hai số nguyên dương \(N\) và \(K\) \((K \le N \le 10^5)\);
- Dòng 2: gồm \(N\) số nguyên dương \(a_1,a_2,...,a_N\) \((a_i \le 10^9)\)
Output
- In ra đáp án thỏa mãn yêu cầu đề bài.
Example
Test 1
Input
6 2
2 4 5 2 9 1
Output
11
Bình luận
include<bits/stdc++.h>
define ll long long
define f(i, a, b) for(ll i=(a); i<=(b); ++i)
using namespace std;
int main (){
cin.tie(nullptr)->sync_with_stdio(false);
ll n, k, ans=0;
cin >> n >> k;
vector<ll> s(n+1);
s[0]=0;
f(i, 1, n){
ll x;
cin >> x;
s[i]=s[i-1]+x;
}
f(i, 1, n-k+1) ans=max(ans, s[i+k-1]-s[i-1]);
cout << ans;
return 0;
}
11 bình luận nữa