CF2007C.Dora and C++

普及/提高-

通过率:0%

AC君温馨提醒

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

题目描述

Dora 刚学了编程语言C++!

但是,她一点也不明白C的含义。 她认为C是两种在长度为 nn 的数组 cc 上的加法操作。Dora 有两个整数 $ a $ 与 $ b $ 。 每一次操作,她可以选择一件事情去做。

  • 选择一个整数 $ i $ ,其中 $ 1 \leq i \leq n $ ,然后把 $ c_i $ 加上 $ a $ 。
  • 选择一个整数 $ i $ ,其中 $ 1 \leq i \leq n $ ,然后把 $ c_i $ 加上 $ b $ 。

注意,这里 $ a $ 与 $ b $ 是常数,且他们可以相同。

让我们规定一个数组的值域 $ d $ 为 $ \max(d_i) - \min(d_i) $ 。仅举几例:数组 $ [1, 2, 3, 4] $ 的值域是 $ 4 - 1 = 3 $ ,数组 $ [5, 2, 8, 2, 2, 1] $ 的值域是 $ 8 - 1 = 7 $ , 数组 $ [3, 3, 3] $ 的值域是 $ 3 - 3 = 0 $ 。

经过若干次操作 (可能是 $ 0 $ ), Dora 计算出了新数组的值域。 请你帮助 Dora 最小化其值,但是自从 Dora 爱上了仅凭自己探索,你只需要告诉她最小化后的值。

输入格式

每一个测试点有多组数据。第一行包括一个整数 $ t $ (1≤t≤104)( 1 \leq t \leq 10^4 ) 代表测试数据的组数。

对于每组测试数据,第一行有三个整数 $ n $ , $ a $ $ b $ $( 1 \leq n \leq 10^5 $ , $ 1 \leq a, b \leq 10^9 )$ 表示数组 $ c $ 的长度,以及两个常数 aa bb 的值。

第二行包括 $ n $ 个整数 $ c_1, c_2, \ldots, c_n $ ( $ 1 \leq c_i \leq 10^9 $ ) 代表数组 $ c $ 的初始值。

保证对于全部的数据 $ Σn \leq 10^5 $。

输出格式

对与每组测试数据,你需要输出一个整数,表示若干次操作后数组的值域可能到达的最小值。

样例解释

第一组数据中,我们可以将 $ c_1 = 1 $ 加上 $ a = 5 $ 。 数组 $ c $ 将会变为 $ [6, 3, 4, 4] $ ,其值域为 $ 3 $ 。注意,达到正解的方案不唯一。

第二组数据中,我们可以将 $ c_1 = 1 $ 加上 $ a = 2 $ ,然后将 $ c_1 = 加上 $ by $ b = 3 $ 。当然,我们也可以将 $ c_2 = 3 $ 加上 $ b = 3 $ ,之后将 $ c_3 = 4 $ 加上 $ a = 2 $ 。数组 $ c $ 将会变为 $ [6, 6, 6, 6] $ ,其值域为 $ 0 $ .

输入输出样例

  • 输入#1

    10
    4 5 5
    1 3 4 4
    4 2 3
    1 3 4 6
    4 7 7
    1 1 2 6
    3 15 9
    1 9 5
    3 18 12
    1 4 5
    7 27 36
    33 13 23 12 35 24 41
    10 6 9
    15 5 6 9 8 2 12 15 3 8
    2 1 1000000000
    1 1000000000
    6 336718728 709848696
    552806726 474775724 15129785 371139304 178408298 13106071
    6 335734893 671469786
    138885253 70095920 456876775 9345665 214704906 375508929

    输出#1

    3
    0
    3
    2
    3
    5
    1
    0
    17
    205359241

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

首页