Olympic chuyên KHTN 2025 - MEXGRAPH

Xem dạng PDF

Gửi bài giải

Điểm: 25,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 1G
Input: stdin
Output: stdout

Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Output Only, Pascal, PyPy, Python, Scratch, TEXT

Trong trường hợp đề bài hiển thị không chính xác, bạn có thể tải đề bài tại đây: Đề bài

Cho một đồ thị vô hướng gồm ~n~ đỉnh và ~m~ cạnh, các đỉnh được đánh số từ ~1~ đến ~n~. Tìm một dãy ~a~ có gồm ~n~ số nguyên không âm thỏa mãn điều kiện sau (Các phần tử của dãy ~a~ được đánh số từ ~1~ đến ~n~):

Với mọi ~u~ từ ~1~ đến ~n~, gọi ~v_1, \dots, v_k~ là các đỉnh có cạnh nối trực tiếp với ~u~. Ta có ~a_u = MEX([a_{v_1}, a_{v_2}, \dots, a_{v_k}])~. Trong đó, ~MEX~ của một dãy ~b~ là giá trị nguyên không âm nhỏ nhất mà không tồn tại trong dãy ~b~. Ví dụ:

~MEX([2, 2, 1]) = 0~, ~MEX([3, 1, 0, 1]) = 2~, ~MEX([0, 3, 1, 2]) = 4~.

Nếu không tồn tại bất kỳ dãy ~a~ nào thỏa mãn điều kiện trên, in ra -1.

Input

Dòng đầu tiên gồm ~2~ số nguyên dương ~n, m~ ~(1 \le n \le 10^5, 0 \le m \le \min(\frac{n(n-1)}{2}, 10^5))~ lần lượt biểu thị cho số đỉnh và số cạnh của đồ thị.

~m~ dòng sau, dòng thứ ~i~ gồm ~2~ số nguyên dương ~u_i, v_i~ biểu thị cho cạnh thứ ~i~ của đồ thị ~(1 \le u_i, v_i \le n, u_i \ne v_i)~.

Output

Nếu như không tồn tại bất kỳ dãy ~a~ nào thỏa mãn đề bài đã cho, in ra một dòng duy nhất gồm số -1. Trong các trường hợp còn lại, in ra ~n~ số trên ~1~ dòng lần lượt là ~a_1, a_2, \dots, a_n~, các số tách nhau bởi một dấu cách.

Scoring

Subtask Điểm Ràng buộc
1 ~2\%~ ~m = n-1, u_i = i, v_i = i+1~.
2 ~8\%~ ~m = n-1~, với mọi cặp đỉnh ~u, v~ trên đồ thị tồn tại ít nhất ~1~ đường đi từ ~u~ đến ~v~.
3 ~20\%~ ~n \ge 100~. Đồ thị đảm bảo thỏa mãn các điều kiện sau: Không tồn tại cạnh ~(u, v)~ nào trên đồ thị sao cho ~u > n-20, v > n-20~. Nếu như bỏ các đỉnh ~n, n-1, \dots, n-19~ khỏi đồ thị cùng với các cạnh nối với chúng, đồ thị trở thành một đồ thị ~2~ phía.
4 ~10\%~ ~-2 \le v_i-u_i \le 2~ với mọi ~i~ thỏa mãn ~1 \le i \le m~.
5 ~60\%~ Không có điều kiện gì thêm.

Sample Input 1

5 5
1 3
1 2
2 4
2 3
3 5

Sample Output 1

0 1 2 0 0

Sample Input 2

1 0

Sample Output 2

0

Sample Input 3

5 4
1 2
2 4
4 5
1 3

Sample Output 3

0 1 1 0 1

Notes

Một đồ thị được gọi là đồ thị ~2~ phía nếu như thỏa mãn điều kiện sau:

Tồn tại một cách tô màu mọi đỉnh trên đồ thị bằng một trong ~2~ màu xanh hoặc đỏ sao cho với mọi cạnh ~(u, v)~ trên đồ thị thì màu tô trên đỉnh ~u~ khác màu tô trên đỉnh ~v~.


Bình luận

Hãy đọc nội quy trước khi bình luận.


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