时间限制: 1 Sec 内存限制: 64 MB
题目描述
浙江工商大学校园里绿树成荫,环境非常舒适,因此也引来一批动物朋友来此居住。
童心未泯的redraiment就经常带些碎面包什么的去广场喂鸽子和兔子,并和它们玩耍。一点也不像大学生,还是一副老不正经的样子,呵呵。
随着鸽子和兔子数目的增多,redraiment带的那点食物已经不够它们瓜分了。为了能让自己的好朋友吃的饱饱的,redraiment决定统计一下有多少只鸽子和有多少只兔子,以便带来足够的食物。一、二、三、四、五...他开始数了。
现在,他已经知道有这些鸽子和兔子一共有n个头和m只脚。请你帮他写个程序计算一下一共有多少只鸽子和兔子。

输入
输入包括多组数据。 每行包括2个数据:n、m(代表上面题目中提到的意思1≤n, m≤230)。 n、m都是整数。 输入以0 0作为结束。
输出
每组数据的输出都只有一行,分别是鸽子的数量和兔子数量。 如果输入的测试数据不能求得结果,那肯定是redraiment这个马大哈数错了,就输出"Error"提示他。
样例输入
35 941 30 0
样例输出
23 12Error
提示
报告参见http://acm.zjgsu.edu.cn/Report/1003/1003.html
来源
#include <bits/stdc++.h>
#define cl(x) memset(x,0,sizeof(x))
#define _cl(a,b) memset(a,0,(b+1)<<2)
#define At(x,y) memset(x,y,sizeof x)
#define rep(i,a,b) for(int i=a;i<=b;i++)
#define drep(i,a,b) for(int i=a;i>=b;i--)
#define ll long long
#define pb push_back
#define vct vector
#define pq priority_queue
#define all(x) x.begin(),x.end()
#define int long long
#define fi first
#define se second
//#pragma GCC optimize(2)
using namespace std;
inline int min(int a,int b) {return a<b?a:b;}
inline int max(int a,int b) {return a>b?a:b;}
//map<string,map<string,int> > mp;
//pq <ll,vct<ll>,less<ll> > now,last;
//vct<vct<int> > vt(n+1,vct<int>(m+1,0))
const int inf=0x3f3f3f3f;
const ll INF=0x3f3f3f3f3f3f3f3f;
const ll mod=1e9+7;
const int MOD=998244353;
const int N=1e2+10;
int n,m;
char c;
int a[63];
void solve()
{
while(cin>>n>>m&&(n||m)){
if((m-2*n)&1) cout<<"Error\n";
else{
int x,y;
y=(m-2*n)/2;
x=n-y;
if(x<0||y<0) cout<<"Error\n";
else cout<<x<<" "<<y<<"\n";
}
}
return ;
}
signed main()
{
// srand(time(NULL));
// freopen("2022_XinShengSai_1.in", "r", stdin);
// freopen("2022_XinShengSai_1.out", "w", stdout);
// ios::sync_with_stdio(false);
// cin.tie(0); cout.tie(0);
int t;
// cin>>t;
t=1;
while(t--)
solve();
return 0;
}
/*
x+y=n;
2x+4y=m;
*/