Cho một dãy \(A\) gồm \(n\) số nguyên không âm \(a_1, a_2, \ldots, a_n\). Sau đó biến đổi dãy \(A\) thành dãy \(A'\) sao cho phần tử thứ \(i\) của dãy \(A'\) có giá trị bằng tổng các giá trị từ phần tử thứ nhất đến phần tử thứ \(i\) của dãy \(A\), với \(i = 1, 2, \ldots, n\).
Xét ví dụ, với dãy \(A\) có \(5\) phần tử là \(0, 1, 0, 2, 2\). Sau khi biến đổi được dãy \(A'\) là \(0, 1, 1, 3, 5\).
Tiếp theo, cho một dãy số \(B\) gồm \(m\) số nguyên không âm \(b_1, b_2, \ldots, b_m\) và yêu cầu tìm vị trí xuất hiện các phần tử của dãy \(B\) trong dãy \(A'\).
Yêu cầu: Hãy tìm vị trí xuất hiện của phần tử \(b_j\) (\(1 \le j \le m\)) trong dãy \(A'\).
Input
Dữ liệu vào:
-
Dòng thứ nhất chứa hai số nguyên dương \(n, m\) (\(1 \le n, m \le 10^6\)) lần lượt là số lượng phần tử của dãy \(A\) và dãy \(B\);
-
Dòng thứ hai gồm \(n\) số nguyên không âm \(a_1, a_2, \ldots, a_n\) (\(0 \le a_i \le 10^6\), \(1 \le i \le n\));
-
Dòng thứ ba gồm \(m\) số nguyên không âm \(b_1, b_2, \ldots, b_m\) (\(0 \le b_j \le 10^6\), \(1 \le j \le m\)).
Các số trên một dòng trong dữ liệu vào được ghi cách nhau bởi dấu cách.
Ràng buộc:
-
Có \(40\%\) số test ứng với \(40\%\) số điểm của bài có \(n, m \le 10^3\);
-
Có \(30\%\) số test ứng với \(30\%\) số điểm của bài có \(n, m \le 3 \cdot 10^4\);
-
Có \(30\%\) số test còn lại ứng với \(30\%\) số điểm của bài có \(n, m \le 10^6\).
Output
In ra một dòng gồm \(m\) số nguyên, số thứ \(j\) là vị trí xuất hiện của phần tử \(b_j\) (\(1 \le j \le m\)) trong dãy \(A'\). Nếu có nhiều vị trí, hãy in ra vị trí xuất hiện đầu tiên; nếu \(b_j\) không xuất hiện trong dãy \(A'\) thì số thứ \(j\) in ra \(-1\).
Các số trên một dòng trong kết quả được ghi cách nhau bởi dấu cách.
Example
Input:
5 4
0 1 0 2 2
1 3 6 5
Output:
2 4 -1 5
Note
Dãy \(A'\) là \(0, 1, 1, 3, 5\). Giá trị \(1\) xuất hiện đầu tiên ở vị trí \(2\), giá trị \(3\) ở vị trí \(4\), giá trị \(6\) không xuất hiện, giá trị \(5\) ở vị trí \(5\).
Bình luận
Đăng nhập để bình luận
Chưa có bình luận nào.