A45403.追求更多的玫瑰花

入门

官方

通过率:0%

时间限制:1.00s

内存限制:128MB

题目描述

小明同学有一个长度为 nn 的数组 AA,该数组中的元素AiA_i 要么等于 11,要么等于 1-1。小美同学有 mm 个询问,每个询问有两个整数 llrr,如果小明的数组 aa 可以通过重新排列使得 Al+Al+1++Ar1+Ar=0A_l + A_{l + 1} + ……+ A_{r - 1} + A_{r} = 0,那么小美就能得到一束玫瑰花。对于每一个询问,如果小美能得到玫瑰花那么输出 "happy",否则输出 "sad"。

数据范围\large{数据范围}

  • 1n,m2×1051 \leq n, m \leq 2 \times 10^5
  • Ai{1,1}A_i \in \{-1, 1\}

输入格式

第一行输入两个整数 n,mn, m,分别代表 AA 数组长度和 询问个数。

第二行输入 nn 个整数,代表 AA 数组。

接下来 mm 行,每一行输入两个整数分别代表每次询问的 llrr

输出格式

对于每一个询问,输出一个字符串占一行表示答案,如果能通过排列整个数组,满足区间和为 00,输出"happy", 否则输出 "sad"。

输入输出样例

  • 输入#1

    4 2
    1 -1 -1 1
    1 2
    2 4

    输出#1

    happy
    sad
    

说明/提示

样例解释:

对于第一个询问,我们可以把数组排列成 [1,1,1,1][-1, 1, -1, 1],这样就能满足区间 [1,2][1, 2] 的和为 0,所以输出 "happy"。

对于第二个询问,我们无论如何排列数组,都不能保证区间 [2,4][2, 4] 的和为 0,所以输出 "sad"。

首页