CF1651B.Prove Him Wrong
入门
通过率:0%
时间限制:2.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Recently, your friend discovered one special operation on an integer array a:
- Choose two indices i and j (i=j);
- Set ai=aj=∣ai−aj∣.
After playing with this operation for a while, he came to the next conclusion:
- For every array a of n integers, where 1≤ai≤109, you can find a pair of indices (i,j) such that the total sum of a will decrease after performing the operation.
This statement sounds fishy to you, so you want to find a counterexample for a given integer n. Can you find such counterexample and prove him wrong?
In other words, find an array a consisting of n integers a1,a2,…,an (1≤ai≤109) such that for all pairs of indices (i,j) performing the operation won't decrease the total sum (it will increase or not change the sum).
最近,你的朋友发现了一个针对整数数组 a 的特殊操作:
- 选择两个下标 i 和 j(其中 i=j);
- 将 ai 和 aj 同时赋值为 ∣ai−aj∣。
在尝试该操作一段时间后,他得出了如下结论:
- 对于任意长度为 n 的整数数组 a(其中每个元素满足 1≤ai≤109),总存在一对下标 (i,j),使得执行该操作后数组的总和严格减小。
你认为这一说法可疑,因此希望为给定的整数 n 构造一个反例,从而证明他是错误的。
换言之,请构造一个由 n 个整数 a1,a2,…,an 组成的数组 a(满足 1≤ai≤109),使得对所有下标对 (i,j) 执行该操作后,数组的总和不会减小(即总和增大或保持不变)。
输入格式
The first line contains a single integer t (1≤t≤100) — the number of test cases. Then t test cases follow.
The first and only line of each test case contains a single integer n (2≤n≤1000) — the length of array a.
第一行包含一个整数 t(1≤t≤100),表示测试用例的数量。随后是 t 个测试用例。
每个测试用例仅有一行,包含一个整数 n(2≤n≤1000),表示数组 a 的长度。
输出格式
For each test case, if there is no counterexample array a of size n, print NO.
Otherwise, print YES followed by the array a itself (1≤ai≤109). If there are multiple counterexamples, print any.
对于每个测试用例,若不存在大小为 n 的反例数组 a,则输出 NO。
否则,输出 YES,后跟数组 a 本身(满足 1≤ai≤109)。若存在多个反例,输出任意一个即可。
输入输出样例
输入#1
3 2 512 3
输出#1
YES 1 337 NO YES 31 4 159
说明/提示
In the first test case, the only possible pairs of indices are (1,2) and (2,1).
If you perform the operation on indices (1,2) (or (2,1)), you'll get a1=a2=∣1−337∣=336, or array [336,336]. In both cases, the total sum increases, so this array a is a counterexample.
在第一个测试用例中,唯一可能的下标对是 (1,2) 和 (2,1)。
若对下标 (1,2)(或 (2,1))执行该操作,则得到 a1=a2=∣1−337∣=336,即数组 [336,336]。在这两种情况下,总和均增大,因此该数组 a 是一个反例。
输入解题思路,AI测评打分。不知道怎么写?