L 仓鼠养殖计划

链接:https://www.nowcoder.com/acm/contest/96/L来源:牛客网集训队暑训的时候,是睡在机房的,有几个小伙子不甘寂寞,带了仓鼠来机房。有的还不止带了一只!为此,贴心的集训队刘队长买了一大一小两种放仓鼠笼子的架子,大的可以放两个仓鼠笼 小的只能放一个。要注意的是仓鼠是领地动物,一般来讲 仓鼠笼与仓鼠笼之间是不能贴在一起的,但同一个人带来的仓
摘要由CSDN通过智能技术生成
链接: https://www.nowcoder.com/acm/contest/96/L
来源:牛客网

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

输入描述:

第一行为一个数T 表示测试样例组数

对于每组测试数据

第1行输入a,b,n; 分别为小架子的数量,大架子的数量,带了仓鼠的人数

第2行有n个数字P1-Pn,分别表示每个人带的仓鼠的数量

输出描述:

如果放得下 则输出"Yes" 否则输出"No"
 
链接:https://www.nowcoder.com/acm/contest/96/L
来源:牛客网


 
 
示例1

输入

1
1 2 4
1 1 1 1

输出

No

备注:

1<=n<=50 1<=a,b<=100  1<=Pi<=20
比赛的时候怎么就没想到  到了赛后看群里人说是贪心模拟一下就可以了 
比赛的时候做题毅力不够  感觉很难然后就放弃 其实可以ac  
思路就是先把 大的先放掉 不够的话小的笼子来补 如果大的都放不下那可以就都放不下了
#include<bits/stdc++.h>
using namespace std;
int main()
{
	int t;
	cin>>t;
	int a[10010];
	while(t--)
	{
		int a1,b,n;
		cin>>a1>>b>>n;
		int i;
		int sum=0;
		for(i=0;i<n;i++)
		{
			cin>>a[i];
			int xb=0;
			int cha;
			if(a[i]>=2&&b>0)
			{
				xb=b*2;
				if(a[i]<=xb)
				{
					cha=a[i]/2;
					a[i]=a[i]%2;
					b=b-cha;
				}
				else
				{
					a[i]=a[i]-xb;
					b=0;
				}
			}
			sum+=a[i];	
		}
		if(b==0)
		{
			if(a1<sum)
			printf("No\n");
			else
			printf("Yes\n");
		}
		else if(b>0)
		{
			a1=a1+b;
			if(a1<sum)
			printf("No\n");
			else
			printf("Yes\n");
		}
	}
	return 0;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值