{"problem":{"name":"[DTOI 2023] A. 小狗哥哥","description":{"content":"下文的所有参数均默认为整数。 作为一位（7k7k 小游戏的）游戏开发者，你设计了如下（简陋的不如小狗哥哥幼儿园大班的毕业设计的）游戏，存在两个要素： 1. 一个敌对生物，其血量为 $m$。 2. 主角的武器，分为 $n$ 级，第 $i$ 级的伤害是 $i\\times p$。 游戏的平衡性需要提前规划，所以你还有一个序列 $\\{a_n\\}$，其含义如下： - $a_i$ 表示敌对生物被第 $i","description_type":"Markdown"},"platform":"Luogu","limit":{"time_limit":1000,"memory_limit":131072},"difficulty":{"LuoguStyle":"P2"},"is_remote":true,"is_sync":true,"sync_url":null,"sign":"LGP8938"},"statements":[{"statement_type":"Markdown","content":"下文的所有参数均默认为整数。\n\n作为一位（7k7k 小游戏的）游戏开发者，你设计了如下（简陋的不如小狗哥哥幼儿园大班的毕业设计的）游戏，存在两个要素：\n1. 一个敌对生物，其血量为 $m$。\n2. 主角的武器，分为 $n$ 级，第 $i$ 级的伤害是 $i\\times p$。\n\n游戏的平衡性需要提前规划，所以你还有一个序列 $\\{a_n\\}$，其含义如下：\n\n- $a_i$ 表示敌对生物被第 $i$ 级武器恰好攻击 $a_i$ 下会死。\n\n可惜你忘记了 $p$ 具体是多少，所以你需要求出所有可能的 $p$ 的个数。\n\n如果可能有无数个 $p$，那么请输出 `xiaogougege`。\n\n## Input\n\n第一行两个正整数 $n,m$。\n\n第二行 $n$ 个正整数，表示序列 $\\{a_n\\}$。\n\n## Output\n\n一行一个整数，表示可能的 $p$ 的个数，或字符串 `xiaogougege`，其具体含义见题目描述。\n\n[samples]\n\n## Background\n\nluanmenglei 有一个辉煌的现在：他们班的女同学都叫他易酱。\n\n但谁能想到 luanmenglei 有一个悲伤的过去，他五岁的弟弟叫他小狗哥哥。\n\n## Note\n\n#### 【样例 1 解释】\n\n当武器为 $1$ 级时，分析可以发现 $p$ 要满足 $1 \\leq p < \\frac{3}{2}$。  \n当武器为 $2$ 级时，分析可以发现 $p$ 要满足 $\\frac{3}{4} \\leq p < \\frac{3}{2}$。  \n当武器为 $3$ 级时，分析可以发现 $p$ 要满足 $1 \\leq p$。 \n\n又 $p$ 是整数。综上，只有当 $p = 1$ 时满足题目所述条件。\n\n#### 【样例 2】\n\n见附加文件中的 `game/game2.in` 与 `game/game2.out`。\n\n该样例满足测试点 $13\\sim 20$ 的限制。\n\n#### 【数据范围与提示】\n\n对于所有测试数据，保证 $1\\leq n \\leq 10^5$，$1\\leq a_i,m\\leq 10^9$。\n\n每个测试点的具体限制见下表：\n\n|  测试点编号  |      $n\\leq$ | $m,a_i\\leq $ | 特殊性质 |\n| :-: | :-: |:-:|:-:|\n| $1\\sim 9$ | $10^5$ | $10^9$ | 数据纯随机 |\n|  $10 \\sim 12$  |       $3$       |$5$| 无 |\n| $13 \\sim 20$ | $10^5$ |$10^9$| 无 |\n\n你需要注意，上文纯随机数据的具体生成程序代码如下：\n\n```cpp\n#include <bits/stdc++.h>\nusing namespace std;\n\nint n, m, w;\nmt19937 rng(chrono::steady_clock::now().time_since_epoch().count());\n\nint rand(int l, int r) {\n  assert(l <= r);\n  return uniform_int_distribution<>(l, r)(rng);\n} \n\nint main() {\n  scanf(\"%d%d%d\", &n, &m, &w);\n  printf(\"%d %d\\n\", n, m);\n  for (int i = 1; i <= n; i ++) printf(\"%d%c\", rand(1, w), \" \\n\"[i == n]);\n  return 0;\n}\n```\n\n通俗的说，就是对于给定的 $n,m,w(w\\le 10^9)$，数据生成器会随机生成 $n$ 个值域在 $[1,w]$ 内的数，作为 $\\{a_n\\}$。","is_translate":false,"language":"English"}],"meta":{"iden":"LGP8938","tags":["洛谷原创","O2优化","洛谷月赛"],"sample_group":[["3 3\n3 2 1","1"]],"created_at":"2026-03-03 11:09:25"}}