zoukankan      html  css  js  c++  java
  • 985的数字难题

    http://acm.zzuli.edu.cn/zzuliacm/problem.php?cid=1157&pid=6

    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
     
     
    分析:让两个数分别+1,-1,那么总和是没有变的。所以如果当总和对N取余为0时,那么这N个数一定全部可以变成相同的某一个数,否则为N-1个
     
     
    #include <iostream>
    #include <cstdio>
    #include <stdio.h>
    #include <string.h>
    using namespace std;
    typedef long long LL;
    #define maxn 40
    
    int main()
    {
    
        int T, num, n;
    
        scanf("%d", &T);
    
        while(T --)
        {
            int sum = 0;
            scanf("%d", &n);
    
            for(int i=1; i<=n; i++)
            {
                 scanf("%d", &num);
                 sum += num;
            }
    
            if(sum%n==0)
                printf("%d
    ", n);
            else
                printf("%d
    ", n-1);
        }
        
        return 0;
    }
    View Code
  • 相关阅读:
    iOS 中架构模式的浅显理解
    Block 在 ARC 下的拷贝
    Repo 的使用小结
    博客园新语言代码高亮以及OpenLiveWriter插件开发(一)
    GridLayout 使用
    PopupWindow 使用
    NDK笔记(二)-在Android Studio中使用ndk-build
    NDK 笔记(一)
    Java 多线程编程
    搭建Apache Web服务器
  • 原文地址:https://www.cnblogs.com/daydayupacm/p/5733322.html
Copyright © 2011-2022 走看看