Dãy cấp số cộng

View as PDF

Submit solution

Points: 1.33 (partial)
Time limit: 0.9s
Memory limit: 512M
Input: stdin
Output: stdout

Problem source:
Sưu tầm
Problem type
Allowed languages
C, C++, Java, Kotlin, Pascal, PyPy, Python, Scratch

Một dãy cấp số cộng là một dãy số mà 2 cặp phần tử liên tiếp bất kỳ có hiệu bằng nhau và khác 0. Trường hợp dãy số chỉ gồm 2 số khác nhau vẫn tính là một dãy cấp số cộng

Ví dụ:

  • 2, 5 là dãy cấp số cộng.
  • 8, 3 là dãy cấp số cộng.
  • 1, 2, 3, 4, 5 là dãy cấp số cộng.
  • 11, 8, 5, 2 là dãy cấp số cộng.
  • 1, 2, 4, 5, 7 không phải là dãy cấp số cộng.

Cho một dãy số A gồm N số nguyên dương. Cho Q truy vấn dạng (x, y). Mỗi truy vấn yêu cầu kiểm tra xem đoạn từ x tới y có phải là hoán vị của một dãy cấp số cộng không.

Input

  • Dòng đầu chứa 2 số nguyên ~N~, ~Q~.
  • Số thứ ~i~ trong ~N~ số ở dòng thứ 2 là ~A_{i}~.
  • Dòng thứ ~i~ trong ~Q~ dòng tiếp theo chứa 2 số nguyên ~x~, ~y~ mô tả truy vấn thứ ~i~.

Output

Gồm ~Q~ dòng.

  • Dòng thứ ~i~ trong ~Q~ dòng sẽ trả lời cho truy vấn thứ ~i~.
  • In ra YES nếu đoạn từ ~x~ tới ~y~ là hoán vị của một dãy cấp số cộng. Ngược lại thì ghi ra NO.

Giới hạn

11 test có ~N~, ~Q \le 1000~.

10 test có ~N \le 1000~, ~Q \le 10^{6}~.

10 test có ~N \le 10^{5}~, ~Q \le 10^{5}~.

~A_{i} \le 10^{9}~

Sample Input

5 2
1 3 2 5 4
1 5
2 4

Sample Output

YES
NO

Comments

Please read the guidelines before commenting.


There are no comments at the moment.