【郑轻】[1898]985的数字难题

文章字数:385

问题描述

985的数字难题
时间限制:1 Sec内存限制:128 MB

Description

985有n个数,已知每次操作可以将其中不相同的两个数一个加一、一个减一,操作次数不限。
问他最多可以得到多少个相同的数。

Input

第一行输入一个整数t,代表有t组测试数据。
每组数据占两行,第一行输入一个n代表元素个数,下面一行输入n个整数a[]。
注:1 <= t <= 30,1 <= n <= 1e4,1 <= a[] <= 1e3。

Output

输出一个整数代表最多可以得到多少个相同的数。

Sample Input

  2
3
1 1 1
2
2 3

Sample Output

  3
1

问题分析

因为一加一减总数不变
可知最后的数与sum/n也就是平均数有关
当sum%n==0时最终必能化为n个相同的数
否则最后必然多出一个sum-sum/n*n
所以最终只能化为n-1个相同的数

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include<stdio.h> 
#include<algorithm> 
using namespace std; 
int main() { 
    int T; 
    scanf("%d",&T); 
    while(T--) { 
        int n; 
        scanf("%d",&n); 
        int sum=0; 
        for(int i=0; i<n; i++) { 
            int t; 
            scanf("%d",&t); 
            sum+=t; 
        } 
        if(sum%n==0) 
            printf("%d\n",n); 
        else
            printf("%d\n",n-1); 
    } 
    return 0; 
}

题目地址:【郑轻】[1898]985的数字难题

该内容采用 CC BY-NC-SA 4.0 许可协议。

如果对您有帮助或存在意见建议,欢迎在下方评论交流。

加载中...