ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

codeforces:1543B Customising the Track

2022-02-26 10:31:41  阅读:216  来源: 互联网

标签:case 1543B sub Track test track Customising 道路 s%


 

                                               B. Customising the Track

time limit per test

1 second

memory limit per test

256 megabytes

input

standard input

output

standard output

Highway 201 is the most busy street in Rockport. Traffic cars cause a lot of hindrances to races, especially when there are a lot of them. The track which passes through this highway can be divided into nn sub-tracks. You are given an array aa where aiai represents the number of traffic cars in the ii-th sub-track. You define the inconvenience of the track as ∑i=1n∑j=i+1n|ai−aj|∑i=1n∑j=i+1n|ai−aj|, where |x||x| is the absolute value of xx.

You can perform the following operation any (possibly zero) number of times: choose a traffic car and move it from its current sub-track to any other sub-track.

Find the minimum inconvenience you can achieve.

Input

The first line of input contains a single integer tt (1≤t≤100001≤t≤10000) — the number of test cases.

The first line of each test case contains a single integer nn (1≤n≤2⋅1051≤n≤2⋅105).

The second line of each test case contains nn integers a1,a2,…,ana1,a2,…,an (0≤ai≤1090≤ai≤109).

It is guaranteed that the sum of nn over all test cases does not exceed 2⋅1052⋅105.

Output

For each test case, print a single line containing a single integer: the minimum inconvenience you can achieve by applying the given operation any (possibly zero) number of times.

Example

input

Copy

3
3
1 2 3
4
0 1 1 0
10
8 3 6 11 5 2 1 7 10 4

output

Copy

0
4
21

Note

For the first test case, you can move a car from the 33-rd sub-track to the 11-st sub-track to obtain 00 inconvenience.

For the second test case, moving any car won't decrease the inconvenience of the track.

             本题主要是要理解最小不便怎么求,我英文水平不太好,就不翻译了,说说我对这题的理解,最小不便就是(每条道路的车辆和其他道路车辆的绝对差)的和(下面的计算用s代替),既然是差的话,我就是想怎么把他降到最小,那就是平均值了,把每条道路的车辆都相加,再除以道路条数就是平均值,这样就变成了每条道路的车辆都相同了,当然会有余数,下面就处理余数。

              要最小就把这个余数分成若干1,分别加到每条道路中(因为时除余道路,所以这个余数一定小于道路数(道路数下面计算用n代替)),这样就变成了有些道路是平均值,有些是平均值加1,,平均值加1的道路条数可以用 s%n ,然后就是车辆时平均数的道路可以是 n-s%n。

              所以每一条平均值加1的道路的不便就是 n-s%n,一共有s%n条,所以不便和为 (s%n)*(n-s%n)。

              下面附上AC代码,写的不好还请多见谅:

#include <iostream>
using namespace std;
typedef long long ll;

int main()
{
    int t,i,n;
    ll s,c,a;//s计算所以的车辆,c计算移动次数,会超过int型
    cin>>t;
    while(t--){
        cin>>n;
        s=0;//车辆每次初始为0
        for(i=0;i<n;i++){
            cin>>a;//每条路的车辆数
            s+=a;
        }
        c=(s%n)*(n-s%n);//计算最小不便
        cout<<c<<endl;
    }
}

标签:case,1543B,sub,Track,test,track,Customising,道路,s%
来源: https://blog.csdn.net/m0_63147389/article/details/123145774

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有