ZCMU—1263

1263: 分东西

Time Limit: 2 Sec   Memory Limit: 20 MB
Submit: 86   Solved: 18
[ Submit][ Status][ Web Board]

Description

游戏中,一旦有人在比赛结束前退出游戏。剩下的人就可以支配离开者的物品。现在,玩家A离开游戏,留下了6种物品。玩家B和玩家C要分配玩家A的物品。假设玩家A的6种物品价值分别为1,2,3,4,5,6。已知玩家A的6种物品的数量,判断玩家B和玩家C是否能均分?

Input

每组数据包含6个正整数,分别代表6种物品的数量(不超过10000)。

Output

如果可以均分,输出“YES”;则输出“NO”。

Sample Input

1 0 1 2 0 0
1 0 0 0 1 1

Sample Output

NO
YES

【分析】

暴力模拟一下取物品就好了.....看能不能刚好拿到总物品的一半..能就yes不能就no没什么好讲的
【代码】
#include<iostream>  
using namespace std;  
   
int n[10];    
int go;    
bool flag;  
   
void find(int value,int deep)  
{  
    if(flag) return;  
    if(value==go)  
    {  
        flag=true;  
        return;  
    }  
    for(int i=deep;i>=1;i--)  
        if(n[i])  
        {  
            if(value+i<=go)  
            {  
                n[i]--;  
                find(value+i,i);  
                if(flag) break;  
            }    
    	}  
    return;  
}  
int main()  
{  
    int test=1;  
    while(cin>>n[1]>>n[2]>>n[3]>>n[4]>>n[5]>>n[6])  
    {   
        int sum=0;
        for(int i=1;i<=6;i++) sum+=i*n[i]; 
        if(sum%2)    
        {  
            cout<<"NO"<<endl;
            continue;  
        } 
		go=sum/2; 
        flag=false;  
        find(0,6);  
        if(flag)  
        {  
            cout<<"YES"<<endl;
            continue;  
        }  
        else 
        {  
            cout<<"NO"<<endl;
            continue;  
        }  
    }  
    return 0;  
}  


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值