Các bài nộp | Làm tốt nhất | Về danh sách bài |
FSOFT - Group separation |
English | Tiếng Việt |
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 Aij 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. (Aii=0; Aji=Aij)
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)4x10.
- Điểm của toàn bài bằng tổng điểm cho mỗi test.
Được gửi lên bởi: | AnhDQ |
Ngày: | 2009-05-14 |
Thời gian chạy: | 0.400s |
Giới hạn mã nguồn: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Ngôn ngữ cho phép: | Tất cả ngoại trừ: ERL GOSU JS-RHINO NODEJS PERL6 PYPY RUST SED VB.NET |
Nguồn bài: | Mr Khuong Nguyen Duy, College of Technology, VNU (Hanoi, Vietnam) |