Đ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
N, K = map(int, input().split())
arr = list(map(int, input().split()))
a = sum(arr[:K])
b = a
for i in range(K, N):
a += arr[i]-arr[i -K]
b=max(b, a)
print(b)
Prefix sum là full ac
def max_sum_of_k_consecutive_elements(N, K, arr):
N, K = map(int, input().split())
arr = list(map(int, input().split()))
result = max_sum_of_k_consecutive_elements(N, K, arr)
print(result)
code python full ac nhé
include <bits/stdc++.h>
using namespace std;
int main()
{
int n, k;
cin >> n >> k;
}
CODE AC
INF = float("-inf")
n, k = map(int, input().split())
a = list(map(int, input().split()))
d = [0] * (n + 1)
for i in range(1, n + 1):
d[i] = d[i - 1] + a[i - 1]
nmax = INF
if k <= n:
for i in range(k, n + 1):
nmax = max(nmax, d[i] - d[i - k])
print(nmax)
PY3
admin ơi tăng thời gian cho python đi
ad ơi ad cập nhật tăng bộ nhớ đi ạ, em làm đúng kết quả nhưng thiếu bộ nhớ :((
Bình luận bị ẩn vì nhiều phản hồi tiêu cực. Nhấp vào đây để mở.
Spoiler Alert
Code mang tính tham khảo
Sliding Window || O(n) space
Sliding Window using Deque | O(k) space
Prefix Sum Array Implementation
Tag:
Sliding window
||Prefix Sum Array