Số k-tuyệt-vời
Đề bài
Mô tả
Cho một mảng gồm số nguyên, đánh số từ đến .
Với một số nguyên , ta gọi số k-tuyệt-vời của mảng là giá trị nhỏ nhất xuất hiện trong tất cả các đoạn con liên tiếp có độ dài đúng bằng (một đoạn con độ dài là một dãy gồm phần tử liên tiếp của ). Nếu không có giá trị nào cùng xuất hiện trong mọi đoạn con độ dài , thì số k-tuyệt-vời bằng .
Với mỗi từ đến , hãy tính số k-tuyệt-vời của mảng .
Dữ liệu vào
- Dòng đầu chứa số nguyên — số lượng bộ dữ liệu. Sau đó là bộ dữ liệu.
- Mỗi bộ dữ liệu gồm hai dòng:
- Dòng thứ nhất chứa số nguyên — số phần tử của mảng.
- Dòng thứ hai chứa số nguyên — các phần tử của mảng.
Dữ liệu ra
Với mỗi bộ dữ liệu, in ra số nguyên trên một dòng, trong đó số thứ là số i-tuyệt-vời của mảng.
Ràng buộc
- Tổng của trên tất cả các bộ dữ liệu không vượt quá .
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 3 5 1 2 3 4 5 5 4 4 4 4 2 6 1 3 1 5 3 1 |
-1 -1 3 2 1 -1 4 4 4 2 -1 -1 1 1 1 1 |
Bộ 1: các giá trị đều phân biệt. Với không giá trị nào phủ hết mọi đoạn nên là . Với , giá trị nhỏ nhất phủ mọi đoạn độ dài 3 là 3. Bộ 3: giá trị 1 ở các vị trí 1, 3, 6; khoảng cách lớn nhất giữa hai lần xuất hiện liên tiếp (kể cả hai đầu) là 3, nên từ trở đi đáp án là 1. |
| 1 7 1 2 2 2 2 2 1 |
-1 2 2 2 2 1 1 | Giá trị 2 nằm ở các vị trí 2..6; khoảng trống ở hai đầu (trước vị trí 2 và sau vị trí 6) đều là 2, nên từ giá trị 2 phủ mọi đoạn. Giá trị 1 ở vị trí 1 và 7; khoảng cách lớn nhất giữa hai lần xuất hiện là 6, nên từ giá trị 1 (nhỏ hơn) trở thành đáp án. |
Bình luận