Khôi Phục Mảng

Đề bài

Mô tả

Ban đầu có một mảng a gồm n số nguyên, các vị trí được đánh số từ 1 đến n.

Người ta thực hiện đúng q truy vấn lên mảng. Tại truy vấn thứ i (theo thứ tự 1,2,,q), người ta chọn một đoạn (li,ri) với 1lirin rồi gán tất cả các phần tử ở vị trí từ li đến ri thành giá trị i. Thứ tự các truy vấn là cố định và mọi vị trí từ 1 đến n đều được phủ bởi ít nhất một đoạn.

Sau khi thực hiện xong các truy vấn, người ta chọn một tập hợp vị trí (có thể rỗng) và thay giá trị tại các vị trí đó bằng 0. Kết quả thu được là mảng a mà bạn nhận được. Một giá trị aj=0 nghĩa là phần tử tại vị trí đó đã bị che và có thể là một số nguyên bất kỳ thuộc {1,2,,q}.

Hãy kiểm tra xem có tồn tại một cách chọn các đoạn (li,ri) thỏa mãn các điều kiện trên sao cho mảng kết quả khớp với a (nghĩa là các vị trí khác 0 trong a đều có giá trị đúng như mô tả) hay không. Nếu có, hãy in ra một mảng hợp lệ.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên nq.
  • Dòng thứ hai chứa n số nguyên a1,a2,,an.

Dữ liệu ra

In ra YES nếu tồn tại mảng hợp lệ, sau đó ở dòng thứ hai in ra n số nguyên là một mảng hợp lệ (các giá trị thuộc {1,2,,q} và khớp với mọi vị trí khác 0 trong a).

Nếu không có mảng nào hợp lệ, in ra NO.

Nếu có nhiều mảng hợp lệ, in ra một mảng bất kỳ.

Ràng buộc

  • 1n,q2·105
  • 0aiq

Ví dụ

Input Output Giải thích
4 3
1 0 2 3
YES
1 1 2 3
Có thể thay 0 bằng 1 (hoặc 2), nhưng không thể thay bằng 3 vì khi đó giá trị 2 ở vị trí 3 sẽ kẹp giữa hai 3.
3 10
10 10 10
YES
10 10 10
Chín truy vấn đầu có thể đặt vào bất kỳ đoạn nào; truy vấn 10 phủ toàn bộ (1,3).
5 6
6 5 6 2 2
NO Giá trị 5 kẹp giữa hai số 6, nên truy vấn 5 phải thực hiện trước truy vấn 6 — nhưng khi đó truy vấn 6 sẽ phá huỷ giá trị 5.
3 5
0 0 0
YES
5 5 5
Có nhiều mảng hợp lệ.

Bình luận

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

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0