Các bài nộp | Làm tốt nhất | Về danh sách bài |
LEAGUE - Lập lịch thi đấu bóng đá |
Một giải thi đấu bóng đá gồm n đội thi đấu vòng tròn một lượt. Các đội bóng được đánh số thứ tự từ 1 đến n. Theo thể lệ giải đấu, nếu trận đấu diễn ra với kết quả hòa, hai đội sẽ thi đấu luân lưu cho đến khi phân định thắng thua (nghĩa là các trận đấu đều được phân định thắng thua).
Hỏi có tồn tại một cách sắp xếp các đội theo thứ tự sao cho trong thứ tự đó, mỗi đội đều thắng trận đấu với đội liền sau mình? Trong trường hợp tồn tại, hãy xác định một cách sắp xếp như vậy.
Đây là 1 bài cơ bản đã được học trong môn Cấu trúc dữ liệu thuật toán
Input
- Dòng đầu tiên chứa số nguyên n, số đội bóng tham dự giải đấu. (1 ≤ n ≤ 100).
- Dòng thứ i trong số n dòng tiếp theo chứa j kí tự 0 hoặc 1, kí tự thứ j thế hiện giá trị aij :
- aii = 0 với mọi i.
- aij = 1 nếu và chỉ nếu đội i thắng đội j. Dữ liệu vào luôn thỏa mãn aij+aji = 1 với i khác j.
Output
In ra -1 nếu không tồn tại cách sắp xếp thỏa mãn yêu cầu. Trong trường hợp tồn tại, in ra n số nguyên là chỉ số của các đội bóng trong cách sắp xếp tìm được.
Example
Input:
3
0 1 0
0 0 0
1 1 0
Output:
3 1 2
Được gửi lên bởi: | special_one |
Ngày: | 2009-10-17 |
Thời gian chạy: | 1s |
Giới hạn mã nguồn: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Ngôn ngữ cho phép: | C CSHARP CPP JAVA PAS-FPC |