zoukankan      html  css  js  c++  java
  • poj2356鸽舍原理

            The input contains N natural (i.e. positive integer) numbers ( N <= 10000 ). Each of that numbers is not greater than 15000. This numbers are not necessarily different (so it may happen that two or more of them will be equal). Your task is to choose a few of given numbers ( 1 <= few <= N ) so that the sum of chosen numbers is multiple for N (i.e. N * k = (sum of chosen numbers) for some natural number k).

    Input

    The first line of the input contains the single number N. Each of next N lines contains one number from the given set.

    Output

    In case your program decides that the target set of numbers can not be found it should print to the output the single number 0. Otherwise it should print the number of the chosen numbers in the first line followed by the chosen numbers themselves (on a separate line each) in arbitrary order.

    If there are more than one set of numbers with required properties you should print to the output only one (preferably your favorite) of them.

    Sample Input

    5
    1
    2
    3
    4
    1
    

    Sample Output

    2
    2
    3
    #include<stdio.h>
    #include<string.h>
    int n,c;
    int a[100010],b[100010],vis[100010],sum[100010];
    int main()
    {
    
        while(scanf("%d",&n)!=EOF)
        {
            int x,y;
            memset(vis,-1,sizeof(vis));
            memset(sum ,0,sizeof(sum));
            vis[0] = 0;//前i项可以被c整除
            for(int i=1;i<=n;i++){
                scanf("%d",&a[i]);
                sum[i]=(a[i]+sum[i-1])%n;
                if(vis[sum[i]]==-1)
                    vis[sum[i]] = i;
                else
                {
                    x = vis[sum[i]];//vis[sum[i]] = i;记录了上一次的i
                    y = i;
                }
            }
                printf("%d
    ",y-x);
                for(int i = x+1;i <= y;i++)
                        printf("%d
    ",a[i]);
        }
        return 0;
    }
  • 相关阅读:
    疯子在思考之-异常与return 的差别
    MANIFEST.MF 文件内容完全详解
    疯子奉献-一个符号惹的祸
    疯子在思考之-从日志想到的软件架构
    疯子在思考之java 线程的那点事儿
    linux 自动重启tomcat 脚本
    tomcat 优化及错误All threads (10) are currently busy, waiting. Increase maxThreads错误
    log4j继承
    substring 陷阱
    每天一个随笔
  • 原文地址:https://www.cnblogs.com/--lr/p/8362525.html
Copyright © 2011-2022 走看看