308449: CF1521B. Nastia and a Good Array

Memory Limit:256 MB Time Limit:2 S
Judge Style:Text Compare Creator:
Submit:0 Solved:0

Description

Nastia and a Good Array

题意翻译

### 题意简述 给定一个长度为 $n$ 的正整数序列 $a$。现在要对 $a$ 进行操作。每一步操作可以任意选取两个整数 $i$ 和 $j$ ( $i\neq j$ ) ,再任意取两个满足 $min(a_i,a_j)=min(x,y)$ 的数 $x$,$y$,然后把 $a_i$ 换成 $x$、$a_j$ 换成 $y$。 求使得对于 $1<i\leq n $ 都满足 $a_i$ 与 $a_{i-1}$ 互质所需的最小操作次数以及操作方案。**有多组数据。** 输出格式:对于每组数据,先输出最小操作次数,再逐行输出每次操作的方案:四个正整数 $i$,$j$,$x$,$y$。如果有多种方案,随意输出一种。

题目描述

Nastia has received an array of $ n $ positive integers as a gift. She calls such an array $ a $ good that for all $ i $ ( $ 2 \le i \le n $ ) takes place $ gcd(a_{i - 1}, a_{i}) = 1 $ , where $ gcd(u, v) $ denotes the [greatest common divisor (GCD)](https://en.wikipedia.org/wiki/Greatest_common_divisor) of integers $ u $ and $ v $ . You can perform the operation: select two different indices $ i, j $ ( $ 1 \le i, j \le n $ , $ i \neq j $ ) and two integers $ x, y $ ( $ 1 \le x, y \le 2 \cdot 10^9 $ ) so that $ \min{(a_i, a_j)} = \min{(x, y)} $ . Then change $ a_i $ to $ x $ and $ a_j $ to $ y $ . The girl asks you to make the array good using at most $ n $ operations. It can be proven that this is always possible.

输入输出格式

输入格式


The first line contains a single integer $ t $ ( $ 1 \le t \le 10\,000 $ ) — the number of test cases. The first line of each test case contains a single integer $ n $ ( $ 1 \le n \le 10^5 $ ) — the length of the array. The second line of each test case contains $ n $ integers $ a_1, a_2, \ldots, a_{n} $ ( $ 1 \le a_i \le 10^9 $ ) — the array which Nastia has received as a gift. It's guaranteed that the sum of $ n $ in one test doesn't exceed $ 2 \cdot 10^5 $ .

输出格式


For each of $ t $ test cases print a single integer $ k $ ( $ 0 \le k \le n $ ) — the number of operations. You don't need to minimize this number. In each of the next $ k $ lines print $ 4 $ integers $ i $ , $ j $ , $ x $ , $ y $ ( $ 1 \le i \neq j \le n $ , $ 1 \le x, y \le 2 \cdot 10^9 $ ) so that $ \min{(a_i, a_j)} = \min{(x, y)} $ — in this manner you replace $ a_i $ with $ x $ and $ a_j $ with $ y $ . If there are multiple answers, print any.

输入输出样例

输入样例 #1

2
5
9 6 3 11 15
3
7 5 13

输出样例 #1

2
1 5 11 9
2 5 7 6
0

说明

Consider the first test case. Initially $ a = [9, 6, 3, 11, 15] $ . In the first operation replace $ a_1 $ with $ 11 $ and $ a_5 $ with $ 9 $ . It's valid, because $ \min{(a_1, a_5)} = \min{(11, 9)} = 9 $ . After this $ a = [11, 6, 3, 11, 9] $ . In the second operation replace $ a_2 $ with $ 7 $ and $ a_5 $ with $ 6 $ . It's valid, because $ \min{(a_2, a_5)} = \min{(7, 6)} = 6 $ . After this $ a = [11, 7, 3, 11, 6] $ — a good array. In the second test case, the initial array is already good.

Input

题意翻译

### 题意简述 给定一个长度为 $n$ 的正整数序列 $a$。现在要对 $a$ 进行操作。每一步操作可以任意选取两个整数 $i$ 和 $j$ ( $i\neq j$ ) ,再任意取两个满足 $min(a_i,a_j)=min(x,y)$ 的数 $x$,$y$,然后把 $a_i$ 换成 $x$、$a_j$ 换成 $y$。 求使得对于 $1<i\leq n $ 都满足 $a_i$ 与 $a_{i-1}$ 互质所需的最小操作次数以及操作方案。**有多组数据。** 输出格式:对于每组数据,先输出最小操作次数,再逐行输出每次操作的方案:四个正整数 $i$,$j$,$x$,$y$。如果有多种方案,随意输出一种。

加入题单

上一题 下一题 算法标签: