CF1884E.Hard Design

普及/提高-

通过率:0%

AC君温馨提醒

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

题目描述

Consider an array of integers b0,b1,,bn1b_0, b_1, \ldots, b_{n-1} . Your goal is to make all its elements equal. To do so, you can perform the following operation several (possibly, zero) times:

  • Pick a pair of indices 0lrn10 \le l \le r \le n-1 , then for each lirl \le i \le r increase bib_i by 11 (i. e. replace bib_i with bi+1b_i + 1 ).
  • After performing this operation you receive (rl+1)2(r - l + 1)^2 coins.

The value f(b)f(b) is defined as a pair of integers (cnt,cost)(cnt, cost) , where cntcnt is the smallest number of operations required to make all elements of the array equal, and costcost is the largest total number of coins you can receive among all possible ways to make all elements equal within cntcnt operations. In other words, first, you need to minimize the number of operations, second, you need to maximize the total number of coins you receive.

You are given an array of integers a0,a1,,an1a_0, a_1, \ldots, a_{n-1} . Please, find the value of ff for all cyclic shifts of aa .

Formally, for each 0in10 \le i \le n-1 you need to do the following:

  • Let cj=a(j+i)(modn)c_j = a_{(j + i) \pmod{n}} for each 0jn10 \le j \le n-1 .
  • Find f(c)f(c) . Since costcost can be very large, output it modulo (109+7)(10^9 + 7) .

Please note that under a fixed cntcnt you need to maximize the total number of coins costcost , not its remainder modulo (109+7)(10^9 + 7) .

输入格式

Each test contains multiple test cases. The first line contains the number of test cases tt ( 1t21041 \le t \le 2 \cdot 10^4 ). The description of the test cases follows.

The first line of each test case contains a single integer nn ( 1n1061 \le n \le 10^6 ).

The second line of each test case contains nn integers a0,a1,,an1a_0, a_1, \ldots, a_{n-1} ( 1ai1091 \le a_i \le 10^9 ).

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

输出格式

For each test case, for each 0in10 \le i \le n-1 output the value of ff for the ii -th cyclic shift of array aa : first, output cntcnt (the minimum number of operations), then output costcost (the maximum number of coins these operations can give) modulo 109+710^9 + 7 .

输入输出样例

  • 输入#1

    5
    1
    1
    3
    1 3 2
    5
    3 2 4 5 1
    8
    6 5 6 4 2 6 2 2
    4
    10 10 10 10

    输出#1

    0 0
    3 3
    2 5
    2 5
    7 18
    7 16
    6 22
    5 28
    5 28
    9 27
    9 27
    9 27
    9 27
    11 23
    9 27
    9 27
    13 19
    0 0
    0 0
    0 0
    0 0

说明/提示

In the first test case, there is only one cycle shift, which is equal to [1][1] , and all its elements are already equal.

In the second test case, you need to find the answer for three arrays:

  1. f([1,3,2])=(3,3)f([1, 3, 2]) = (3, 3) .
  2. f([3,2,1])=(2,5)f([3, 2, 1]) = (2, 5) .
  3. f([2,1,3])=(2,5)f([2, 1, 3]) = (2, 5) .

Consider the case of [2,1,3][2, 1, 3] . To make all elements equal, we can pick l=1l = 1 and r=1r = 1 on the first operation, which results in [2,2,3][2, 2, 3] . On the second operation we can pick l=0l = 0 and r=1r = 1 , which results in [3,3,3][3, 3, 3] . We have used 22 operations, and the total number of coins received is 12+22=51^2 + 2^2 = 5 .

首页