#include <stdio.h>
// 計算:行列式、移動數量
int count ( int array[] , int move ) {
int total = 0 ; // 計算總和
int seat = 0 ; // 起始位置
for ( seat = 0 ; seat < 9 ; seat += 3 ) {
int value = 1 , spot = seat ; // 計算的數值;元素的位置
int amount = 0 ; // 計算的數量
for ( amount = 0 ; amount < 3 ; amount += 1 ) {
value *= array[spot] ;
spot += move ; // 下一個位置
if ( spot >= 9 ) {
spot -= 9 ; // 超過陣列元素上限時,設定到指定位置
}
else if ( spot < 0 ) {
spot += 9 ; // 低於陣列元素底線時,設定到指定位置
}
}
total += value ; // 計算總和
}
return total ; // 回傳總和
}
int main ( void ) {
int data = 0 ; // 資料數量
scanf ( "%d" , &data ) ;
for ( ; data > 0 ; data -= 1 ) {
int array [9] = {} ; // 行列式,用一維陣列表示
int element = 0 ; // 陣列的元素位置
// 行列式的輸入
for ( element = 0 ; element < 9 ; element += 1 ) {
scanf ( "%d" , &array[element] ) ;
}
// 正數的計算
int add = count ( array , 4 ) ; // 正數總和
// 負數的計算
int reduce = count ( array , -2 ) ; // 負數總和
// 顯示計算結果
printf ( "%d\n" , add - reduce ) ;
}
return 0 ;
}