SP18458 VFRIEND2 - Very Friends 2

题目描述

你正在为小狗们设计一个新的社交网络平台。哇哦!虽然小狗们可以选择的互动方式不多,但它们可以通过吠叫的次数来表达希望拥有的朋友数。例如,一只小狗希望有 8 个朋友,它就会吠叫 8 次;如果它不想要朋友,就会保持安静。 在经过一年时间收集这些吠叫声后,你终于准备好为每只小狗分配理想的朋友列表。然而,你不确定这种分配是否可行。因此,你决定编写一个程序,对于给定的每只小狗的愿望列表 **w $ _{i} $** ,如果能为每只小狗 **i** 分配正好 **w $ _{i} $** 个朋友,则输出 **HAPPY**;否则,输出 **SAD**。 注意:在这种社交关系中,成为朋友是一个自反的关系。

输入格式

第一行包含一个整数 **T**,表示需要处理的测试用例数量。 由于输入输出的限制,愿望的具体序列不会直接给出。每个测试用例由一行中 5 个整数 **N**、**a**、**b**、**c**、**m** 构成,这些整数的范围在 **\[0, 10^7\]**(其中 **m** 在 **\[1, 10^7\]** 范围内)。这些整数用于生成以下序列: ``` x0 = 0 xi+1 = (a*xi + b) % m ``` 愿望序列 **w $ _{i} $** 由公式 **w $ _{i} $** = **x $ _{i} $** + **c** 给出。

输出格式

对于每个测试用例,输出一行结果——如果能满足每只小狗的愿望就输出 **HAPPY**,否则输出 **SAD**。

说明/提示

- $1 \leq T \leq 1000$ - $0 \leq N, a, b, c \leq 10^7$ - $1 \leq m \leq 10^7$ **本翻译由 AI 自动生成**