【无标题】

鸡羊同栏

题目描述小 X 是 CZ 市著名的牧场主。他把 A 只鸡和 B 只羊圈养在一个围栏中。一只正常的鸡有 0 只角、2 条腿;一只正常的羊有 2 只角、4 条腿。某一天,一道 神秘的宇宙射线击中了牧场,导致其中的至多一个动物发生了变异。变异的动物角的只数与腿的条数中至少有一个数量变化了。例如,一只正常的鸡变异成了 3 只角 2 条腿。注意:变异以后动物也不可能有负数个数的角或腿。

小 X 只知道鸡和羊的数量、以及笼子中的动物一共有 C 只角 D 条腿。他想请你帮忙搞清楚变异的情况是什么。

输入

一行 4 个正整数 A,B,C,D,含义见问题描述。

输出

输出共 2 行。

第一行:如果可能是一只鸡变异了,输出它变异后角的只数与腿的条数;否则输出-1。 第二行:如果可能是一只羊变异了,输出它变异后角的只数与腿的条数;否则输出-1。

样例输入

2 2 3 15样例输出

-1

1 7提示提示样例1解释

只可能是一只羊变异成了 1 只角 7 条腿。(0+0+1+2=3,2+2+7+4=15)

样例输入2

2 2 4 12

样例输出2

-1

-1

样例2解释

不可能有动物变异。(0+0+2+2=4,2+2+4+4=12)

分析:可以通过A,B计算出没有变异时的角的个数X=2B,腿的个数Y=2A+4*B。因为变异必然会改变角或腿的个数,所以如果X=C并且Y=D,说明不可能有动物变异,输出-1和-1;

否则,则发生里变异,可以计算出变异的动物增加了C-X只角和D-Y条腿。

对于鸡来说,它变异后的角数是C-X,腿数是D-Y+2,所以只需要判断是否有C-X≥0,D-Y+2≥0即可。

对于羊同理,只需要判断是否有C-X+2≥0以及D-Y+4≥0即可
代码如下:

#include <bits/stdc++.h>
using namespace std;
int main()
{
   int a,b,c,d;
   cin>>a>>b>>c>>d;
   int x=2*b,y=2*a+4*b,xx=c-x,yy=d-y;
   if(xx==0&&yy==0){
   	cout<<-1<<"\n"<<-1;
   	return 0;
   }
   if(a&&xx>=0&&yy+2>=0){
   	cout<<xx<<" "<<yy+2<<"\n";
   }
   else{
   	cout<<-1<<"\n";
   }
   if(b&&xx+2>=0&&yy+4>=0){
   	cout<<xx+2<<" "<<yy+4<<"\n";
   }
   else{
   	cout<<-1;
   }
    return 0;
   }
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值