Khôi phục mảng của Levko

Đề bài

Mô tả

Levko có một mảng số nguyên a1,a2,,an nhưng đã làm mất nó. May mắn là Levko còn giữ lại bản ghi của tất cả các thao tác đã thực hiện trên mảng, theo đúng thứ tự. Mỗi thao tác thuộc một trong hai loại:

  1. Cập nhật: cho ba số l,r,d, tăng tất cả các phần tử từ vị trí l đến r thêm d, tức là aj+=d với mọi ljr.
  2. Truy vấn: cho ba số l,r,m, giá trị lớn nhất trong đoạn từ l đến r (tại thời điểm đó) đúng bằng m, tức là maxljraj=m.

Cho bản ghi các thao tác, hãy khôi phục một mảng a bất kỳ sao cho kết quả của mọi thao tác loại 2 khớp đúng với bản ghi. Levko nhớ rằng mọi phần tử của mảng ban đầu có giá trị tuyệt đối không vượt quá 109, nên mảng bạn đưa ra cũng phải thỏa |ai|109.

Nếu không tồn tại mảng nào thỏa mãn, hãy báo không có lời giải. Nếu có nhiều mảng hợp lệ, in ra bất kỳ mảng nào.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên nm là kích thước mảng và số thao tác.
  • m dòng tiếp theo, dòng thứ i mô tả thao tác thứ i. Số nguyên đầu tiên là loại thao tác ti:
    • Nếu ti=1: theo sau là li,ri,di.
    • Nếu ti=2: theo sau là li,ri,mi.

Các thao tác được cho theo đúng thứ tự Levko đã thực hiện.

Dữ liệu ra

  • Nếu tồn tại lời giải, in ra YES ở dòng đầu, dòng thứ hai in n số nguyên a1,a2,,an (với |ai|109).
  • Nếu không tồn tại, in ra NO.

Ràng buộc

  • 1n,m5000
  • 1ti2
  • 1lirin
  • 104di104
  • 5·107mi5·107

Ví dụ

Input Output Giải thích
4 5
1 2 3 1
2 1 2 8
2 3 4 7
1 1 3 3
2 3 4 8
YES
8 7 4 7
Với mảng [8,7,4,7]: truy vấn 2 hỏi max của a1,a2=8; truy vấn 3 hỏi max của a3,a4=7; sau khi cộng 3 vào a1,a2,a3 mảng thành [11,10,7,7], truy vấn 5 hỏi max của a3,a4=7... đều khớp. Bất kỳ mảng hợp lệ khác cũng được chấp nhận.
4 5
1 2 3 1
2 1 2 8
2 3 4 7
1 1 3 3
2 3 4 13
NO Không có mảng nào đồng thời cho max của a3,a4 bằng 7 (trước khi cộng) rồi lại bằng 13 (sau khi cộng 3 vào a3), vì sau thao tác cộng max chỉ có thể tăng đúng 3 đơn vị.

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