CF279C.Ladder

普及/提高-

通过率:0%

时间限制:2.00s

内存限制:256MB

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

You've got an array, consisting of n integers _a_1, _a_2, ..., a__n. Also, you've got m queries, the i-th query is described by two integers l__i, r__i. Numbers l__i, r__i define a subsegment of the original array, that is, the sequence of numbers a__l__i, a__l__i + 1, a__l__i + 2, ..., a__r__i. For each query you should check whether the corresponding segment is a ladder.

A ladder is a sequence of integers _b_1, _b_2, ..., b__k, such that it first doesn't decrease, then doesn't increase. In other words, there is such integer x (1 ≤ x ≤ k), that the following inequation fulfills: _b_1 ≤ _b_2 ≤ ... ≤ b__x ≥ b__x + 1 ≥ b__x + 2... ≥ b__k. Note that the non-decreasing and the non-increasing sequences are also considered ladders.

你有一个包含 nn 个整数 a1,a2,…,ana_1, a_2, \dots, a_n 的数组。此外,你还有 mm 个查询,其中第 ii 个查询由两个整数 li,ril_i, r_i 描述。数字 li,ril_i, r_i 定义了原数组的一个子段,即序列 ali,ali+1,ali+2,…,aria_{l_i}, a_{l_i+1}, a_{l_i+2}, \dots, a_{r_i}。对于每个查询,你需要判断对应的子段是否构成一个“阶梯”(ladder)。

一个“阶梯”是一个整数序列 b1,b2,…,bkb_1, b_2, \dots, b_k,它先不严格递增(即非递减),再不严格递减(即非递增)。换言之,存在某个整数 xx(满足 1≤x≤k1 \le x \le k),使得如下不等式成立:

b1≤b2≤⋯≤bx≥bx+1≥bx+2≥⋯≥bk.b_1 \le b_2 \le \dots \le b_x \ge b_{x+1} \ge b_{x+2} \ge \dots \ge b_k.

注意:纯非递减序列和纯非递增序列也被视为“阶梯”。

输入格式

The first line contains two integers n and m (1 ≤ n, m ≤ 105) — the number of array elements and the number of queries. The second line contains the sequence of integers _a_1, _a_2, ..., a__n (1 ≤ a__i ≤ 109), where number a__i stands for the i-th array element.

The following m lines contain the description of the queries. The i-th line contains the description of the i-th query, consisting of two integers l__i, r__i (1 ≤ l__i ≤ r__i ≤ n) — the boundaries of the subsegment of the initial array.

The numbers in the lines are separated by single spaces.

第一行包含两个整数 nn 和 mm(1≤n,m≤1051 \leq n, m \leq 10^5)—— 分别表示数组元素个数和查询次数。
第二行包含整数序列 a1,a2,…,ana_1, a_2, \dots, a_n(1≤ai≤1091 \leq a_i \leq 10^9),其中 aia_i 表示数组的第 ii 个元素。

接下来 mm 行描述各次查询。第 ii 行描述第 ii 次查询,包含两个整数 lil_i、rir_i(1≤li≤ri≤n1 \leq l_i \leq r_i \leq n)—— 表示初始数组中子段的左右边界。

每行中的数字以单个空格分隔。

输出格式

Print m lines, in the i-th line print word "Yes" (without the quotes), if the subsegment that corresponds to the i-th query is the ladder, or word "No" (without the quotes) otherwise.

输出 m 行,在第 i 行中,如果与第 i 个查询对应的子段是“梯形序列”(ladder),则输出单词 "Yes"(不带引号);否则输出单词 "No"(不带引号)。

输入输出样例

  • 输入#1

    8 6
    1 2 1 3 3 5 2 1
    1 3
    2 3
    2 4
    8 8
    1 4
    5 8

    输出#1

    Yes
    Yes
    No
    Yes
    No
    Yes

输入解题思路,AI测评打分。不知道怎么写?

首页