Phân nhóm

Xem dạng PDF

Mô tả bài toán: Phân nhóm bạn bè

Lớp học của Uolevi có n học sinh và m mối quan hệ bạn bè giữa họ. Nhiệm vụ của bạn là chia các học sinh thành hai nhóm sao cho không có hai học sinh nào trong cùng một nhóm là bạn bè. Kích thước của các nhóm có thể tự do lựa chọn.

Bạn cần:

  1. Phân chia các học sinh vào hai nhóm sao cho điều kiện trên được thỏa mãn.
  2. Nếu không thể chia thành hai nhóm, in "IMPOSSIBLE".

Input:

  • Dòng đầu tiên chứa hai số nguyên nm: số lượng học sinh và số lượng mối quan hệ bạn bè.
  • Sau đó, có m dòng, mỗi dòng chứa hai số nguyên ab: học sinh ~a~ và ~b~ là bạn bè.

Output:

  • Nếu có thể chia thành hai nhóm, in ra một dãy gồm ~n~ số, với mỗi số là "1" hoặc "2", biểu diễn nhóm mà học sinh đó được xếp vào.
  • Nếu không thể chia thành hai nhóm, in "IMPOSSIBLE".

Ràng buộc:

  • ~1 \leq n \leq 10^5~
  • ~1 \leq m \leq 2 \cdot 10^5~
  • ~1 \leq a, b \leq n~

Ví dụ chạy:

Input:
5 3
1 2
1 3
4 5
Output:
1 2 2 1 2

Giải thích:

  • Có 5 học sinh và 3 mối quan hệ bạn bè.
  • Một cách phân nhóm hợp lệ là: học sinh ~1~ thuộc nhóm ~1~, học sinh ~2~ và ~3~ thuộc nhóm ~2~, học sinh ~4~ thuộc nhóm ~1~, và học sinh ~5~ thuộc nhóm ~2~.



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.

Gửi bài giải
Điểm: 10,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout
Nguồn bài: CSES
Dạng bài
CSES
Ngôn ngữ cho phép
C
C++
Java
Kotlin
Pascal
PyPy
Python
Scratch