这个问题就是解二元一次方程组:
x + y = n; ==>2*x + 2*y = 2*n;
2*x+4*y = m;
所以:2*y = m - 2*n; ==>y = m/2 - n;
所以: x = n - y = 2*n - m/2;
由方程可知,方程必有实数解。但由题意可知,解不可能为小数或负数。
#include <iostream>
using namespace std;
int main()
{
int n;
cin>>n;
while(n--)
{
int n, m;
int x, y, f;
cin>>n>>m;
f = m%2;
x = 2*n - m/2;
y = m/2-n;
if(f||x<0||y<0)
cout<<"No answer"<<endl;
else
cout<<x<<' '<<y<<endl;
}
return 0;
}