SIGNAL - Đo tín hiệu
Dữ liệu vào: standard input
Dữ liệu ra: standard output
Giới hạn thời gian: 1.0 giây
Giới hạn bộ nhớ: 256 megabyte
Đăng bởi: admin

Một thiết bị cảm biến có nhiệm vụ thu nhận dữ liệu về các đối tượng trong 1 khu vực để truyền về cho trung tâm xử lý. Mỗi đối tượng sẽ được biểu diễn bởi 1 dãy số nguyên dương. Như vậy, cảm biến sẽ truyền các dãy số về cho trung tâm xử lý. Tuy nhiên, do các đối tượng ở gần nhau và có tín hiệu nhiễu nên một dãy số gửi về cho trung tâm có thể là dữ liệu của 2 đối tượng. Dãy a1, ..., an sẽ là dữ liệu của 2 đối tượng nếu có 1 vị trí i (1 < i < n) sao cho max1 − ai ≥ bmax2 − ai ≥ b với max1 = max{a1, . . . , ai−1}, max2 = max{ai+1, . . . , an}, và b là hằng số cho trước (xem minh hoạ trong Hình 1). Khi phát hiện một dãy số a1, ..., an là dữ liệu của 2 đối tượng thì cần phải tiến hành cắt dãy số đó thành 2 dãy, mỗi dãy là dữ liệu của một đối tượng. Khi đó vị trí cắt sẽ là vị trí i sao cho max{a1, . . . , ai−1}−ai+max{ai+1, . . . , an}ai đạt giá trị lớn nhất (giá trị đó gọi là độ đo cắt tín hiệu).

Ví dụ: với giá trị b = 5 thì dãy số 3, 5, 4, 7, 2, 5, 4, 6, 9, 8 là dữ liệu của 2 đối tượng vì tìm thấy vị trí i = 5 tại đó max{3, 5, 4, 7} − 2 ≥ 5 và max{5, 4, 6, 9, 8} − 2 ≥ 5 và vị trí i = 5 cũng chính là vị trí cắt.

Yêu cầu: cho trước giá trị n, b và dãy số nguyên dương a1, . . . , an. Hãy lập trình kiểm tra xem dãy số a1, . . . , an có phải là dữ liệu biểu diễn 2 đối tượng hay không và tính độ đo cắt tín hiệu nếu câu trả lời là có.

Dữ liệu vào

- Dòng thứ nhất chứa 2 số nguyên dương nb (3 ≤ n ≤ 200000, 1 ≤ b ≤ 50)
- Dòng thứ 2 chứa n tự nhiên a1, . . . , an

Kết quả

Ghi ra độ đo cắt tín hiệu nếu dãy đầu vào là dữ liệu biểu diễn 2 đối tượng và giá trị -1 nếu ngược lại.

Ví dụ

Input

10 5
3 5 4 7 2 5 4 6 9 8

Output

12


Nguồn: ĐPT 20172018

Back to Top