#MN0001. Dòng thời gian hợp lệ (Valid Timeline)
Dòng thời gian hợp lệ (Valid Timeline)
Dòng thời gian hợp lệ (Valid Timeline)
Phiên bản: Phước Hưng OJ Extended
Đề bài
Có cột mốc được đánh số từ đến . Cột mốc thứ xảy ra vào năm .
Ngoài ra, có quan hệ thứ tự. Mỗi quan hệ có nghĩa là cột mốc bắt buộc phải được trình bày trước cột mốc .
Hãy tìm một hoán vị
của các số từ đến sao cho đồng thời thỏa mãn:
- Các cột mốc được trình bày theo thứ tự năm không giảm:
- Với mọi quan hệ , cột mốc xuất hiện trước cột mốc trong hoán vị.
Nếu có nhiều thứ tự hợp lệ, hãy chọn hoán vị nhỏ nhất theo thứ tự từ điển của dãy chỉ số.
Hai hoán vị và được so sánh theo thứ tự từ điển như sau: tại vị trí đầu tiên mà , hoán vị nhỏ hơn nếu .
Nếu không tồn tại thứ tự nào thỏa mãn tất cả các yêu cầu, hãy in ra IMPOSSIBLE.
Input
- Dòng đầu tiên chứa hai số nguyên và — số lượng cột mốc và số lượng quan hệ thứ tự.
- Dòng thứ hai chứa số nguyên , trong đó là năm xảy ra của cột mốc thứ .
- dòng tiếp theo, mỗi dòng chứa hai số nguyên và , biểu diễn quan hệ : cột mốc phải được trình bày trước cột mốc .
Output
Nếu tồn tại thứ tự hợp lệ, in ra chỉ số
tạo thành hoán vị nhỏ nhất theo thứ tự từ điển trong tất cả các hoán vị thỏa mãn yêu cầu.
Nếu không tồn tại thứ tự hợp lệ, in ra:
IMPOSSIBLE
Subtask
Trong tất cả các Subtask: ; ; ; .
- Subtask 1 — 30%: .
- Subtask 2 — 30%: .
- Subtask 3 — 40%: ; ; ; .
Ví dụ
Ví dụ 1
Input
5 4
1950 1959 1974 1980 1997
1 2
2 3
2 4
4 5
Output
1 2 3 4 5
Giải thích
Các cột mốc có năm lần lượt là , nên thứ tự 1 2 3 4 5 có các năm không giảm.
Các quan hệ cũng đều được thỏa mãn: đứng trước , đứng trước và , còn đứng trước .
Sau cột mốc , cả cột mốc và đều không vi phạm các quan hệ đã cho. Tuy nhiên, cột mốc xảy ra vào năm , sớm hơn năm của cột mốc , nên phải đứng trước .
Ví dụ 2
Input
3 0
2000 1990 1990
Output
2 3 1
Giải thích
Không có quan hệ thứ tự nào giữa các cột mốc.
Cột mốc và đều xảy ra vào năm , còn cột mốc xảy ra vào năm , vì vậy và phải đứng trước .
Giữa hai cột mốc cùng năm và , thứ tự 2 3 nhỏ hơn theo thứ tự từ điển. Do đó kết quả là 2 3 1.
Ví dụ 3
Input
3 3
1950 1960 1970
1 2
2 3
3 1
Output
IMPOSSIBLE
Giải thích
Các quan hệ yêu cầu đồng thời:
- cột mốc đứng trước ;
- cột mốc đứng trước ;
- cột mốc đứng trước .
Ba yêu cầu này tạo thành một vòng phụ thuộc , nên không thể sắp xếp ba cột mốc thành một thứ tự thỏa mãn tất cả các quan hệ.
Vì vậy không tồn tại thứ tự hợp lệ.