AOJ 0241 - Quaternion Multiplication

AOJ 0204は先人さんのコードの出力と比較して1つだけ違ってた.
そのひとつがなぜ起きたのか解明中.

#include<iostream>

int main(){
	int n;
	while(std::cin >> n, n){
		while(n--){
			int x1, y1, z1, w1, x2, y2, z2, w2;
			std::cin >> x1 >> y1 >> z1 >> w1 >> x2 >> y2 >> z2 >> w2;
			std::cout << (x1*x2-y1*y2-z1*z2-w1*w2) << " " << (x1*y2+x2*y1+z1*w2-w1*z2) << " "
								<< (x1*z2-y1*w2+z1*x2+w1*y2) << " " << (x1*w2+y1*z2-z1*y2+w1*x2) << std::endl;
		}
	}
}