Trung vị của Orac
Đề bài
Mô tả
Cho dãy số nguyên dương .
Trong một thao tác, bạn được chọn một đoạn con tùy ý của dãy và thay tất cả các giá trị bằng trung vị của multiset .
Trong bài này, trung vị của một multiset được định nghĩa là phần tử nhỏ thứ của nó. Ví dụ: trung vị của là , trung vị của là .
Cho số nguyên dương . Hỏi có thể thực hiện một số thao tác (có thể không thao tác nào) để biến toàn bộ dãy thành hay không?
Bạn cần trả lời truy vấn độc lập.
Dữ liệu vào
- Dòng đầu chứa số nguyên : số truy vấn.
- Mỗi truy vấn gồm hai dòng:
- Dòng đầu chứa hai số nguyên và .
- Dòng thứ hai chứa số nguyên dương .
Dữ liệu ra
Với mỗi truy vấn, in ra một dòng: yes nếu có thể biến toàn bộ dãy thành , ngược lại in no.
Ràng buộc
- Tổng trên tất cả các truy vấn không vượt quá .
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 5 5 3 1 5 2 6 1 1 6 6 3 2 1 2 3 4 3 3 1 2 3 10 3 1 2 3 4 5 6 7 8 9 10 |
no yes yes no yes |
Truy vấn 1: không thể biến mọi phần tử thành 3. Truy vấn 2: dãy đã thỏa mãn sẵn (). Truy vấn 3: chọn cả dãy, trung vị của là . Truy vấn 4: không thể. Truy vấn 5: chọn đoạn rồi chọn đoạn . |
| 2 1 1 1000000000 3 1000000000 1000000000 996 251 |
no no |
Truy vấn 1: dãy không chứa và không có phần tử nào khác nên không thể tạo ra . Truy vấn 2: chỉ có một phần tử , mọi thao tác trên đoạn dài đều tạo ra trung vị . |
Bình luận