Dãy con liên tiếp có tổng lớn nhất

Xem dạng PDF

Gửi bài giải

Điểm: 12,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Kotlin, Pascal, PyPy, Python, Scratch

Cho số nguyên dương N và dãy gồm N số nguyên ~a_1, a_2,…,a_N~.

Yêu cầu: Hãy tìm dãy con gồm các phần tử liên tiếp có tổng lớn nhất.

Input:

  • Dòng 1. Ghi số nguyên N.
  • Dòng 2. Ghi N số nguyên mỗi số cách nhau ít nhất 1 dấu cách.

Output:

  • Ghi số nguyên dương P là tổng các phần tử của dãy con tìm được thỏa mãn các yêu cầu trên.

(Lưu ý: 1 phần tử cũng tính là 1 dãy)

Example:

Input:

6 
-16 3 3 3 3 -12

Output:

12

Constraints:

~0 < N \le 10^4; -10^7 \le a_i \le 10^7~


Bình luận

Hãy đọc nội quy trước khi bình luận.



  • 1
    minhnn0305  đã bình luận lúc 26, Tháng 8, 2024, 2:02

    Bài này lm sao ạ! Em lm mà chỉ được 11/12 test


    • -1
      Shinoz  đã bình luận lúc 26, Tháng 8, 2024, 10:10

      thuật Kadane nha em


  • 0
    cocomelon  đã bình luận lúc 25, Tháng 11, 2023, 4:02

    .


  • 0
    cocomelon  đã bình luận lúc 25, Tháng 11, 2023, 4:02

    các bạn cũng có thể dùng tổng tiền tố nhé, có sẵn trên gu gồ👌


  • 2
    htienisme  đã bình luận lúc 25, Tháng 11, 2023, 1:51

    co truong hop tong so am khong vay ae


    • 0
      cocomelon  đã bình luận lúc 25, Tháng 11, 2023, 4:03

      yes


    • 3
      Shinoz  đã bình luận lúc 25, Tháng 11, 2023, 2:44


  • 8
    __turing__  đã bình luận lúc 22, Tháng 8, 2023, 16:55
    • Đây là một bài quy hoạch động (bạn có thể search google thuật toán Kadane để biết thêm chi tiết).
    • Gọi dp[i] là tổng lớn nhất khi xét đến vị trí i, lúc này ta xét 2 trường hợp:
      • Không chọn a[i] -> dp[i] = dp[i-1]
      • Chọn a[i], vì có cả số âm và dãy phải liên tiếp nên khi chọn a[i] ta cũng phải chọn cả dp[i-1] trước đó hoặc chọn a[i] nhưng mà không chọn dp[i-1] (do có âm nên lỡ tổng lớn nhất i-1 số trước đó nhỏ hơn a[i])
      • Trường hợp cơ sở: dp[1] = a[1]
    • Dưới đây có 2 code AC (code 1 chưa tối ưu bộ nhớ):
      • Code 1: https://ideone.com/gE66BV
      • Code 2: https://ideone.com/p0w5b2
    • Mong admin cho vào phần Solution để các bạn học hỏi!