B3704 [语言月赛202301] HACK IT!

题目背景

这是一道 **hack 题**。在此类型的题目中,你将得到若干个问题和若干个解决对应问题的代码,但是给出的代码不能对于某些输入给出正确的输出。不能给出正确的输出的情况包括: 1. 输出错误的结果。 2. 运行超时。 3. 产生一些运行时未定义行为。目前技术可检测的未定义行为仅包括数组越界。 对于每个问题,你需要提交一份符合要求的输入数据,使得给定的代码不能给出正确的输出。你可以直接使用『提交答案』功能,也可以提交一份以任何语言写成的数据生成器。

题目描述

以下给出三个问题的题目描述: #### 问题 1 给定两个整数 $a, b$,请求出 $a + b$ 的值。 #### 问题 2 给定一个仅包含小写字母的字符串 $s$,求 $s$ 中有多少个小写 `a` 字母。 #### 问题 3 给定一个长度为 $n$ 的数组 $a$(下标从 $0$ 开始),对所有的 $i$ 满足 $0 \leq i < n$,设 $b_i = a_{i + 1 \bmod n} - a_i$,这里 $i + 1 \bmod n$ 表示 $i + 1$ 对 $n$ 取模的结果。请求出 $b$ 数组。

输入格式

输出格式

说明/提示

### 样例组与实际输入的说明 三个样例分别对应三个问题的样例输入输出。 如果你直接采用『提交答案』的方式,请分别将三个输入数据命名为 `1.in`、`2.in`、`3.in`,并打成 zip 压缩包进行提交; 如果你采用提交数据生成器的方式,你的生成器可以从标准输入读入一个整数 $x$,满足 $1 \leq x \leq 3$,表示该测试点对应的问题编号,然后**输出对应的输入数据**。 显然,你的程序不应该读入『输入格式』里提到的任何内容(而应该构造它们),也不应该输出『输出格式』里提到的任何内容(而是只输出你构造的输入数据)。你不应该使用样例测试你的程序,这只是对三个问题的样例说明。 ### 数据规模要求 你给出的数据必须满足如下要求: 1. 完全符合『输入格式』的规定,不能有多余的输入,但是可以有行末空格和文末回车。 2. 对于问题 1,$1 \leq a, b \leq 2 \times 10^9$。 3. 对于问题 2,$s$ 只含小写英文字母,其对应的 ASCII 值应在 $[97, 122]$ 范围内,$s$ 的长度应 $\geq 1$ 且不超过 $10 ^ 6$。 4. 对于问题 3,$1 \leq n \leq 100$,$-10^9 \leq a_i \leq 10^9$。 ### 目标代码 你需要 hack 如下的代码: #### 问题 1 ```cpp #include using namespace std; int main() { int a, b; cin >> a >> b; cout s; int ans = 0; for (int i = 0; i < strlen(s); ++i) { if (s[i] == 'a') ++ans; } cout n; for (int i = 0; i < n; ++i) cin >> a[i]; for (int i = 0; i < n; ++i) { b[i] = a[i + 1] - a[i]; if (i + 1 == n) b[i] = a[0] - a[i]; } for (int i = 0; i < n; ++i) { cout taskId; if (taskId == 1) { cout