Không hỗ trợ Mobile

Chế độ luyện tập yêu cầu môi trường màn hình lớn để làm bài và chống gian lận hiệu quả. Vui lòng truy cập bằng máy tính (Desktop/Laptop) để tiếp tục thao tác.

Quay lại trang chủ

#2013 · NÂNG CAO CHẤT LƯỢNG HỌC TẬP

Để nâng cao chất lượng đào tạo tốt hơn, sau mỗi tháng nhà Trường đánh giá mức độ cải thiện chất lượng học tập của sinh viên bằng một số nguyên a_i:

  • a_i > 0: chất lượng học tập tăng
  • $a_i < 0$: chất lượng giảm
  • a_i = 0: không thay đổi

Năm học 2025-2026, Ban giám hiệu quyết định chọn một giai đoạn liên tiếp gồm một số tháng để triển khai chương trình “Tăng cường chất lượng học tập”, sao cho:

  • Tổng mức cải thiện là lớn nhất
  • HOẶC nếu tất cả chỉ số đều âm → chọn không triển khai (kết quả = 0)

Yêu cầu: Tính tổng mức cải thiện lớn nhất mà nhà trường có thể đạt được trong một khoảng thời gian thích hợp.

Dữ liệu vào

Dữ liệu gồm 2 dòng

  • Dòng 1: Số nguyên n — số tháng $(0 < n \leq 10^9)$
  • Dòng 2: dãy gồm n số nguyên a_1, a_2, ..., a_n (−10^9 \leq a_i \leq 10^9)

Dữ liệu ra

Một số nguyên duy nhất — tổng cải thiện lớn nhất có thể.

Ràng buộc

$0 < n \leq 10^9$

|a_i | \leq 10^9

BẢNG TỔNG QUAN KẾT QUẢ

# Tài khoản Kết suất Lúc nộp
1
17 ms 304 KB
493 Bytes
16/04/2026
17:27
2
18 ms 312 KB
430 Bytes
16/04/2026
17:29
3
K
23 ms 304 KB
536 Bytes
22/11/2025
23:17
4
Lê Duy Hải @2280600799
23 ms 304 KB
2158 Bytes
23/11/2025
11:20
5
K
24 ms 304 KB
593 Bytes
22/11/2025
15:19
6
25 ms 304 KB
1032 Bytes
06/12/2025
14:04
7
P
25 ms 1056 KB
516 Bytes
21/11/2025
17:33
8
K
26 ms 304 KB
536 Bytes
22/11/2025
14:42
9
T
26 ms 308 KB
826 Bytes
21/04/2026
00:44
10
27 ms 1052 KB
579 Bytes
20/11/2025
23:07
11
Đỗ Chí Thành @24800600886
28 ms 2564 KB
642 Bytes
21/11/2025
14:26
12
N
Lê Minh Nhật @2386400037
29 ms 1052 KB
463 Bytes
21/11/2025
14:22
13
Đỗ Chí Thành @24800600886
29 ms 2568 KB
512 Bytes
22/11/2025
21:35
14
Đ
34 ms 588 KB
415 Bytes
22/11/2025
00:52
15
L
59 ms 284 KB
299 Bytes
14/02/2026
13:33
16
83 ms 1032 KB
556 Bytes
25/11/2025
11:28
17
86 ms 2636 KB
805 Bytes
21/11/2025
14:19
18
T
Quách Tấn Tài @25820200116
92 ms 652 KB
437 Bytes
22/11/2025
16:26
19
93 ms 1032 KB
391 Bytes
21/11/2025
14:27
20
A
93 ms 1032 KB
622 Bytes
21/11/2025
20:14

LỊCH SỬ CÁ NHÂN

Vui lòng đăng nhập để xem lịch sử làm bài của bạn.

THẢO LUẬN BÀI TOÁN

8 ngày trước

Thuật toán Kadane (Đoạn con có tổng lớn nhất)

Vì thấy khá liên quan đến bài này nên mình xin đóng góp thêm về 1 thuật toán vừa đơn giản lại hiệu quả.

Bạn có thể xem mã giả ở đây

Kadane algorithm

arr[int] <- input
// Base
set cur_arr <- arr[0]     // mảng con hiện tại
set max_arr <- cur_arr // mảng con có tổng lớn nhất
//
For i := 1 -> length(arr)-1 :
      if cur_arr > 0:
             cur_arr <- cur_arr + arr[i]
      else:
             cur_arr <- 0
       max_arr <- max(max_arr, cur_arr)

Thuật toán này tuân theo nguyên tắc:

  • 1/ Nếu mảng trước đã âm thì không cần giữ làm gì => đặt cur_arr = giá trị hiện tại
  • 2/ Nếu mảng trước không âm => cộng mảng trước với giá trị hiện tại

Điều thú vị ở thuật toán này là với mảng âm vẫn có thể cho ra được đoạn con có tổng lớn nhất!

Vào thảo luận 0 Phản hồi
T
Quách Tấn Tài @25820200116
5 tháng trước

mn có thể xem qua bt của mình

include

using namespace std; int main() {

int n;
long long ketqua =0;
long ketquatam =0;
cin >> n;
int aray[n];
for (int i=0; i<n; i++)

{

cin >> aray[i];

}

for (int i=0; i<n; i++){
    ketquatam += aray[i];
    if (ketquatam<=0)
        ketquatam = 0;
    if (ketqua<= ketquatam)
    	ketqua = ketquatam;
}
cout << ketqua;
return 0;
}
Vào thảo luận 0 Phản hồi

GỢI Ý & HƯỚNG DẪN

  • Input 1: Đoạn tốt nhất là từ phần tử thứ 1 đến thứ 3 có tổng = 2 + (-1) + 4 = 5.
  • Input 2: Tất cả các phần tử đều âm, nên không có đoạn liên tiếp nào có tổng dương → Tổng lớn nhất là ≤ 0 thì không chọn đoạn nào.
  • Input 3: Đoạn tốt nhất là từ phần tử thứ 5 đến thứ 7 có tổng = 2 + 1 + 4 = 7
Viết code