B. 构造数组(Find The Array)

    传统题 2000ms 256MiB

构造数组(Find The Array)

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

构造数组(Find The Array)

题目描述

给定一个数组 a=[a1,…,an] (1≤ai≤109)a=[a_1,\dots,a_n]\ (1\le a_i\le 10^9)。设 SS 为 aa 所有元素之和。称一个长度为 nn 的整数数组 bb 为"美丽数组"若满足:

  • 1≤bi≤1091\le b_i\le 10^9(i=1…ni=1\dots n);
  • 对每一对相邻元素 (bi,bi+1)(b_i, b_{i+1}),要么 bib_i 整除 bi+1b_{i+1},要么 bi+1b_{i+1} 整除 bib_i(或两者);
  • 2⋅∑i=1n∣ai−bi∣≤S2\cdot\sum_{i=1}^{n}|a_i-b_i| \le S。 你需要找出任意一个美丽数组。可以保证至少存在一个。

输入格式

第一行一个整数 t (1≤t≤1000)t\ (1\le t\le 1000) — 测试组数。 每组两行:第一行一个整数 n (2≤n≤50)n\ (2\le n\le 50);第二行 nn 个整数 a1…an (1≤ai≤109)a_1\dots a_n\ (1\le a_i\le 10^9)。

输出格式

每组输出一行美丽数组 b1…bn (1≤bi≤109)b_1\dots b_n\ (1\le b_i\le 10^9)。多解输出任一。

样例输入 #1

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

样例输出 #1

3 3 3 3 3
3 6
1 1000000000
4 4 8 1 3 3

数据范围

1≤t≤10001\le t\le 1000;2≤n≤502\le n\le 50;1≤ai≤1091\le a_i\le 10^9。

知识点与难度

本题涉及的知识点从属于 GESP 五级,难度等级:⭐⭐


测试点分布

Subtask 分值 测试点编号 说明
0 10 1~2 样例(构造题,输出为任一合法解)
1 20 3~8 小规模随机 n≤10n\le 10
2 15 9~11 Hack:n=2n=2 / 含 10910^9 大值 / 全相等
3 30 12~20 中等规模随机
4 25 21~25 随机回归,n≤50,ai≤109n\le 50, a_i\le 10^9