Phân nhóm
Xem dạng PDFMô 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:
- 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.
- 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 n và m: 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 a và b: 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
Gửi bài giải
Kotlin
PyPy
Đ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
Pascal
Python
Scratch