Tổng k số

Xem PDF

Đ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\)\(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

  • leminhduc 7:42 p.m. 13 Tháng 12, 2024

    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;
    }

    • IPHONENEVERDIE 11:17 a.m. 10 Tháng 12, 2024

      Dùng Sliding Window nhe

      • xuankien18062013 7:49 p.m. 21 Tháng 10, 2024

        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)

        • BestFlo2k9 12:10 p.m. 26 Tháng 7, 2024

          Prefix sum là full ac

          • trieuanhtri 10:23 a.m. 26 Tháng 7, 2024

            def max_sum_of_k_consecutive_elements(N, K, arr):

            current_sum = sum(arr[:K])
            max_sum = current_sum
            
            for i in range(K, N):
                current_sum = current_sum - arr[i - K] + arr[i]
                if current_sum > max_sum:
                    max_sum = current_sum
            
            return max_sum
            

            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é

            • TranDucAnhh 10:20 a.m. 26 Tháng 7, 2024

              include <bits/stdc++.h>

              using namespace std;

              int main()
              {
              int n, k;
              cin >> n >> k;

              vector<int> a(n);
              for (int &x : a) cin >> x;
              
              long long sum = 0;
              for (int i = 0; i < k; ++i) sum += a[i];
              
              long long res = sum;
              for (int i = k; i < n; ++i) {
                  sum += a[i] - a[i - k];
                  res = max(res, sum);
              }
              
              cout << res;
              return 0;
              

              }
              CODE AC

              • hjhjhjhjhj 3:14 p.m. 6 Tháng 4, 2024

                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

                • khoinguyentl2023 11:57 a.m. 27 Tháng 3, 2023

                  admin ơi tăng thời gian cho python đi

                  • nhphuc 9:48 p.m. 5 Tháng 10, 2022

                    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ớ :((

                    • donhatnam 9:24 a.m. 1 Tháng 9, 2020

                      Bình luận bị ẩn vì nhiều phản hồi tiêu cực. Nhấp vào đây để mở.

                      • 2 bình luận nữa