• HDU2535 vote


    Vote
    
    Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
    Total Submission(s): 3391    Accepted Submission(s): 1829
    
    
    Problem Description
    美国大选是按各州的投票结果来确定最终的结果的,如果得到超过一半的州的支持就可以当选,而每个州的投票结果又是由该州选民投票产生的,如果某个州超过一半的选民支持希拉里,则她将赢得该州的支持。现在给出每个州的选民人数,请问希拉里至少需要赢得多少选民的支持才能当选?
    
     
    
    Input
    多组输入数据
    每组数据的第一行包括一个整数N(1<=N<=101),表示美国的州数,N=0表示输入结束
    接下来一行包括N个正整数,分别表示每个州的选民数,每个州的选民数不超过100
    
     
    
    Output
    对于每组数据输出一行,表示希拉里至少需要赢得支持的选民数
     
    
    Sample Input
    3
    5 7 5
    0
     
    
    Sample Output
    6
     
    #include<stdio.h>
    #include<iostream>
    using namespace std;
    /*int paixu(int *a,int n)
    {   int i,j,temp;
        for(i=0;i<n-1;i++)
        for(j=0;j<n-1-i;j++)
        {
            if(a[j]>a[j+1])
            {
                temp=a[j];
                a[j]=a[j+1];
                a[j+1]=temp;
            }
            
        }
        qqqqqqq
    } */ 
    int main()
    {
        int n,i,j,m,flag,temp;
        int a[105];
        while(cin>>n&&n)
        {   int sum=0;
            for(i=0;i<n;i++)
            scanf("%d",&a[i]);
            for(i=0;i<n-1;i++)
             for(j=0;j<n-1-i;j++)
             {
                 if(a[j]>a[j+1])
                 {
                     temp=a[j];
                     a[j]=a[j+1];
                     a[j+1]=temp;
                     
                 }
                 
                 
             }
            /* if(n%2==0)
             {  sum=0;
                 //if(a[i]%2==0)
                for(i=0;i<n/2;i++)
                {
                    if(a[i]%2==0)
                    sum+=a[i]/2;
                    else
                    sum+=a[i]/2+1;
                    //sum+=a[i]/2;
                }
                 
                 
             }
             if(n%2!=0)
             {  sum=0;
                for(i=0;i<n/2+1;i++)
                {
                    if(a[i]%2==0)
                    sum+=a[i]/2;
                    else
                    sum+=a[i]/2+1;
                    //sum+=a[i]/2;    
                    
                }
             }
        */     
        for(i = 0; i<n/2+1; i++)//算出最小的前几个的票民数即所求  
                sum = a[i]/2+1 + sum;  
        cout<<sum<<endl;
        }
        
        return 0;
    }

    卧槽 这个题就是个坑,坑就在“超过一半儿”上面  才导致了我一系列的分奇数偶数求一半儿,冒泡排序的简单使用

  • 相关阅读:
    Lua实现的专栏
    Lua C#
    windows server 开机自动登录并锁定
    关于SQLSERVER2012版本远程登录问题
    处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模块“ManagedPipelineHandler”
    SQLServer安装正常服务启动正常却无法连接
    C#程序猿电脑重装记录
    installshield使用教程
    macbook安装win7
    mvc 开发razor模式注意事项
  • 原文地址:https://www.cnblogs.com/hezixiansheng8/p/3676697.html
Copyright © 2020-2023  润新知