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

Alyona và mex

Đề bài

Mô tả

Cho một dãy gồm n số nguyên không âm a1,a2,,an (bạn được tự chọn dãy này) và m đoạn con. Đoạn con thứ i được cho bởi hai số liri, gồm các phần tử ali,ali+1,,ari.

Với mỗi đoạn con, xét giá trị mex của tập các phần tử trong đoạn đó. mex của một tập là số nguyên không âm nhỏ nhất không thuộc tập đó. Sau đó lấy giá trị nhỏ nhất trong m giá trị mex vừa tính.

Hãy chọn dãy a sao cho giá trị nhỏ nhất đó là lớn nhất có thể.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên nm.
  • m dòng tiếp theo, dòng thứ i chứa hai số nguyên liri mô tả đoạn con thứ i.

Dữ liệu ra

  • Dòng đầu in ra một số nguyên: giá trị nhỏ nhất lớn nhất có thể của các mex.
  • Dòng thứ hai in ra n số nguyên là dãy a. Mọi phần tử phải nằm trong đoạn [0,109].

Bảo đảm luôn tồn tại đáp án tối ưu mà mọi phần tử của dãy nằm trong [0,109]. Nếu có nhiều dãy thỏa mãn, in ra dãy bất kỳ.

Ràng buộc

  • 1n,m105
  • 1lirin

Ví dụ

Input Output Giải thích
5 3
1 3
2 5
4 5
2
0 1 0 1 0
Đoạn [1,3] có mex =2, đoạn [2,5] có mex =2, đoạn [4,5] có mex =2. Giá trị nhỏ nhất là 2. Không thể đạt lớn hơn vì đoạn ngắn nhất [4,5] chỉ dài 2. Mọi dãy khác cho giá trị nhỏ nhất 2 đều được chấp nhận.
4 2
1 4
2 4
3
0 1 2 0
Đoạn [1,4] có mex =3, đoạn [2,4] có mex =3. Đoạn ngắn nhất dài 3 nên đáp án không thể vượt quá 3.

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