CF1416B.Make Them Equal

普及+/提高

通过率:0%

时间限制:1.00s

内存限制:256MB

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

You are given an array aa consisting of nn positive integers, numbered from 11 to nn. You can perform the following operation no more than 3n3n times:

  1. choose three integers ii, jj and xx (1≤i,j≤n1 \le i, j \le n; 0≤x≤1090 \le x \le 10^9);
  2. assign ai:=ai−x⋅ia_i := a_i - x \cdot i, aj:=aj+x⋅ia_j := a_j + x \cdot i.

After each operation, all elements of the array should be non-negative.

Can you find a sequence of no more than 3n3n operations after which all elements of the array are equal?

给你一个由 nn 个正整数组成的数组 aa,元素编号从 11 到 nn。你最多可以执行 3n3n 次如下操作:

  1. 选择三个整数 ii、jj 和 xx(满足 1≤i,j≤n1 \le i, j \le n;0≤x≤1090 \le x \le 10^9);
  2. 执行赋值:ai:=ai−x⋅ia_i := a_i - x \cdot i,aj:=aj+x⋅ia_j := a_j + x \cdot i。

每次操作后,数组的所有元素都必须为非负数。

你能否找到一个最多包含 3n3n 次操作的序列,使得操作完成后数组中所有元素均相等?

输入格式

The first line contains one integer tt (1≤t≤1041 \le t \le 10^4) — the number of test cases. Then tt test cases follow.

The first line of each test case contains one integer nn (1≤n≤1041 \le n \le 10^4) — the number of elements in the array. The second line contains nn integers a1,a2,…,ana_1, a_2, \dots, a_n (1≤ai≤1051 \le a_i \le 10^5) — the elements of the array.

It is guaranteed that the sum of nn over all test cases does not exceed 10410^4.

第一行包含一个整数 tt(1≤t≤1041 \le t \le 10^4)—— 表示测试用例的数量。随后是 tt 个测试用例。

每个测试用例的第一行包含一个整数 nn(1≤n≤1041 \le n \le 10^4)—— 表示数组中元素的个数。第二行包含 nn 个整数 a1,a2,…,ana_1, a_2, \dots, a_n(1≤ai≤1051 \le a_i \le 10^5)—— 表示数组的元素。

保证所有测试用例的 nn 之和不超过 10410^4。

输出格式

For each test case print the answer to it as follows:

  • if there is no suitable sequence of operations, print −1-1;
  • otherwise, print one integer kk (0≤k≤3n0 \le k \le 3n) — the number of operations in the sequence. Then print kk lines, the mm-th of which should contain three integers ii, jj and xx (1≤i,j≤n1 \le i, j \le n; 0≤x≤1090 \le x \le 10^9) for the mm-th operation.

If there are multiple suitable sequences of operations, print any of them. Note that you don't have to minimize kk.

对每个测试用例,按如下方式输出其答案:

  • 如果不存在满足条件的操作序列,则输出 −1-1;
  • 否则,首先输出一个整数 kk(0≤k≤3n0 \le k \le 3n),表示该操作序列中操作的数目;随后输出 kk 行,其中第 mm 行应包含三个整数 ii、jj 和 xx(1≤i,j≤n1 \le i, j \le n;0≤x≤1090 \le x \le 10^9),对应第 mm 次操作。

若存在多个满足条件的操作序列,输出任意一个即可。注意:你无需使 kk 最小化。

输入输出样例

  • 输入#1

    3
    4
    2 16 4 18
    6
    1 2 3 4 5 6
    5
    11 19 1 1 3

    输出#1

    2
    4 1 2
    2 3 3
    -1
    4
    1 2 4
    2 4 5
    2 3 3
    4 5 1

输入解题思路,AI测评打分。不知道怎么写?

首页