JZK-Keven 的博客

为了ACM!!! FIGHTING!!!

仓鼠养殖计划

今天打牛客网网络赛的时候,居然连这个题目也没过?感觉自己好水啊。

【题目链接】

题目描述

集训队暑训的时候,是睡在机房的,有几个小伙子不甘寂寞,带了仓鼠来机房。有的还不止带了一只!
为此,贴心的集训队刘队长买了一大一小两种放仓鼠笼子的架子,大的可以放两个仓鼠笼 小的只能放一个。
要注意的是仓鼠是领地动物,一般来讲 仓鼠笼与仓鼠笼之间是不能贴在一起的,
但同一个人带来的仓鼠的仓鼠笼可以被放在一起(既两个仓鼠笼如果属于同一个人,那么这两个仓鼠笼就可以被放在同一个大架子上)
现在告诉你现有的两种架子的数量和多少人带了仓鼠以及每个人带的仓鼠的数量,问你是否能将这些仓鼠放下。

输入描述:

第一行为一个数T 表示测试样例组数
对于每组测试数据
第1行输入a,b,n; 分别为小架子的数量,大架子的数量,带了仓鼠的人数
第2行有n个数字P1-Pn,分别表示每个人带的仓鼠的数量

输出描述:

如果放得下 则输出”Yes” 否则输出”No”

示例1

输入

1
1 2 4
1 1 1 1

输出

No


#include<iostream>
using namespace std;
int main()
{
    int i,n,a,b,k,temp;
    cin>>n;
    while (n--)
    {
        cin>>b>>a>>k;
        int big=0,small=0;
        for (i=0;i<k;i++)
        {
            cin>>temp;
            big+=temp/2;   //他带来的仓鼠需要的大笼子数量的理论值
            small+=temp%2; //他带来的仓鼠需要的小笼子数量的理论值
        }
        if (big<=a)
        small+=big-a;      //如果大笼子的理论值小于实际值,将多余的大笼子数都加到小笼子数量里去
        else
        small+=(big-a)*2;  //反之,需要两个小笼子凑成一个大笼子,
                           // 所以小笼子数量等于之前小笼子的数量减去大笼子缺少值的两倍。
        //判断小笼子是否足够。
        if (small<=b)
        cout<<"Yes"<<endl;
        else
        cout<<"No"<<endl;
    }
}
阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_41608020/article/details/79945510
个人分类: 其他算法
上一篇算法训练 纪念品分组
下一篇8780:拦截导弹
想对作者说点什么? 我来说一句

仓鼠

Ruohuainian Ruohuainian

2016-03-24 19:55:47

阅读数:117

JS 可爱的仓鼠 动画收藏

LANGZI7758521 LANGZI7758521

2016-09-14 16:39:34

阅读数:941

flash制作的喂食仓鼠

2017年11月14日 34KB 下载

仓鼠大众版搜狗皮肤

2012年07月18日 181KB 下载

页面养仓鼠

2017年03月23日 1KB 下载

没有更多推荐了,返回首页

关闭
关闭