AtCoder ABC128 E - Sửa đường
Xem PDF
Điểm:
1800
Thời gian:
2.0s
Bộ nhớ:
256M
Input:
bàn phím
Output:
màn hình
Một con đường thẳng được xem như trục số. Có \(N\) công trình sửa đường. Công trình thứ \(i\) chặn vị trí \(X_i\) từ thời điểm \(S_i-0.5\) tới thời điểm \(T_i-0.5\).
Có \(Q\) người xuất phát từ vị trí \(0\). Người thứ \(j\) bắt đầu đi vào thời điểm \(D_j\), đi theo chiều dương với tốc độ \(1\). Khi tới một vị trí đang bị chặn, người đó dừng lại. Với mỗi người, hãy tìm quãng đường đã đi; nếu người đó không bao giờ gặp vị trí bị chặn, trả về \(-1\).
Dữ liệu vào
- Dòng đầu chứa \(N,Q\).
- \(N\) dòng tiếp theo, dòng thứ \(i\) chứa \(S_i,T_i,X_i\).
- \(Q\) dòng tiếp theo, dòng thứ \(j\) chứa \(D_j\).
Dữ liệu ra
In \(Q\) dòng, dòng thứ \(j\) là kết quả của người thứ \(j\).
Ràng buộc
- \(1\le N,Q\le2\cdot10^5\).
- \(0\le S_i<T_i\le10^9\).
- \(1\le X_i\le10^9\).
- \(0\le D_1<D_2<\cdots<D_Q\le10^9\).
- Nếu \(i\ne j\) và \(X_i=X_j\), hai khoảng \([S_i,T_i)\) và \([S_j,T_j)\) không giao nhau.
- Mọi giá trị đầu vào đều là số nguyên.
Ví dụ
Ví dụ 1
Input
4 6
1 3 2
7 13 10
18 20 13
3 4 2
0
1
2
3
5
8
Output
2
2
10
-1
13
-1
Giải thích
Người xuất phát ở thời điểm \(0\) tới vị trí \(2\) vào thời điểm \(2\) và dừng ở đó. Người xuất phát ở thời điểm \(3\) hoặc \(8\) không gặp công trình nào đang chặn đường.
Bình luận