trang chủ / bài tập / arrfacts

Dãy số của Vasya

Đề bài

Mô tả

Có một dãy số a1,a2,,an mà bạn không biết. Người ta cho bạn m thông tin về dãy này. Thông tin thứ i là bộ ba số ti,li,ri với ý nghĩa:

  • Nếu ti=1 thì đoạn con ali,ali+1,,ari được sắp xếp không giảm (mỗi phần tử không lớn hơn phần tử liền sau nó).
  • Nếu ti=0 thì đoạn con ali,ali+1,,ari không được sắp xếp không giảm, tức là tồn tại ít nhất một cặp phần tử liền kề trong đoạn mà phần tử đứng trước lớn hơn phần tử đứng sau.

Hãy tìm bất kỳ một dãy số a nào thỏa mãn tất cả các thông tin đã cho, hoặc cho biết không tồn tại dãy như vậy.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên nm.
  • m dòng tiếp theo, mỗi dòng chứa ba số nguyên ti,li,ri.

Dữ liệu ra

  • Nếu không tồn tại dãy thỏa mãn, in ra một dòng chứa từ NO.
  • Ngược lại, in ra YES ở dòng đầu, dòng thứ hai chứa n số nguyên a1,a2,,an (1ai109) là dãy thỏa mãn tất cả các thông tin. Nếu có nhiều dãy thỏa mãn, in ra dãy nào cũng được.

Ràng buộc

  • 2n1000
  • 1m1000
  • 0ti1
  • 1li<rin

Ví dụ

Input Output Giải thích
7 4
1 1 3
1 2 5
0 5 6
1 6 7
YES
7 7 7 7 7 6 6
Đoạn [1,3], [2,5], [6,7] đều không giảm; đoạn [5,6]a5=7>a6=6 nên không sắp xếp. Đáp án khác cũng được chấp nhận, ví dụ 1 2 2 3 5 4 4.
4 2
1 1 4
0 2 3
NO Thông tin 1 buộc cả đoạn [1,4] không giảm, nên a2a3, mâu thuẫn với thông tin 2 đòi đoạn [2,3] phải có phần tử trước lớn hơn phần tử sau.

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