FSOFT - Group separation
Giới hạn- Thời gian: 0.4s
- Bộ nhớ: 1536MB
- Mã nguồn: 50000 bytes
Công ti phần mềm FSoft mới nhận thêm N nhân viên. Lãnh đạo công ti muốn số nhân viên mới trên chia thành M nhóm khác nhau thỏa mãn rằng: số người trong các nhóm bằng nhau, mỗi người chỉ thuộc một nhóm. Qua phân tích bản CV và lúc phỏng vấn, công ti đưa ra bảng đánh giá A với A
ij
là sự hiệu quả khi người thứ i và j thuộc cùng một nhóm.
Ban lãnh đạo công ti nhờ bạn tìm cách phân chia N nhân viên thành M nhóm sao cho hiệu quả nhất. Sự hiệu quả của một cách phân chia bằng tổng sự hiệu quả của từng nhóm; sự hiệu quả của mỗi nhóm bằng tổng sự hiệu của của các cặp trong nhóm đó.
Dữ liệu
- Dòng đầu tiên chứa hai số N, M.
- N dòng tiếp theo, mỗi dòng ghi N số mô tả bảng A. (A
ii
=0; A
ji
=A
ij
)
Kết quả
- Dòng đầu tiên ghi sự hiệu quả của cách phân chia mà bạn tìm được.
- M dòng tiếp theo ghi danh sách nhân viên của mỗi nhóm trong cách chia của bạn.
Ví dụ
Dữ liệu:
4 2
0 1 2 3
1 0 5 1
2 5 0 2
3 1 2 0
Kết quả:
8
1 4
2 3
Giới hạn
- 1 ≤ N ≤ 100.
- 1 ≤ M ≤ 10. (N mod M = 0)
Cách tính điểm
- Có 10 tests; với mỗi test, gọi sự hiệu quả bạn tìm được là RES, đáp án là ANS; nếu RES khớp với danh sách các nhóm bạn đưa ra thì số điểm bạn đạt được là
(RES/ANS)
4
x10
.
- Điểm của toàn bài bằng tổng điểm cho mỗi test.
- Người up: anhdq
- Nguồn bài: Mr Khuong Nguyen Duy, College of Technology, VNU (Hanoi, Vietnam)