問題文
感想
うまく実装してくださいっての好き。
解法
やるだけだが、上手いやり方を思いつかなきゃいけないあたり好き。普通に手計算したりするのはちょっと恐すぎるし、それで泥沼にはまったら予選落ちメニーチャンシーズなので僕は手計算とかしません。
ソース
係数テーブルともうひとつ作った。
#include <iostream> #include <algorithm> #include <cstdio> #include <vector> #include <cmath> using namespace std; int coef[4][4] = { {1,1,1,1}, {1,-1,1,-1}, {1,-1,-1,1}, {1,1,-1,-1} }; int to[4][4] = { {0,1,2,3}, {1,0,3,2}, {2,3,0,1}, {3,2,1,0} }; vector<int> calc(vector<int> A,vector<int> B){ vector<int> answer(4); for(int i = 0 ; i < 4 ; i++) for(int j = 0 ; j < 4 ; j++) answer[to[i][j]] += A[i] * B[j] * coef[i][j]; return answer; } int main(){ int n; while(cin >> n && n){ vector<int> A(4); vector<int> B(4); for(int i = 0 ; i < n ; i++){ for(int j = 0 ; j < 4 ; j++) cin >> A[j]; for(int j = 0 ; j < 4 ; j++) cin >> B[j]; vector<int> answer = calc(A,B); for(int j = 0 ; j < 4 ; j++) cout << (j?" ":"") << answer[j]; cout << endl; } } }