构造数组(Find The Array)
题目描述
给定一个数组 a=[a1,…,an] (1≤ai≤109)。设 S 为 a 所有元素之和。称一个长度为 n 的整数数组 b 为"美丽数组"若满足:
- 1≤bi≤109(i=1…n);
- 对每一对相邻元素 (bi,bi+1),要么 bi 整除 bi+1,要么 bi+1 整除 bi(或两者);
- 2⋅∑i=1n∣ai−bi∣≤S。
你需要找出任意一个美丽数组。可以保证至少存在一个。
输入格式
第一行一个整数 t (1≤t≤1000) — 测试组数。
每组两行:第一行一个整数 n (2≤n≤50);第二行 n 个整数 a1…an (1≤ai≤109)。
输出格式
每组输出一行美丽数组 b1…bn (1≤bi≤109)。多解输出任一。
样例输入 #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≤1000;2≤n≤50;1≤ai≤109。
知识点与难度
本题涉及的知识点从属于 GESP 五级,难度等级:⭐⭐
测试点分布
| Subtask |
分值 |
测试点编号 |
说明 |
| 0 |
10 |
1~2 |
样例(构造题,输出为任一合法解) |
| 1 |
20 |
3~8 |
小规模随机 n≤10 |
| 2 |
15 |
9~11 |
Hack:n=2 / 含 109 大值 / 全相等 |
| 3 |
30 |
12~20 |
中等规模随机 |
| 4 |
25 |
21~25 |
随机回归,n≤50,ai≤109 |