BIT寒假练习-2013__1004:Who is the Smartest Man

曹操要跟诸葛亮比智商。。。是要好好准备准备。

题目大意:

曹操想要提高自己的辩论水平,找了N个人来跟他比智商,当然曹操每次肯定都是赢的,智商比曹操低的人,每赢一个曹操增加1点智商;智商比曹操高的人,每赢一次曹操增加2点智商。比试有一个先后顺序,所以当曹操智商变高之后,以前智商比曹操高的人也就只能给曹操贡献1点智商了。所以我们要解决的问题就是,怎么合理的分配,让曹操手下的给曹操贡献的智商最多。

因为每次曹操智商变高了,都有可能有原来智商比曹操高的,变成智商低的,所以,每次在选择对手的时候,都要尽量选择智商比曹操高的人中智商最低的那个。因为那些只是被曹操超过的人只能给曹操加1点智商,而曹操的智商一直在涨,只有先让智商高的人先跟曹操辩论,才能保证曹操的智商增长最多,其他智商比曹操低的人就直接每个加1点就行了,顺序就不用考虑了。

具体方法:先排序,从小向大找,第一个比曹操智商高的先比试,更新曹操智商,记录比试了几个人了,然后接着往后找,直到所有人都找完。最后加上没有辩论人的数量。

#include <cstdio>
#include <cstdlib>
#include <iostream>

using namespace std;

int num[1000];

int main()
{
    int n,cc;
while (scanf("%d%d",&n,&cc) != EOF)
{
    for (int i = 1 ; i <= n ; i ++)
        scanf("%d",&num[i]);
    sort(num+1,num+n+1);
    num[0] = n;
    for (int i = 1 ; i <= n ; i ++)
    {
        if (num[i] <= cc ) continue;
        cc += 2;
        num[0] --;
    }
    cc += num[0];
    printf("%d\n",cc);
}
    return 0;
}


  • 0
    点赞
  • 0
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

verybunice

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值