Hướng dẫn giải của HSG9 Long An 2024 - Bài 3

Chỉ dùng lời giải này khi không có ý tưởng, và đừng copy-paste code từ lời giải này. Hãy tôn trọng người ra đề và người làm lời giải.


Nộp code mẫu trước khi tự giải được bài tập là một hành vi có thể bị ban.

Tác giả: votranngocvy

Yêu cầu 1: Ta sẽ sử dụng một mảng đánh dấu để biết trước đó đã duyệt qua phần tử nào có giá trị đó chưa, nếu chưa thì cộng vào tổng

Yêu cầu 2: Duyệt mảng. Với ~i=1~, gán ~cnt=1~. Với mỗi vị trí ~i~ ~(2 \le i \le n)~, nếu ~a_i = a_{i - 1}~ thì tăng ~cnt~ lên ~1~; ngược lại hoặc ~i=n~, nếu ~cnt \ge 2~ và ~cnt > maxLen~ thì cập nhật lại ~maxLen~ và đoạn cần in ra. Cuối cùng, nếu ~maxLen=0~ thì in ra ~Not~ ~Found~, ngược lại in ra đoạn ~[l,r]~

Yêu cầu 3: Duyệt mảng. Với mỗi vị trí ~i~ ~(1 \le i \le n)~, dùng ~while~ để tìm vị trí ~j~ ~(i \le j \le n)~ sao cho thỏa mãn đoạn ~[i,j]~ là dãy con không giảm và tổng đoạn này ~\le m~, nếu tổng đoạn này lớn hơn ~maxSum~ thì cập nhật lại ~maxSum~ và đoạn cần in ra. Cuối cùng, nếu ~maxSum=0~ thì in ra ~Not~ ~Found~, ngược lại in ra đoạn ~[l,r]~


Bình luận

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


Không có bình luận tại thời điểm này.