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

Dãy thú vị

Đề bài

Mô tả

Một dãy n số nguyên không âm a1,a2,,an được gọi là thú vị nếu nó thoả mãn đủ m ràng buộc cho trước.

Ràng buộc thứ i gồm ba số nguyên li, ri, qi, và yêu cầu rằng phép AND theo bit của tất cả các phần tử trên đoạn [li,ri] phải đúng bằng qi:

ali&ali+1&&ari=qi

Hãy tìm một dãy thú vị bất kỳ gồm n phần tử, hoặc cho biết rằng không tồn tại dãy nào như vậy.

Ký hiệu x&y là phép AND theo bit của hai số xy (toán tử & trong C++, Java, Python).

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên nm: số phần tử của dãy và số ràng buộc.
  • m dòng tiếp theo, dòng thứ i chứa ba số nguyên li, ri, qi mô tả ràng buộc thứ i.

Dữ liệu ra

Nếu tồn tại dãy thú vị, in ra YES trên dòng đầu, và trên dòng thứ hai in n số nguyên a1,a2,,an với 0ai<230.

Nếu có nhiều đáp án, in ra đáp án bất kỳ.

Nếu không tồn tại dãy thú vị, chỉ in ra NO.

Ràng buộc

  • 1n105
  • 1m105
  • 1lirin
  • 0qi<230

Ví dụ

Input Output Giải thích
3 1
1 3 3
YES
3 3 3
Chỉ có một ràng buộc: a1&a2&a3=3. Dãy toàn số 3 thoả mãn.
3 2
1 3 3
1 3 2
NO Cùng một đoạn [1,3] không thể vừa có AND bằng 3 vừa có AND bằng 2.
3 2
1 2 536870912
2 3 536870911
YES
536870912 1073741823 536870911
a2 phải chứa mọi bit của cả 536870912=229 lẫn 536870911=2291, nên a2=2301. Khi đó a1&a2=229a2&a3=2291. Đáp án khác cũng được chấp nhận.

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