Chọn Đội tuyển HSGQG Huế 2024 - Leo núi

Xem dạng PDF

Gửi bài giải

Điểm: 0,01 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: CLIMBING.INP
Output: CLIMBING.OUT

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C++, Go, Java, Kotlin, Pascal, PyPy, Python, Rust, Scratch

Leo núi là môn thể thao trong đó người tham gia leo lên, xuống hoặc băng qua các vách đá tự nhiên hoặc các bức tường đá nhân tạo. Mục tiêu là đạt đến đỉnh của một địa hình hoặc điểm cuối của tuyến đường được xác định trước mà không bị ngã.

Đây là môn thể thao đòi hỏi người chơi cần có sự kiên nhẫn, cơ thể khỏe mạnh, sức bền, sự dẻo dai, bộ môn thể thao này chính là một thử thách lớn dành cho những ai luôn muốn chiến thắng bản thân và ưa thích sự mạo hiểm.

Nam là một người rất thích leo núi, cậu dự định sẽ luyện tập ở một dãy núi gồm ~n~ ngọn núi. Các ngọn núi được đánh số từ ~1~ đến ~n~, từ trái sang phải, ngọn núi thứ ~i~ có độ cao ~h_i~. Để đảm bảo buổi leo núi được thú vị và an toàn, cậu sẽ chọn ra một số ngọn núi thỏa mãn đồng thời các quy tắc sau:

  • Leo các ngọn núi đã chọn theo thứ tự tăng dần chỉ số;

  • Bắt đầu ở một ngọn núi thấp để làm quen với địa hình, sau đó leo lên một ngọn núi cao hơn (nếu có);

  • Nếu ngọn núi đang leo cao hơn ngọn núi đã leo ngay trước đó, ngọn núi tiếp theo cần thấp hơn ngọn núi đang leo (nếu có);

  • Nếu ngọn núi đang leo thấp hơn ngọn núi đã leo ngay trước đó, ngọn núi tiếp theo cần cao hơn ngọn núi đang leo (nếu có);

  • Ngọn núi được chọn leo cuối cùng cần thấp hơn ngọn núi đã leo ngay trước đó (nếu có).

Nói cách khác, giả sử các ngọn núi được chọn là ~a_1, a_2, ..., a_k~ thì cần thỏa mãn đồng thời các điều kiện sau:

  • ~k~ là một số nguyên dương lẻ;

  • ~1 \le a_1 < a_2 < ... < a_k \le n~;

  • ~h_{a_1} < h_{a_2} > h_{a_3} < ... > h_{a_k}~.

Do điều kiện thời tiết thất thường, một số ngọn núi có thể không leo được nên Nam đã vạch ra ~q~ giả định. Mỗi giả định gồm hai số nguyên ~l, r~ giả định rằng chỉ có các ngọn núi có chỉ số từ ~l~ đến ~r~ là có thể leo được.

Yêu cầu: Với mỗi giả định, hãy cho Nam biết số lượng ngọn núi nhiều nhất có thể leo được sao cho vẫn tuân thủ các quy tắc đã đặt ra.

Input

Vào từ file văn bản CLIMBING.INP:

  • Dòng đầu tiên chứa hai số nguyên ~n~ và ~q~, lần lượt là số ngọn núi và số giả định (~1 \le n, q \le 2 \times 10^5~);

  • Dòng thứ hai chứa ~n~ số nguyên mô tả dãy núi, số thứ ~i~ là ~h_i~, độ cao của ngọn núi thứ ~i~ (~1 \le h_i \le 10^9~);

  • ~q~ dòng cuối cùng, mỗi dòng chứa hai số nguyên ~l, r~ mô tả một giả định (~1 \le l, r \le n~).

Output

Ghi ra file văn bản CLIMBING.OUT:

  • Gồm ~q~ dòng, dòng thứ ~i~ in ra một số nguyên là số lượng ngọn núi nhiều nhất có thể leo được sao cho vẫn tuân thủ các quy tắc đã đặt ra trong giả định thứ ~i~, theo thứ tự xuất hiện trong dữ liệu.

Scoring

Subtask Điểm Ràng buộc
~1~ ~30 \%~ ~n, q \le 100~ và ~1 \le h_i \le 2~
~2~ ~20 \%~ ~n, q \le 100~
~3~ ~20 \%~ ~n, q \le 2000~
~4~ ~20 \%~ ~1 \le h_i \le 2~
~5~ ~10 \%~ Không có ràng buộc gì thêm

Sample Input 1

7 3
1 9 6 10 2 3 5
1 5
3 6
4 7

Sample Output 1

5
3
1

Sample Input 2

6 2
2 1 2 2 1 1
1 3
2 6

Sample Output 2

1
3

Notes

Trong giả định đầu tiên, chọn leo các ngọn núi ~1, 2, 3, 4, 5~.

Trong giả định thứ hai, chọn leo các ngọn núi ~3, 4, 6~.

Trong giả định thứ ba, chọn leo ngọn núi ~4~.


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.