A15190. Difference Array
编程题
普及/提高-
知识点
题目描述
You are given an array $a$ consisting of $n$ non-negative integers. It is guaranteed that $a$ is sorted from small to large.
For each operation, we generate a new array $b_i=a_{i+1}-a_{i}$ for $1 \le i < n$ . Then we sort $b$ from small to large, replace $a$ with $b$ , and decrease $n$ by $1$ .
After performing $n-1$ operations, $n$ becomes $1$ . You need to output the only integer in array $a$ (that is to say, you need to output $a_1$ ).
For each operation, we generate a new array $b_i=a_{i+1}-a_{i}$ for $1 \le i < n$ . Then we sort $b$ from small to large, replace $a$ with $b$ , and decrease $n$ by $1$ .
After performing $n-1$ operations, $n$ becomes $1$ . You need to output the only integer in array $a$ (that is to say, you need to output $a_1$ ).
输入格式
The input consists of multiple test cases. The first line contains a single integer $t$ ( $1\le t\le 10^4$ ) — the number of test cases. The description of the test cases follows.
The first line of each test case contains one integer $n$ ( $2\le n\le 10^5$ ) — the length of the array $a$ .
The second line contains $n$ integers $a_1,a_2,\dots,a_n$ ( $0\le a_1\le \ldots\le a_n \le 5\cdot 10^5$ ) — the array $a$ .
It is guaranteed that the sum of $n$ over all test cases does not exceed $2.5\cdot 10^5$ , and the sum of $a_n$ over all test cases does not exceed $5\cdot 10^5$ .
The first line of each test case contains one integer $n$ ( $2\le n\le 10^5$ ) — the length of the array $a$ .
The second line contains $n$ integers $a_1,a_2,\dots,a_n$ ( $0\le a_1\le \ldots\le a_n \le 5\cdot 10^5$ ) — the array $a$ .
It is guaranteed that the sum of $n$ over all test cases does not exceed $2.5\cdot 10^5$ , and the sum of $a_n$ over all test cases does not exceed $5\cdot 10^5$ .
输出格式
For each test case, output the answer on a new line.
输入输出样例
输入 #1
5 3 1 10 100 4 4 8 9 13 5 0 0 0 8 13 6 2 4 8 16 32 64 7 0 0 0 0 0 0 0
输出 #1
81 3 1 2 0
说明/提示
To simplify the notes, let $\operatorname{sort}(a)$ denote the array you get by sorting $a$ from small to large.
In the first test case, $a=[1,10,100]$ at first. After the first operation, $a=\operatorname{sort}([10-1,100-10])=[9,90]$ . After the second operation, $a=\operatorname{sort}([90-9])=[81]$ .
In the second test case, $a=[4,8,9,13]$ at first. After the first operation, $a=\operatorname{sort}([8-4,9-8,13-9])=[1,4,4]$ . After the second operation, $a=\operatorname{sort}([4-1,4-4])=[0,3]$ . After the last operation, $a=\operatorname{sort}([3-0])=[3]$ .
In the first test case, $a=[1,10,100]$ at first. After the first operation, $a=\operatorname{sort}([10-1,100-10])=[9,90]$ . After the second operation, $a=\operatorname{sort}([90-9])=[81]$ .
In the second test case, $a=[4,8,9,13]$ at first. After the first operation, $a=\operatorname{sort}([8-4,9-8,13-9])=[1,4,4]$ . After the second operation, $a=\operatorname{sort}([4-1,4-4])=[0,3]$ . After the last operation, $a=\operatorname{sort}([3-0])=[3]$ .