Thi thử TS10 CSP 2024 - Điền số

Xem dạng PDF

Gửi bài giải

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

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

Trong trường hợp đề bài hiển thị không chính xác, bạn có thể tải đề bài tại đây: Đề bài

Cho một bảng giấy gồm ~n~ ô đánh số từ ~1~ tới ~n~. Ban đầu các ô được ghi số ~0~. Bạn được sử dụng các lệnh có dạng ~Fill(i,j,v)~ trong đó ~i,j,v~ là các số nguyên, ~1 \le i \le j \le n~ và ~v \ge 0~ với chức năng như sau:

  • Lệnh này chỉ được thực hiện nếu hiện tại số ghi trên tất cả các ô từ ~i~ tới ~j~ đều nhỏ hơn ~v~.

  • Khi lệnh này thực hiện, số ~v~ sẽ được ghi vào tất cả các ô từ ~i~ tới ~j~, đè lên số hiện có.

Yêu cầu: Tìm một số ít nhất các lệnh ~Fill~ để điền các số vào bảng giấy sao cho sau khi thực hiện, ta thu được số ghi trên ô ~i~ là ~a_i~.

Input

  • Dòng 1 chứa số nguyên dương ~T \le 2 \cdot 10^5~ là số test

  • ~T~ nhóm dòng tiếp theo, mỗi nhóm gồm ~2~ dòng chứa dữ liệu một test:

    • Dòng 1 chứa số nguyên dương ~n \le 2 \cdot 10^5~

    • Dòng 2 chứa ~n~ số nguyên ~a_1, a_2, \dots, a_n~ cách nhau bởi dấu cách ~(0 \le a_i \le 10^9)~

Tổng các giá trị ~n~ trong tất cả ~T~ test không vượt quá ~2 \cdot 10^5~.

Output

Ghi ra ~T~ dòng, mỗi dòng ghi một số nguyên duy nhất là số lệnh ~Fill~ cần thực hiện đối với test tương ứng.

Scoring

Subtask Điểm Ràng buộc
1 ~30\%~ ~T \le 10~ và ~n \le 100~
2 ~30\%~ ~T \le 10~ và ~n \le 1000~
3 ~40\%~ Không có ràng buộc bổ sung ngoài các ràng buộc đã nêu trong đề.

Sample Input 1

4
6
0 1 2 2 2 1
4
0 0 0 0
8
2 2 2 3 3 3 3 3
9
0 1 1 2 3 2 1 2 1

Sample Output 1

2
0
2
4

Notes

Giải thích test 4:

~Fill(2,9,1)~

~0\ 1\ 1\ 1\ 1\ 1\ 1\ 1\ 1~

~Fill(4,6,2)~

~0\ 1\ 1\ 2\ 2\ 2\ 1\ 1\ 1~

~Fill(5,5,3)~

~0\ 1\ 1\ 2\ 3\ 2\ 1\ 1\ 1~

~Fill(8,8,2)~

~0\ 1\ 1\ 2\ 3\ 2\ 1\ 2\ 1~


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.