CF1806F2 GCD Master (hard version)

Description

This is the hard version of the problem. The only difference between the two versions is the constraint on $ m $ . You can make hacks only if both versions of the problem are solved. You are given an array $ a $ of length $ n $ and two integers $ m $ and $ k $ . Each element in $ a $ satisfies $ 1\le a_i \le m $ . In one operation, you choose two indices $ i $ and $ j $ such that $ 1 \le i < j \le |a| $ , then append $ \gcd(a_i,a_j) $ to the back of the array and delete $ a_i $ and $ a_j $ from the array. Note that the length of the array decreases by one after this operation. Find the maximum possible sum of the array after performing exactly $ k $ operations.

Input Format

The first line contains a single integer $ t $ ( $ 1\le t\le 10^5 $ ) — the number of test cases. The description of test cases follows. The first line of each test case contains three integers $ n $ , $ m $ and $ k $ ( $ 2 \le n \le 10^6 $ ; $ 1\le m \le 9\cdot 10^{18} $ ; $ 1 \le k \le n-1 $ ). The second line of each test case contains $ n $ integers $ a_1,a_2,\ldots,a_n $ ( $ 1 \le a_i \le m $ ). It is guaranteed that the sum of $ n $ over all test cases does not exceed $ 10^6 $ .

Output Format

For each test case, output the maximum possible sum of the array after performing $ k $ operations optimally.

Explanation/Hint

In the first test case, the best way is to choose $ i=1 $ , $ j=3 $ in the first operation. The final sequence is $ [7,4] $ .