JOI 2017 - Railway Trip
Xem PDFCông ty Đường sắt JOI vận hành một tuyến đường sắt thẳng gồm \(N\) ga, được đánh số từ \(1\) đến \(N\). Với mỗi \(1 \le i \le N-1\), ga \(i\) và ga \(i+1\) được nối bằng một đoạn đường ray.
Có \(K\) loại tàu chạy theo cả hai hướng, được đánh số từ \(1\) đến \(K\). Mỗi ga có một cấp độ từ \(1\) đến \(K\); ga \(i\) có cấp độ \(L_i\). Hai ga đầu mút, ga \(1\) và ga \(N\), đều có cấp độ \(K\).
Tàu loại \(j\) dừng tại mọi ga có cấp độ ít nhất \(j\) và không dừng tại các ga còn lại. Do hai ga đầu mút có cấp độ \(K\), mọi loại tàu đều dừng ở đó.
Trong hành trình, hành khách có thể đi tàu theo hướng ngược với đích, đi quá đích và đổi tàu tùy ý, nhưng cuối cùng phải dừng tại ga đích. Họ muốn tối thiểu hóa số lần dừng trung gian, không quan tâm đến số ga đi qua hay số lần đổi tàu. Nếu dừng ở một ga để đổi tàu, lần dừng đó được tính là một lần dừng trung gian. Lần dừng ban đầu tại ga xuất phát và lần dừng cuối tại ga đích không được tính.
Yêu cầu
Với mỗi truy vấn, tính số lần dừng trung gian ít nhất trên một hành trình từ ga xuất phát đến ga đích.
Dữ liệu vào
- Dòng đầu gồm ba số nguyên \(N,K,Q\): số ga, số loại tàu và số truy vấn.
- Trong \(N\) dòng tiếp theo, dòng thứ \(i\) chứa số nguyên \(L_i\), là cấp độ của ga \(i\).
- Trong \(Q\) dòng tiếp theo, dòng thứ \(k\) gồm hai số nguyên \(A_k,B_k\), là ga xuất phát và ga đích của hành khách thứ \(k\).
Dữ liệu ra
In ra \(Q\) dòng. Dòng thứ \(k\) chứa số lần dừng trung gian ít nhất trên một hành trình từ ga \(A_k\) đến ga \(B_k\).
Ràng buộc
- \(2 \le N \le 100\,000\).
- \(1 \le K \le N\).
- \(1 \le Q \le 100\,000\).
- \(1 \le L_i \le K\) với mọi \(1 \le i \le N\).
- \(1 \le A_k,B_k \le N\) với mọi \(1 \le k \le Q\).
- \(A_k \ne B_k\) với mọi \(1 \le k \le Q\).
Phân nhóm
- Subtask 1 (5 điểm): \(N \le 100\), \(K \le 100\), \(Q \le 50\).
- Subtask 2 (15 điểm): \(Q \le 50\).
- Subtask 3 (25 điểm): \(K \le 20\).
- Subtask 4 (55 điểm): Không có ràng buộc bổ sung.
Giới hạn
- Thời gian: 2 giây.
- Bộ nhớ: 512 MB.
Ví dụ
Ví dụ 1
Input
9 3 3
3
1
1
1
2
2
2
3
3
2 4
4 9
6 7
Output
1
3
0
Giải thích
- Từ ga \(2\) đến ga \(4\), đi tàu loại \(1\) và chỉ dừng trung gian tại ga \(3\).
- Từ ga \(4\) đến ga \(9\), có thể đi tàu loại \(1\) đến ga \(5\), tàu loại \(2\) từ ga \(5\) đến ga \(1\), rồi tàu loại \(3\) từ ga \(1\) đến ga \(9\). Ba ga dừng trung gian là \(5,1,8\).
- Từ ga \(6\) đến ga \(7\), đi tàu loại \(2\) mà không có lần dừng trung gian nào.
Ví dụ 2
Input
5 2 1
2
1
1
1
2
1 4
Output
1
Giải thích
Lưu ý rằng hành khách được phép đi quá ga đích trong hành trình.
Ví dụ 3
Input
15 5 15
5
4
1
2
3
1
1
2
4
5
4
1
5
3
5
8 1
11 1
5 3
6 11
9 12
15 14
15 2
3 12
2 1
4 8
15 5
12 6
1 13
13 8
14 9
Output
2
1
1
3
2
0
3
4
0
1
3
4
1
2
2
Kỳ thi:
- JOI 2017 Final Camp - Ngày 2 (4 Tháng 1., 2017)
Bình luận