#include <iostream>
#include <algorithm>
#include <string>
#include<limits>
#include <vector>
using namespace std;
long long policz_pole(vector<long long> liczby) {
long long x;
long long suma=0;
long long y_dol, index_dol;
long long y_gora, index_gora;
long long rozmiar = liczby.size();
for(long long i=0; i<liczby.size();i+=2) {
x = liczby[i];
index_dol = (((i+1)-2) <= 0) ? (rozmiar - 1) : (i+1)-2;
y_dol = liczby[index_dol];
index_gora = ((i+1)+2) > (rozmiar - 1) ? 1 : ((i+1)+2);
y_gora = liczby[index_gora];
suma += x * (y_dol - y_gora);
//cout << x << " * " << " ( " << y_dol <<" - "<< y_gora <<" ) " << endl;
}
return suma;
}
vector<long long> explode( const string &delimiter, const string &str)
{
vector<long long> arr;
long long strleng = str.length();
long long delleng = delimiter.length();
if (delleng==0)
return arr;//no change
long long i=0;
long long k=0;
while( i<strleng )
{
long long j=0;
while (i+j<strleng && j<delleng && str[i+j]==delimiter[j])
j++;
if (j==delleng)//found delimiter
{
arr.push_back( strtoll (str.substr(k, i-k).c_str(), NULL, 10) );
i+=delleng;
k=i;
}
else
{
i++;
}
}
arr.push_back( strtoll (str.substr(k, i-k).c_str(), NULL, 10) );
return arr;
}
int main()
{
long long liczba_rysonkow;
long long suma_calkowita = 0;
const int koszt_czarnego = 10;
const int koszt_szarego = 6;
long long pole_czarnego = 0;
long long pole_szarego = 0;
long long koszt_calkowity_czarnego, koszt_calkowity_szarego;
string czarne_liczby;
string szare_liczby;
cin >> liczba_rysonkow;
long long *tablica_wynikow = new long long[liczba_rysonkow];
std::cin.clear();
cin.ignore(numeric_limits<streamsize>::max(),'\n');
for (int k = 0; k < liczba_rysonkow; k++) {
getline(cin, czarne_liczby);
vector<long long> czarne_tablica = explode(" ", czarne_liczby);
getline(cin, szare_liczby);
vector<long long> szare_tablica = explode(" ", szare_liczby);
pole_czarnego = 0.5*abs(policz_pole(czarne_tablica));
pole_szarego = 0.5*abs(policz_pole(szare_tablica));
koszt_calkowity_czarnego = pole_czarnego < pole_szarego ? (0.5*abs(policz_pole(czarne_tablica))) * koszt_czarnego : (0.5*abs(policz_pole(szare_tablica)))*koszt_czarnego;
koszt_calkowity_szarego = pole_czarnego >= pole_szarego ? (0.5*abs(policz_pole(czarne_tablica)) - 0.5*abs(policz_pole(szare_tablica)))*koszt_szarego : (0.5*abs(policz_pole(szare_tablica)) - 0.5*abs(policz_pole(czarne_tablica)))*koszt_szarego;
//pole_czarnego = (0.5*abs(policz_pole(szare_tablica)))*koszt_czarnego;
//pole_szarego = (0.5*abs(policz_pole(czarne_tablica)) - 0.5*abs(policz_pole(szare_tablica)))*koszt_szarego;
suma_calkowita = koszt_calkowity_czarnego + koszt_calkowity_szarego;
//cout << "pole czarnego : " << (0.5*abs(policz_pole(czarne_tablica))) << endl;
//cout << "pole szarego : " << (0.5*abs(policz_pole(szare_tablica))) << endl;
tablica_wynikow[k] = suma_calkowita;
}
for (int k = 0; k < liczba_rysonkow; k++) {
cout << tablica_wynikow[k] << endl;
}
return 0;
}