题解:B4203 [常州市程序设计小能手 2021] 鸡羊同栏

· · 题解

题意

A 只鸡和 B 只羊,一只正常的鸡有 0 只角、 2 条腿;一只正常的羊有 2 只角、 4 条腿。有至多一种动物在角数和腿数之中有至少一种的数量会变,但不为负。

思路

我们假设变异的为鸡,那么我们可以发现:

1、鸡现在的角数为总角数减去兔子数量乘上兔子角数,即 c - 2 \times b

2、鸡现在的腿数为总腿数减去兔子数量乘上兔子腿数再减去鸡数量乘上鸡腿数再加上鸡原来的腿数,即 d - 2 \times a - 4 \times b + 2

我们再假设变异的为兔子,那么兔子的角数就为变异的为鸡时鸡的角数加二,即 c - 2 \times b + 2,兔子的腿数同理,为 d - 2 \times a - 4 \times b + 2 + 2

代码

#include<bits/stdc++.h>
using namespace std;
long long a,b,c,d;
int main(){
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    cin>>a>>b>>c>>d;
    int j=c-2*b;
    int t=d-2*a-4*b+2;
    if(j<0||t<0){
        cout<<-1<<'\n';
    }
    else{
        cout<<j<<' '<<t<<'\n';
    }
    if(j+2<0||t+2<0){
        cout<<-1<<'\n';
    }
    else{
        cout<<j+2<<' '<<t+2<<'\n';
    }
    return 0;
}