Switch Grass
Đề bài
Mô tả
Có cánh đồng và con đường hai chiều. Mỗi cánh đồng trồng một trong loại cỏ. Đôi khi Farmer John quyết định thay đổi loại cỏ của một cánh đồng. Sau mỗi thay đổi, hãy tìm khoảng cách ngắn nhất giữa hai cánh đồng có loại cỏ khác nhau.
Khoảng cách giữa hai cánh đồng là độ dài đường đi ngắn nhất nối chúng.
Dữ liệu vào
Dòng đầu chứa bốn số nguyên , , , .
- dòng tiếp theo, mỗi dòng ba số nguyên , , : con đường hai chiều giữa cánh đồng và với độ dài .
Dòng tiếp theo chứa số nguyên: loại cỏ ban đầu của mỗi cánh đồng (từ đến ).
- dòng tiếp theo, mỗi dòng hai số nguyên , : thay đổi loại cỏ cánh đồng thành loại .
Dữ liệu ra
In dòng, dòng thứ là khoảng cách ngắn nhất giữa hai cánh đồng có loại cỏ khác nhau sau lần cập nhật thứ .
Ràng buộc
- Đồ thị liên thông: luôn có đường đi giữa hai cánh đồng bất kỳ
- Luôn tồn tại ít nhất hai cánh đồng có loại cỏ khác nhau (kể cả sau mỗi lần cập nhật)
- Không có hai con đường cùng nối một cặp cánh đồng
- 30% test: mỗi cánh đồng có bậc không quá 10
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 3 2 3 4 1 2 3 2 3 1 1 1 2 3 3 2 3 1 2 2 2 |
1 3 3 1 |
Loại cỏ ban đầu: . Sau lần 1 (cánh đồng 3 sang loại 3): , đường 2-3 nối hai loại khác nhau, đáp án . Sau lần 2 (cánh đồng 2 sang loại 3): , chỉ còn đường 1-2 dài . Sau lần 3 (cánh đồng 1 sang loại 2): , vẫn chỉ có đường 1-2, đáp án . Sau lần 4 (cánh đồng 2 sang loại 2): , đường 2-3 dài . |
| 5 6 3 3 1 2 4 2 3 2 3 4 7 4 5 3 1 5 9 2 5 5 1 1 2 2 3 3 1 5 2 2 3 |
3 5 2 |
Loại cỏ ban đầu: . Sau lần 1: , đường 4-5 dài là ngắn nhất trong các đường nối hai loại khác nhau. Sau lần 2: , đường 4-5 không còn hợp lệ, đáp án tăng lên (đường 2-5). Sau lần 3: , đường 2-3 dài . |
Bình luận