o.boj 1229 危险的民主

注:最近这一系列ACM的内容,都是2年多之前的代码,自己回顾一下。
 
危险的民主
 
Submit: 1030   Accepted:651
Time Limit: 1000MS  Memory Limit: 65536K
Description
投票者被分成K个组,如果超过半数的组投赞成票,决议就可以通过。 每组是投赞成票还是反对票也由每组内部投票决定,若这一组有超过半数 的人投赞成票,那么这一组就投赞成票。 例如有3组,分别有5,5,7人,那么,至少要有6个人赞成决议才能通过。 (即第一组和第二组各三人。) 注意到共有17人,只需要6人赞成就有可能通过,所以本题题目叫《危险的民主》
编写程序,告诉你组数和每组的人数,计算通过决议至少需要多少人赞成。 


Input
第一行是正整数K(K<=101),表示有k组
第二行有K个数,分别是每一组的人数。
K以及每组的人数都是奇数。总人数不会超过10001。


Output
至少需要的人数

Sample Input

3
5 7 5 


Sample Output

6


Source
 
 
对人数较少的那一半的组,求其半数之和。
 

#include <iostream>

using namespace std;

int cmp(const void *a, const void *b)
{    return *((int*)a) > *((int*)b);    }

int main()
{
    int K;
    int num[110];
    int sum = 0;
    
    cin >> K;
        
    for (int i = 0; i < K; i++)
        cin >> num[i];
    
    qsort(num, K, sizeof(int), cmp);
    
    K = K/2 + 1;
    
    for (int i = 0; i < K; i++) 
       sum = sum + num[i]/2 + 1;
    
    printf("%d\n", sum);
    // system("pause");
    return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值